UNPKG

@deskdirector/push-events

Version:

chat utilities for DeskDirector chat

37 lines (36 loc) 1.28 kB
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; }