UNPKG

tav-media

Version:

Cross platform media editing framework

33 lines (32 loc) 1.1 kB
export declare type Listener = (...payload: any) => void; export interface ListenersMap { [propName: string]: Listener[]; } /** * EventManager is a class to manage event listeners. */ export declare class EventManager<T extends string> { private listenersMap; constructor(); /** * Listen to an event. * @param eventName The name of the event to listen to. * @param listener The callback function to be called when the event is emitted. * @returns void */ on(eventName: T, listener: Listener): void; /** * Remove a listener from an event. * @param eventName The name of the event to listen to. * @param listener The callback function to be called when the event is emitted. * @returns void */ off(eventName: T, listener?: Listener): void; /** * Emit an event. * @param eventName The name of the event to listen to. * @param payload The payload to be passed to the listener. * @returns true if the event has listeners, false otherwise. */ emit(eventName: T, ...payload: any): boolean; }