declare module 'domain' { import EventEmitter = require('events'); global { namespace NodeJS { interface Domain extends EventEmitter { run(fn: (...args: any[]) => T, ...args: any[]): T; add(emitter: EventEmitter | Timer): void; remove(emitter: EventEmitter | Timer): void; bind(cb: T): T; intercept(cb: T): T; } } } interface Domain extends NodeJS.Domain {} class Domain extends EventEmitter { members: Array; enter(): void; exit(): void; } function create(): Domain; }