/** Approval and structured-question keyboard-owned terminal surfaces. */ import { type ReactElement } from 'react'; import type { ApprovalSnapshot } from '../approval.ts'; import type { QuestionSnapshot, QuestionStore } from '../questions.ts'; import type { NoticeTone } from '../ui/ui-contract.ts'; /** * The approval dialog (Codex ApprovalOverlay contract): a bold question * header, the bounded command body with an explicit overflow marker, a * numbered option list with a `›` cursor, single-key shortcuts, and digits * for direct selection. Askers queue FIFO — the count rides the header. * The upstream answerer vocabulary stays binary (`allowed-once` / * `rejected`): "tell it what to do differently" rejects and hands the * composer back with a hint notice, exactly Codex's decline-then-type flow. */ export declare function ApprovalBar({ snapshot, locked, notify, interrupt, summarize }: { snapshot: ApprovalSnapshot; locked: boolean; notify: (text: string, tone?: NoticeTone) => void; /** Cancel the running turn (Ctrl+C), matching the composer's busy branch. */ interrupt: () => boolean; /** Render as the bounded one-line form even on tall terminals (another * human-asked surface already owns the full panel budget). */ summarize?: boolean; }): ReactElement | undefined; /** * The ask_user_question bar: walks one request question by question, * retaining an independent draft for every question. Options use Space/1-9 * to toggle a multi-select, Enter to confirm, and arrows/Ctrl+P/N to move * between questions. Plan reviews arrive through the same service with a * `plan-review` intent — the approve option gets a ✓ mark, the answer * encoding stays identical. */ export declare function QuestionBar({ store, snapshot, locked }: { store: QuestionStore; snapshot: QuestionSnapshot; locked: boolean; }): ReactElement | undefined; /** The /model panel: a scrolling list over the advisory model directory. */