UNPKG

alistair

Version:
11 lines (9 loc) 527 B
type Listener<P extends Record<string, readonly unknown[]>, Key extends keyof P> = (...args: P[Key]) => unknown; declare class EventBus<Payloads extends Record<string, readonly unknown[]> = {}> { private readonly listeners; constructor(); on<K extends keyof Payloads>(key: K, listener: Listener<Payloads, K>): () => void; off<K extends keyof Payloads>(key: K, listener: Listener<Payloads, K>): void; emit<K extends keyof Payloads>(key: K, ...args: Payloads[K]): void; } export { EventBus, type Listener };