The complete declaration of an interface follows the pattern given below:
interface [name <name>] [is <basetype>]* [imports <namespace/module>]*
[includes <namespace/module>]* [uses <namespace/module>]*
[depends <namespace/module>]* [public] [private] [nsprivate]
[protected] [static] [extern] [final] [deprecated]
[partial] [abstract] [commonParam(paramName as DataType)]
[custom modifiers]
The declaration of an interface largely follows the same syntax as that of a class. Notably, however, all function declarations inside an interface are expected to not have a body, and are automatically assumed to be abstract. The following is a valid interface declaration:
interface:
func myFunction
func myOtherFunction as int
func yetAnotherFunction(param as string) as double