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 { 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; }