/** * Overlays domain state, tracks which full-screen or floating overlays * are currently visible and their configuration. */ /** All known overlay identifiers in terminal host surfaces. */ export type OverlayId = 'help' | 'model_picker' | 'session_picker' | 'command_palette' | 'search' | 'permission_prompt' | 'confirmation' | 'settings' | 'agent_inspector' | 'task_monitor'; /** State of a single overlay instance. */ export interface OverlayInstance { /** Overlay identifier. */ id: OverlayId; /** Whether the overlay is visible. */ visible: boolean; /** Epoch ms when the overlay was opened. */ openedAt: number; /** Optional opaque payload specific to each overlay type. */ payload?: unknown | undefined; /** Z-order (higher = on top). */ zIndex: number; } /** * OverlayDomainState, manages the overlay stack and focus. */ export interface OverlayDomainState { /** Monotonic revision counter; increments on every mutation. */ revision: number; /** Timestamp of last mutation (Date.now()). */ lastUpdatedAt: number; /** Subsystem that triggered the last mutation. */ source: string; /** All registered overlay instances keyed by OverlayId. */ overlays: Map; /** Stack of currently visible overlay IDs in z-order (bottom → top). */ visibleStack: OverlayId[]; /** The overlay currently holding keyboard focus (undefined = none). */ focusedOverlayId?: OverlayId | undefined; /** * Pending permission prompt context. * Populated when the 'permission_prompt' overlay is open. */ pendingPermission?: { callId: string; toolName: string; category: string; args: Record; } | undefined; /** * Pending confirmation dialog context. * Populated when the 'confirmation' overlay is open. */ pendingConfirmation?: { message: string; detail?: string | undefined; confirmLabel: string; cancelLabel: string; resolveKey: string; } | undefined; } /** * Returns the default initial state for the overlays domain. */ export declare function createInitialOverlaysState(): OverlayDomainState; //# sourceMappingURL=overlays.d.ts.map