export type Listener = (...args: any[]) => void;
export declare class EventEmitter<T extends Listener = Listener> {
    #private;
    on(type: string, listener: T): void;
    emit(type: string, ...args: any[]): void;
    off(type: string, listener: T): void;
    removeAllListeners(): void;
    listenerCount(type: string): number;
    listeners(type: string): T[];
}
export declare class PromiseEventEmitter {
    private events;
    constructor();
    listenerCount(type: string): number;
    on(event: string, listener: (...args: any[]) => Promise<void> | void): void;
    emit(event: string, ...args: any[]): Promise<void[]>;
}
//# sourceMappingURL=promise-event-emitter.d.ts.map