UNPKG

@glandjs/events

Version:

A fast, zero‑dependency event broker and message bus for building scalable, event‑driven applications.

22 lines (21 loc) 1.64 kB
import type { EventOptions, EventPayload, EventRecord, EventReturn, Events, EventType, GetListenerMethod, Listener, OnceMethod, OnMethod, ShutdownMethod, WatchMethod } from '../common'; export declare class EventEmitter<TEvents extends EventRecord> implements OnMethod<TEvents>, OnceMethod<TEvents>, GetListenerMethod<TEvents>, ShutdownMethod, WatchMethod<TEvents> { private emitter; private watcher; private defaultOptions; private maxListeners; constructor(separator?: string, cacheSize?: number, timeout?: number, maxListeners?: number); on<K extends Events<TEvents>>(event: K, listener: Listener<EventPayload<TEvents, K>, void>, options?: EventOptions): this; on<K extends Events<TEvents>>(event: K, listener: null | Listener<EventPayload<TEvents, K>, void>, options: EventOptions & { watch: true; }): Promise<EventPayload<TEvents, K>>; watch<K extends Events<TEvents>>(event: K, timeoutMs?: number): Promise<EventPayload<TEvents, K>>; off<K extends Events<TEvents>>(event: K, listener?: Listener<EventPayload<TEvents, K>, void>): this; emit<K extends keyof TEvents & EventType>(event: K, payload: TEvents[K], options?: EventOptions): void; shutdown(): void; once<K extends Events<TEvents>>(event: K, listener: Listener<EventPayload<TEvents, K>, void>): this; once<K extends Events<TEvents>>(event: K, listener: Listener<EventPayload<TEvents, K>, void> | null, options: EventOptions & { watch: true; }): Promise<EventPayload<TEvents, K>>; getListener<K extends Events<TEvents>>(event: K): Listener<EventPayload<TEvents, K>, EventReturn<TEvents, K>>[]; }