An interface model represents the model of a Ceylon interface that you can inspect.

An interface model can be either a toplevel `Interface` or a member `MemberInterface`.

no type hierarchy

- `InterfaceModel`
  - `ClassOrInterface`
    - `Generic`
    - `Model`
      - `Declared`
    - `Type`

- `InterfaceModel`
  - `Interface`
  - `MemberInterface`

Attributes
`declaration` | Source Code `shared formal InterfaceDeclaration declaration` The declaration model of this class, which is necessarily an `InterfaceDeclaration`. Refines `ClassOrInterface.declaration` ultimately refines `Declared.declaration`

Inherited Attributes
Attributes inherited from: `Object` `hash`, `string`
Attributes inherited from: `ClassOrInterface<Type>` `caseValues`, `declaration`, `extendedType`, `satisfiedTypes`
Attributes inherited from: `Declared` `container`, `declaration`
Attributes inherited from: `Generic` `typeArgumentList`, `typeArgumentWithVarianceList`, `typeArgumentWithVariances`, `typeArguments`
Attributes inherited from: `Model` `container`, `declaration`

Inherited Methods
Methods inherited from: `Object` `equals()`
Methods inherited from: `ClassOrInterface<Type>` `getAttribute()`, `getAttributes()`, `getClass()`, `getClassOrInterface()`, `getClasses()`, `getDeclaredAttribute()`, `getDeclaredAttributes()`, `getDeclaredClass()`, `getDeclaredClassOrInterface()`, `getDeclaredClasses()`, `getDeclaredInterface()`, `getDeclaredInterfaces()`, `getDeclaredMethod()`, `getDeclaredMethods()`, `getInterface()`, `getInterfaces()`, `getMethod()`, `getMethods()`
Methods inherited from: `Type<Target>` `exactly()`, `intersection()`, `subtypeOf()`, `supertypeOf()`, `typeOf()`, `union()`