import { Screen, type Element, type Frame } from "../tui/index.js"; import type { Checkpoint } from "../runtime/state/checkpointStore.js"; import type { FunctionParameter } from "../types.js"; import type { DebuggerCommand, DebuggerIO } from "./types.js"; import { UIState } from "./uiState.js"; type PaneSlot = { name: string; color: string; label: string; content: () => string; }; export declare class DebuggerUI implements DebuggerIO { private screen; state: UIState; prevState: UIState | null; private focusIndex; private zoomedPane; private threadDisplayIndex; private scrollOffsets; private spinnerInterval; private spinnerText; private commandBarOverride; private inputPrompt; private inputValue; lastFrame: Frame | null; constructor(screen: Screen); private formatKeyVal; private getPanes; private buildSourceContent; private buildThreadsContent; private buildLocalsContent; private buildGlobalsContent; private buildCallStackContent; private buildActivityContent; private buildStdoutContent; private buildStatsContent; private renderPane; private buildCommandBar; private buildStatsBar; /** * Build the top two rows of the standard layout: * row 1: source (+ threads if present) * row 2: locals, globals, call stack */ buildTopRows(panes: PaneSlot[], focusedName: string | undefined): Element[]; private buildElementTree; private renderUI; render(checkpoint?: Checkpoint, _full?: boolean): Promise; private static SPINNER_FRAMES; private static SPINNER_PHRASES; startSpinner(): void; stopSpinner(): void; cleanup(error?: string): void; waitForCommand(): Promise; private handleInteractiveKey; private scrollPane; private enterTextInput; promptForInput(prompt: string): Promise; promptForNodeArgs(parameters: FunctionParameter[]): Promise; appendStdout(text: string): void; renderActivityOnly(): void; private overlayContext; showRewindSelector(checkpoints: Checkpoint[]): Promise; showCheckpointsPanel(checkpoints: Checkpoint[]): Promise; destroy(): void; } export {};