type allowedEvents = | "overlayClick" | "escapePress" | "nextClick" | "prevClick" | "closeClick" | "arrowRightPress" | "arrowLeftPress"; 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 = {}; }