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 A {} declare class A extends B { x: number } declare class A { static foo(): number, static x: string, } declare class A { set fooProp(value: number): void, get fooProp(): number, } declare class A { static [indexer: number]: string } declare class A { static (): number } declare class B { (): number } declare class A mixins B, C {} declare type A1 = string; declare type T = { [k: string]: U }; declare type B1 = { fn?: (foo: string) => void }; declare interface I1 { foo: string } declare interface I2 { foo: T } declare module.exports: { foo: string } declare opaque type Foo: Bar; declare opaque type ID; declare opaque type num: number; declare opaque type NumArray; declare var sym: symbol;