tav-media
Version:
Cross platform media editing framework
33 lines (32 loc) • 1.1 kB
TypeScript
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;
}