export declare class EventEmitter<E extends object> {
    private _listeners;
    emit<K extends keyof E>(type: K, event: E[K]): void;
    once<K extends keyof E>(type: K, listener: (event: E[K]) => void): void;
    on<K extends keyof E>(type: K, listener: (event: E[K]) => void): void;
    off<K extends keyof E>(type: K, listener: (event: E[K]) => void): void;
}
