/** * DialogManager - handles modal dialogs (save, restore, startup). * * Per ADR-170, dialogs are native HTML elements. Visibility * is controlled by `showModal()` / `close()`; ESC and backdrop-click * are handled by the browser. The manager attaches a `close` event * listener on each dialog so that any close (button, ESC, backdrop) * resolves the pending promise consistently. Buttons set the dialog's * `returnValue` before closing to communicate intent. */ import type { DialogElements, SaveSlotMeta } from '../types'; import type { SaveManager } from './SaveManager'; export interface DialogManagerConfig { elements: DialogElements; saveManager: SaveManager; onDialogOpen?: () => void; onDialogClose?: () => void; generateSaveName: () => string; sanitizeSaveName: (name: string) => string; performSave: (slotName: string) => void; } export declare class DialogManager { private elements; private saveManager; private onDialogOpen?; private onDialogClose?; private generateSaveName; private sanitizeSaveName; private performSave; private _isDialogOpen; private selectedSaveSlot; private pendingSaveResolve; private pendingRestoreResolve; private pendingStartupResolve; constructor(config: DialogManagerConfig); isDialogOpen(): boolean; showSaveDialog(): Promise; showRestoreDialog(): Promise; showStartupDialog(meta: SaveSlotMeta): Promise; /** * Build a save-slot row element with click and keyboard wiring. */ private populateSaveSlotsList; private selectSaveSlot; setupHandlers(): void; } //# sourceMappingURL=DialogManager.d.ts.map