export declare class EventDescriptor { private eventDispatcher; eventName: T; callback: Function; condition?: Function; constructor(eventDispatcher: EventDispatcher, eventName: T, callback: Function, condition?: Function); off(): void; } export declare class ParentEvent { eventName: T; data?: any; constructor(eventName?: T, data?: any); } export declare class EventDispatcher { protected events: Array>; constructor(); on(eventName: T, callback1?: Function, callback2?: Function): any; once(eventName: T, callback1?: Function, callback2?: Function): any; offEvent(eventDescriptor: EventDescriptor): EventDispatcher; off(eventName?: T, callback?: Function): this; fire(eventName: T | Array, data?: ParentEvent): this; }