import { IEvent, IEventEmitter } from "./IEventEmitter2"; /** * The minimal basic Event that can be emitted by a {@link EventEmitter2}. */ export interface Event extends IEvent { type: T; } /** * Event emitter for custom objects. */ export declare class EventEmitter2 = Record> implements IEventEmitter { private _listeners; /** * Registers a new listener for an event type. * * @param type - The type of event to listen to. * @param listener - The function that gets called when the event is fired. */ addEventListener(type: T, listener: (event: EventMap[T]) => void): this; /** * Removes the listener from an event type. * * @param type - The type of the listener that gets removed. * @param listener - The listener function that gets removed. */ removeEventListener(type: T, listener: (event: EventMap[T]) => void): this; /** * If `type` is specified, removes all registered listeners for type, otherwise removes all * registered listeners. * * @param type - The type of the listener that gets removed. */ removeAllListeners(type?: T): this; /** * Fires the event. Calls each of the listeners registered for the event type `event.type`, * in the order they were registered. * * @param event - The event that gets fired. */ emitEvent(event: Event> & EventMap[T]): boolean; /** * Alias to {@link EventEmitter2.addEventListener()} */ on(type: string, listener: (event: object) => void): this; /** * Alias to {@link EventEmitter2.removeEventListener()}. */ off(type: string, listener: (event: object) => void): this; /** * Alias to {@link EventEmitter2.emitEvent()}. */ emit(event: string | object, ...args: any[]): boolean; } //# sourceMappingURL=EventEmitter2.d.ts.map