@deskdirector/push-events
Version:
chat utilities for DeskDirector chat
37 lines (36 loc) • 1.28 kB
TypeScript
import { Listener } from './listener.interface';
import { Disposable } from './disposable';
export declare class EventEmitter<T> {
private listeners;
private oneTimeListeners;
/**
* Registers an event listener that will be called whenever an event is emitted
*
* @param listener the event listener to register
* @returns {Disposable} an object to de-register the event listener
*/
handle: (listener: Listener<T>) => Disposable;
/**
* Registers a one-time event listener which will be called when an event is emitted
* @param listener the event listener to register
*/
handleOnce: (listener: Listener<T>) => void;
/**
* De-registers an event listener. The listener will no longer be called when an event is emitted.
*
* @param listener the event listener to de-register
*/
off: (listener: Listener<T>) => void;
/**
* Emits an event to all registered listeners
*
* @param event the event data to emit to all listeners
*/
raise: (event: T) => void;
/**
* Pipes all events to the given event emitter
*
* @param eventEmitter the other EventEmitter instance to pipe events to
*/
pipe: (eventEmitter: EventEmitter<T>) => Disposable;
}