UNPKG

ivr-tester

Version:

An automated testing framework for IVR call flows

16 lines (15 loc) 799 B
declare type EventMap = Record<string, unknown>; declare type EventKey<T extends EventMap> = string & keyof T; declare type EventReceiver<T> = (params: T) => void; export interface Emitter<T extends EventMap> { on<K extends EventKey<T>>(eventName: K, fn: EventReceiver<T[K]>): void; off<K extends EventKey<T>>(eventName: K, fn: EventReceiver<T[K]>): void; emit<K extends EventKey<T>>(eventName: K, params: T[K]): void; } export declare class TypedEmitter<T extends EventMap> implements Emitter<T> { private readonly emitter; on<K extends EventKey<T>>(eventName: K, fn: EventReceiver<T[K]>): TypedEmitter<T>; off<K extends EventKey<T>>(eventName: K, fn: EventReceiver<T[K]>): TypedEmitter<T>; emit<K extends EventKey<T>>(eventName: K, params: T[K]): boolean; } export {};