An interface is a layer of translation between two things.
In Object oriented programming, it's a contract between two encapsulated modules: you define how one should be used, without exposing internals, and the other will have only this contract to manipulate the module.
Otherwise, for a graphical interface, it's a translation between what the machine can do and what the human can see.