event-emitters
Version:
18 lines (17 loc) • 725 B
TypeScript
import { EventSink } from './EventSink';
import { EventSource, Listener } from './EventSource';
/**
* The same as node's EventEmitter but:
* Only emits a single "event".
* Throw an exception when a client registers the same listener more than once.
* Throw an exception when a client tries to remove a listener that is not listening.
*/
export declare class EventEmitter<T> implements EventSink<T>, EventSource<T>, AsyncIterable<T> {
protected listeners: Listener<T>[];
emit(newMessage: T): void;
subscribe(listener: Listener<T>): Listener<T>;
unsubscribe(listener: Listener<T>): void;
hasListeners(): boolean;
[Symbol.asyncIterator](): AsyncIterator<T>;
asyncIterator(): AsyncIterator<T>;
}