UNPKG

@audin.ai/operator-sdk

Version:

Headless browser SDK for the Audin operator softphone — make and receive calls over the Audin operator WebSockets.

22 lines (21 loc) 1.17 kB
/** * Tiny dependency-free typed event emitter. * * Browser `EventTarget` would force `CustomEvent` boxing and loses payload * typing; this keeps strong types on `on`/`off`/`emit` with no runtime cost. * Listener exceptions are isolated so one bad subscriber cannot break the * emit loop or the SDK's internal state machine. */ export declare class TypedEmitter<EventMap> { private readonly listeners; /** Subscribe to `event`. Returns an unsubscribe function. */ on<K extends keyof EventMap>(event: K, listener: (payload: EventMap[K]) => void): () => void; /** Subscribe once: the listener is removed after the first emit. */ once<K extends keyof EventMap>(event: K, listener: (payload: EventMap[K]) => void): () => void; /** Unsubscribe a previously-registered listener. Idempotent. */ off<K extends keyof EventMap>(event: K, listener: (payload: EventMap[K]) => void): void; /** Emit `event` to all current listeners. Listener errors are swallowed. */ protected emit<K extends keyof EventMap>(event: K, payload: EventMap[K]): void; /** Remove every listener (used on teardown). */ protected removeAllListeners(): void; }