type EventListener = (data: any) => void; type Deletable = { delete(): void; }; export declare class EventSystem { events: Record; constructor(); dispatchEvent(event_name: string, data: any): any; on(event_name: string, cb: EventListener): Deletable; once(event_name: string, cb: EventListener): Deletable; addListener(event_name: string, cb: EventListener): Deletable; removeListener(event_name: string, cb: EventListener): void; /** * Check if event has listeners */ hasListeners(event_name: string): boolean; /** * Get listener count for an event */ getListenerCount(event_name: string): number; /** * Remove all listeners for an event */ removeAllListeners(event_name?: string): void; /** * Get all event names that have listeners */ getEventNames(): string[]; } export {}; //# sourceMappingURL=event_system.d.ts.map