declare var foo declare var foo; declare function foo(): void declare function foo(): void; declare function foo(): void; declare function foo(x: number, y: string): void; declare class A1 {} declare class A1 extends B { x: number } declare class A1 { static foo(): number, static x : string } declare class A1 { static [ indexer: number]: string } declare class A1 { static () : number } declare class A1 mixins B, C {} declare type A2 = string declare type T = { [k:string]: U } declare interface I1 { foo: string } declare interface I2 { foo: T }