import { type Screen, type Element, type KeyEvent } from "../tui/index.js"; import type { Checkpoint } from "../runtime/state/checkpointStore.js"; import type { UIState } from "./uiState.js"; /** * The minimal interface overlays need from the host UI. * Keeps overlays decoupled from DebuggerUI internals. */ import type { InterruptResponse } from "../runtime/interrupts.js"; import type { BranchSummary, ThreadSummary } from "../runtime/state/checkpointStore.js"; import { type PaletteEntry } from "./edits/palette.js"; import { type GuardTripData } from "./guardAnswer.js"; export type OverlayContext = { screen: Screen; /** The next key for the person, through the UI's one reader. */ nextKey(): Promise; state: UIState; /** Build the top portion of the standard layout (source/threads + locals/globals/callStack). */ buildTopRows(): Element[]; buildStatsBar(): Element; commandBarContent: string; cleanup(): void; }; export declare function showRewindSelector(ctx: OverlayContext, checkpoints: Checkpoint[]): Promise; /** Ask how to answer a guard trip. First a choice: approve with more * budget, remove the tripped limit, or reject. A grant then asks for the * amount, refused on screen while it would leave the budget exceeded, * and both approvals ask for an optional message to the model. Escape in * a field goes back to the choice. */ export declare function showGuardTripForm(ctx: OverlayContext, data: GuardTripData): Promise; /** Pick a branch to look at: the stopped frame's own stack first, then * every branch with its status and owner. Returns the branch path, an * empty path for the stopped frame, or null on escape. */ export declare function showBranchPicker(ctx: OverlayContext, branches: BranchSummary[]): Promise; export declare function showCheckpointsPanel(ctx: OverlayContext, checkpoints: Checkpoint[]): Promise; /** Pick the thread the threads pane shows: every thread of the store, by * label or id, with its parent, its message count, and a mark on the * one the program is in. Returns the chosen id, or null on escape. */ export declare function showThreadPicker(ctx: OverlayContext, threads: ThreadSummary[], shownId: string | undefined): Promise; /** A line to type a filter into over the edits every row offers, as the * action table words them: `↑`/`↓` pick, Enter takes the entry, Escape * cancels. The caller moves to the row and runs the action. */ export declare function showPalette(ctx: OverlayContext, entries: PaletteEntry[]): Promise;