export type AsyncEventCallback = (...args: any[]) => Promise; export type EventCallback = (...args: any[]) => void; export type EventArgs = any[]; export type EventKey = Extract; export type EventBinding = { context?: any; handler: EventCallback; once?: boolean; }; export type EventHandlerRecord = { event: EventKey; handler: EventCallback; }; export declare class Events { #private; on(event: EventKey, handler: EventCallback, context?: any): void; once(event: EventKey, handler: EventCallback, context?: any): void; off(event: EventKey, handler: EventCallback): void; emit(event: EventKey, ...args: EventArgs): void; removeAll(): void; }