import { DispatcherEvent, Listener } from '../types'; /** * A class that manages event listeners and dispatches events. * * @remarks * This class allows you to add, remove, and check for event listeners, as well as dispatch events to those listeners. * * @example * ```typescript * const dispatcher = new EventDispatcher(); * * function onEvent(event: DispatcherEvent) { * console.log(event.type); * } * * dispatcher.addEventListener('testEvent', onEvent); * dispatcher.dispatchEvent({ type: 'testEvent' }); * dispatcher.removeEventListener('testEvent', onEvent); * ``` * * @public */ export declare class EventDispatcher { private _listeners; /** * Adds the specified event listener. * @param type event name * @param listener handler function * @category Methods */ addEventListener(type: string, listener: Listener): void; /** * Presence of the specified event listener. * @param type event name * @param listener handler function * @category Methods */ hasEventListener(type: string, listener: Listener): boolean; /** * Removes the specified event listener * @param type event name * @param listener handler function * @category Methods */ removeEventListener(type: string, listener: Listener): void; /** * Removes all event listeners * @param type event name * @category Methods */ removeAllEventListeners(type?: string): void; /** * Fire an event type. * @param event DispatcherEvent * @category Methods */ dispatchEvent(event: DispatcherEvent): void; }