export interface Event { type: string; target?: any; } type Listener = (evt: Event) => any; type ListenerRegistry = { [type: string]: Listener[]; }; /** * An event source can emit events and register event listeners */ export default class EventSource { _listeners: ListenerRegistry; _onceListeners: ListenerRegistry; /** * Adds a listener to a event type. */ on(type: string, listener: Listener): void; /** * Adds a listener that will be called only once to a event type. */ once(type: string, listener: Listener): void; /** * Removes a previously registered event listener. */ off(type: string, listener: Listener): void; emit(eventOrType: string | Event): void; /** * Returns true if we have a listener for the event type. */ private _listens; } export {};