declare type TEventType = string | symbol; declare type TListener = (...args: any[]) => Promise; declare type TFilter = { (callbackfn: (value: T, index: number, array: T[]) => value is S, thisArg?: any): S[]; (callbackfn: (value: T, index: number, array: T[]) => unknown, thisArg?: any): T[]; }; declare class EventEmitter { private _resultFilter; private _events; private _eventsCount; private _domain; get maxListeners(): number; set maxListeners(n: number); getResultFilter(): TFilter | undefined; setResultFilter(filter: TFilter | undefined): this; get resultFilter(): TFilter | undefined; set resultFilter(filter: TFilter | undefined); emit(type: TEventType, ...args: any[]): Promise; addListener(type: TEventType, listener: TListener): Promise; prependListener(type: TEventType, listener: TListener): Promise; once(type: TEventType, listener?: TListener): Promise; prependOnceListener(type: TEventType, listener: TListener): Promise; removeListener(type: TEventType, listener: TListener): Promise; removeAllListeners(type: string | symbol): Promise; on(type: TEventType, listener: TListener): Promise; off(type: TEventType, listener: TListener): Promise; static EventEmitter: typeof EventEmitter; static defaultMaxListeners: number | undefined; static usingDomains: boolean | undefined; static listenerCount: (events: EventEmitter, type: TEventType) => number; } export = EventEmitter;