export interface Dictionary { [key: string]: T; } export declare class EventDispatcherBinding { id: number; cb: Function | null; event: string; sharedList: EventDispatcherBinding[]; object: EventDispatcher | null; enabled: boolean; constructor(id: number, cb: Function | null, event: string, sharedList: EventDispatcherBinding[], object: EventDispatcher | null); off(): void; enable(): void; disable(): void; } export interface EventDispatcherEventsBase { [key: string]: Function; } export declare class EventDispatcher { private edBindings; private edBindCount; on(event: K, callback: T[K], once?: boolean): EventDispatcherBinding; on(event: string, callback: (...args: any[]) => void, once?: boolean): EventDispatcherBinding; once(event: K, callback: T[K]): EventDispatcherBinding; once(event: string, callback: Function): EventDispatcherBinding; off(binding: EventDispatcherBinding): void; off(eventName: string, boundCallback?: Function): void; off(boundCallback: Function): void; emit(event: 'error', error: any): void; emit(event: K, ...params: any[]): void; emit(event: string, ...params: any[]): void; protected getEventBindings(event: string): EventDispatcherBinding[]; }