/** * Event Dispatcher event listener */ type Listener = (data: Data) => void; /** * Provides methods for working with Event Bus: * - {Function} on - appends subscriber to the event. If event doesn't exist - creates new one * - {Function} emit - fires all subscribers with data * - {Function off - unsubscribes callback */ export declare class EventsDispatcher { /** * All subscribers grouped by event name * Object with events` names as key and array of callback functions as value */ private subscribers; /** * Subscribe any event on callback * @param eventName - name of an event, must be a keyof EventMap * @param callback - subscriber */ on(eventName: Name, callback: Listener): void; /** * Subscribe any event on callback. Callback will be called once and be removed from subscribers array after call. * @param eventName - name of an event, must be a keyof EventMap * @param callback - subscriber */ once(eventName: Name, callback: Listener): void; /** * Emit callbacks with passed data * @param eventName - name of an event, must be a keyof EventMap * @param data - subscribers get this data when they were fired */ emit(eventName: Name, data?: EventMap[Name]): void; /** * Unsubscribe callback from event * @param eventName - name of an event, must be a keyof EventMap * @param callback - event handler */ off(eventName: Name, callback: Listener): void; /** * Destroyer * clears subscribers list */ destroy(): void; } export {};