type AnyEventMap = {
    [key: string | symbol | number]: (...args: any[]) => void;
};
export type EventMapForEmitter<Emitter extends EventEmitter> = Emitter extends EventEmitter<infer M> ? M : never;
export declare class EventEmitter<EventMap extends AnyEventMap = AnyEventMap> {
    private listeners;
    on<E extends keyof EventMap>(event: E, callback: EventMap[E]): this;
    off<E extends keyof EventMap>(event: E, callback: EventMap[E]): this;
    emit<E extends keyof EventMap>(event: E, ...data: Parameters<EventMap[E]>): void;
}
export {};
//# sourceMappingURL=EventEmitter.d.ts.map