import type { KeybindEvent } from "./types"; type Listener = (event: KeybindEvent) => void; export class KeybindEmitter { private listeners: Listener[] = []; on(listener: Listener) { this.listeners.push(listener); return () => this.off(listener); } off(listener: Listener) { this.listeners = this.listeners.filter(l => l !== listener); } emit( event: Extract ) { for (const l of this.listeners) l(event); } }