declare let io: SocketIOClientStatic; declare module 'socket.io-client' { export = io; } interface SocketIOClientStatic { (host: string, details?: any): SocketIOClient.Socket; (details?: any): SocketIOClient.Socket; connect(host: string, details?: any): SocketIOClient.Socket; connect(details?: any): SocketIOClient.Socket; protocol: number; Socket: { new (...args: any[]): SocketIOClient.Socket }; Manager: SocketIOClient.ManagerStatic; } declare namespace SocketIOClient { interface Socket { on(event: string, fn: Function): Socket; once(event: string, fn: Function): Socket; off(event?: string, fn?: Function): Socket; emit(event: string, ...args: any[]): Socket; listeners(event: string): Function[]; hasListeners(event: string): boolean; connected: boolean; } interface ManagerStatic { (url: string, opts: any): SocketIOClient.Manager; new (url: string, opts: any): SocketIOClient.Manager; } interface Manager { reconnection(v: boolean): Manager; reconnectionAttempts(v: boolean): Manager; reconnectionDelay(v: boolean): Manager; reconnectionDelayMax(v: boolean): Manager; timeout(v: boolean): Manager; } }