import { type Asker } from "../ask.js"; import type { SetupMode, SetupState } from "../state.js"; import type { SetupBox } from "../step.js"; export interface SelectSetupModeOptions { /** Resolves the mode question; the composed stack decides how. */ asker: Asker; /** * Skip the mode question and use this value. Stays a factory option (not a * `withAnswers` rung) so it short-circuits before any ask, which is what * lets a headless `--one-shot` run resolve without a terminal. */ presetMode?: SetupMode; /** * Model baked into a one-shot scaffold instead of {@link DEFAULT_AGENT_MODEL_ID}. * Threaded from the same `--model` preset the model box consumes, so the * flag keeps working when the model box is skipped. */ presetModel?: string; } /** The mode plus the model a one-shot run pins, since the model box is skipped. */ export interface SelectSetupModePayload { mode: SetupMode; modelId?: string; } /** * THE SETUP-MODE BOX: decide whether the run is the complete onboarding flow * or a one-shot scaffold. One-shot pins the default model here because every * later interview box (including the model picker) is gated off. The question * is skippable, so a headless stack without a preset resolves to "complete" * and current headless behavior is unchanged. */ export declare function selectSetupMode(options: SelectSetupModeOptions): SetupBox;