/** * A simple event interface with typed event types. * * @category Event */ export interface IEvent { type: T; target?: any; [attachment: string]: any; } /** * A simple event dispatcher interface with {@link IEvent} as event type. * * @category Event */ export interface IEventDispatcher { /** * Adds a listener to an event type. * @param type The type of event to listen to. * @param listener The function that gets called when the event is fired. */ addEventListener(type: T, listener: (event: IEvent) => void): void; /** * Checks if listener is added to an event type. * @param type The type of event to listen to. * @param listener The function that gets called when the event is fired. */ hasEventListener(type: T, listener: (event: IEvent) => void): boolean; /** * Removes a listener from an event type. * @param type The type of the listener that gets removed. * @param listener The listener function that gets removed. */ removeEventListener(type: T, listener: (event: IEvent) => void): void; /** * Fire an event type. * @param event.type The type of event that gets fired. */ dispatchEvent(event: IEvent): void; } /** * A simple event dispatcher with typed event types, see {@link IEventDispatcher}. * * @category Event */ export declare class SimpleEventDispatcher implements IEventDispatcher { constructor(); private _eventListeners; addEventListener(type: T, listener: (event: IEvent) => void): void; hasEventListener(type: T, listener: (event: IEvent) => void): boolean; removeEventListener(type: T, listener: (event: IEvent) => void): void; dispatchEvent(event: IEvent): void; } //# sourceMappingURL=EventDispatcher.d.ts.map