import { LocalEvent } from "../types/local-event"; /** * Listeners map. * * @export * @interface ListenerMap */ export interface ListenerMap { [event: string]: ListenerFunction[]; } declare type ListenerData = any; export declare type ListenerFunction = (data?: ListenerData) => void; /** * Basic implementation of an EventEmitter. * * @export * @abstract * @class EventEmitter */ export declare abstract class EventEmitter { /** * Add a new listener. * * @static * @param {LocalEvent} event Event name. * @param {ListenerFunction} listener Listener function. * @memberof EventEmitter */ static on(event: LocalEvent, listener: ListenerFunction): void; /** * Remove all listeners from an event. * * @static * @param {LocalEvent} event Event name. * @memberof EventEmitter */ static off(event: LocalEvent): void; /** * Trigger an event. * * @static * @param {LocalEvent} event Event name. * @param {ListenerData} [data] Event data. * @memberof EventEmitter */ static trigger(event: LocalEvent, data?: ListenerData): void; private static listeners; } export {};