type DefaultFn = (...args: any[]) => void;
interface EventI {
    on(type: string, callback: DefaultFn): void;
    once(type: string, callback: DefaultFn): void;
    off(type: string, callback: DefaultFn): void;
    offAll(): void;
    emit(type: string, ...args: any[]): void;
}
export type { EventI };
export declare class Events implements EventI {
    events: Map<string, Set<DefaultFn>>;
    on(type: string, callback: DefaultFn): Set<DefaultFn> | Map<string, Set<DefaultFn>> | undefined;
    once(type: string, callback: DefaultFn): Set<DefaultFn> | Map<string, Set<DefaultFn>> | undefined;
    off(type: string, callback: DefaultFn): void;
    offAll(): void;
    emit(type: string, ...args: any[]): void;
}
