type allowedEvents = "overlayClick" | "escape"; let registeredListeners: Partial<{ [key in allowedEvents]: () => void }> = {}; export function listen(hook: allowedEvents, callback: () => void) { registeredListeners[hook] = callback; } export function emit(hook: allowedEvents) { registeredListeners[hook]?.(); } export function destroyEmitter() { registeredListeners = {}; }