/** * Host adapter — rich questionnaire form (spec §10.2), rendered via `ctx.ui.custom`. * * Composes PI's exported TUI widgets — {@link ExtensionSelectorComponent} for single/multi choice and * {@link ExtensionInputComponent} for text/chat — inside `ctx.ui.custom` overlays, one per question, * collecting into the pure {@link assembleAnswers} core. Single-choice lists options with descriptions, * recommended first, plus an implicit "Other → free text" entry; multi-choice is a check/uncheck loop * over the same selector; text/chat is a single input. * * This is the terminal-only path — the capability gate ({@link useRichForm}) selects it only when a * real TUI is present, and the extension loads it lazily so RPC/offline never value-imports the widgets * (`@earendil-works/pi-tui` is only present inside the live harness). Visual correctness is verified * manually, by design. */ import { type ExtensionCommandContext } from "@earendil-works/pi-coding-agent"; import type { Questionnaire } from "../flow/questionnaire.ts"; /** The slice of the command context the rich form needs: the `ctx.ui.custom` overlay seam. */ type FormContext = Pick; /** * Render the questionnaire as a sequence of rich overlays and return the structured answers keyed by * `question.key`. Returns `undefined` if the user cancels any widget (dismiss ≠ cancel — the caller * keeps the run blocked). */ export declare function renderRichForm(ctx: FormContext, questionnaire: Questionnaire): Promise | undefined>; export {}; //# sourceMappingURL=questionnaire-form.d.ts.map