export declare class EventEmitter<T extends Record<string, any> = {}> {
    readonly _events: Map<keyof T, Set<Function>>;
    constructor();
    _get_methods(event: string): Set<Function>;
    has<K extends keyof T>(topic: K): boolean;
    on<K extends string & keyof T>(event: K, method: (args: T[K]) => void | Promise<void>): void;
    once<K extends string & keyof T>(event: K, method: (args: T[K]) => void | Promise<void>): void;
    within<K extends string & keyof T>(event: K, method: (args: T[K]) => void | Promise<void>, timeout: number): void;
    emit<K extends string & keyof T>(event: K, args: T[K]): void;
    remove<K extends keyof T>(event: string, method: (args: T[K]) => void | Promise<void>): void;
    clear(event: string): void;
}
