import { IDisposable } from '../disposable'; export declare type EventMap = { [key: string]: (...args: any[]) => void; }; export interface IEmitGroup { queueCount: number; emit

(type: P, ...args: Parameters): void; flush: () => void; reset: () => void; } export interface IEventEmitter extends IDisposable { on

(type: P, listener: E[P]): IDisposable; emit

(type: P, ...args: Parameters): void; hasListeners: boolean; createEmitGroup(): IEmitGroup; } export declare class EventEmitter implements IEventEmitter { private readonly _emitter; private readonly _registeredListeners; on

(type: P, listener: E[P]): IDisposable; emit

(type: P, ...args: Parameters): void; get hasListeners(): boolean; dispose(): void; createEmitGroup(): IEmitGroup; }