interface
A list of members a type promises to provide.
An interface declares a contract of members that implementing classes or structs must supply; a type can implement many interfaces.
Examples
interface IShippingRule { decimal Cost(Order order); }is a promise: anything that implements it can price shipping.