UNPKG

@camunda8/sdk

Version:

[![NPM](https://nodei.co/npm/@camunda8/sdk.png)](https://www.npmjs.com/package/@camunda8/sdk)

17 lines (16 loc) 768 B
type EventMap = Record<string, unknown>; type EventKey<T extends EventMap> = string & keyof T; type EventReceiver<T> = (params: T) => void; 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 emitter; on<K extends EventKey<T>>(eventName: K, fn: EventReceiver<T[K]>): this; off<K extends EventKey<T>>(eventName: K, fn: EventReceiver<T[K]>): void; emit<K extends EventKey<T>>(eventName: K, params?: T[K]): void; removeAllListeners(): void; } export {};