import { EventEmitter as NodeEventEmitter } from 'events';
import { IEventEmitter, TEventEmitterEvent } from './types/index.js';
export declare class EventEmitter<Events extends TEventEmitterEvent> implements IEventEmitter<Events> {
    protected eventEmitter: NodeEventEmitter<[never]>;
    constructor();
    on<E extends keyof Events>(event: E, listener: Events[E]): this;
    once<E extends keyof Events>(event: E, listener: Events[E]): this;
    emit<E extends keyof Events>(event: E, ...args: Parameters<Events[E]>): boolean;
    removeAllListeners<E extends keyof Events>(event?: Extract<E, string>): this;
    removeListener<E extends keyof Events>(event: E, listener: Events[E]): this;
}
//# sourceMappingURL=event-emitter.d.ts.map