/** * events.ts — A tiny, typed EventEmitter for internal pub/sub. * No Node.js dependency — works in any browser. */ type EventHandler = (payload: T) => void; export declare class EventEmitter> { private _listeners; on(event: K, handler: EventHandler): this; off(event: K, handler: EventHandler): this; once(event: K, handler: EventHandler): this; emit(event: K, payload: Events[K]): void; } /** All events the engine can emit */ export interface EngineEvents extends Record { /** Engine is ready and has determined install status */ ready: { status: string; platform: string; }; /** The browser fired beforeinstallprompt — we can now show our UI */ installable: void; /** User clicked "Install" and the outcome was 'accepted' */ installed: void; /** User clicked "Not now" */ dismissed: void; /** An error occurred */ error: Error; } export {};