/// import { EventEmitter as EventEmitterBase } from "events"; export interface IEventEmitter extends EventEmitterBase.EventEmitter { until(eventName: string | symbol): Promise; subscribe(subscriber: IEventEmitter): IEventEmitter; unsubscribe(subscriber: IEventEmitter): IEventEmitter; emit(eventName: string | symbol, ...args: unknown[]): boolean; } /** * Расширяет функционал работы с событиями в NodeJS. * Добавляет возможность подписки на собыития объекта * */ export declare class EventEmitter extends EventEmitterBase implements IEventEmitter { protected subscribers: IEventEmitter[]; /** * Дожидается возникновения необходимого события * */ until(eventName: string | symbol): Promise; /** * Подписывает на все события сторонний объект * */ subscribe(subscriber: EventEmitter): this; /** * Отписка от событий * */ unsubscribe(subscriber: EventEmitter): this; /** * Формирует событие у целевого объекта и у подписчиков * */ emit(eventName: string | symbol, ...args: unknown[]): boolean; }