declare module m { // type alias declaration here shouldnt make the module declaration instantiated type Selector = string| string[] |Function; export interface IStatic { (selector: any /* Selector */): IInstance; } export interface IInstance { } } declare var m: m.IStatic; // Should be ok to have var 'm' as module is non instantiated