interface EventEmitter> { on(ev: K, callback: (...args: L) => void): asserts this is EventEmitter; off(ev: K): asserts this is EventEmitter>; emit(ev: K, ...args: T[K]): void; }