We use the term "contracts" as an alias for typings, however definitions with the suffix Contract should generally be defined as interfaces in most cases.
What are they for?
In addition to all the usual benefits of TypeScript, contracts help the framework understand the shape of your classes without prior knowledge of the class.
Any number of new contracts can be defined, but to augment the base framework Contract interfaces, we recommend using declare module like so.