import { EventEmitter } from 'events' type Callback = (a: A) => void // eslint-disable-next-line type Events = Record export interface TypedEmitter extends EventEmitter { addListener(t: K, callback: Callback): this removeListener(t: K, callback: Callback): this on(t: K, callback: Callback): this once(t: K, callback: Callback): this off(t: K, callback: Callback): this emit(t: K, value: E[K]): boolean }