import type { ConnectorAssist } from "@cotal-ai/core"; import type { SetupLog } from "./setup-log.js"; export interface Step { /** Slug used in the log and the debug handoff prompt. */ name: string; /** Human line shown while the step runs. */ title: string; /** One-line plain-language narration shown before the step runs. */ explain?: string; /** Ask before running (Y/n); a declined optional step is simply skipped. */ optional?: boolean; /** Consent prompt shown (Y/n, default yes) before the step runs on a TTY; a "no" * skips the step. Non-TTY runs without asking. For steps that change the user's * system (e.g. installing the Claude Code plugin). */ confirm?: string; /** The step draws its own live pane; the runner shows no spinner, just the result line. */ live?: boolean; /** Paths/URLs the debug handoff should read when this step fails. */ context?: string[]; /** Throw to fail; a returned string becomes the detail on the result line. */ run(): Promise; } /** Debug handoffs the failure menu may offer, resolved only when a step fails. */ export type AssistSource = () => Promise; /** Run steps in order with a failure loop per step: offer each debug handoff `assists` yields, then * retry / skip / quit. Returns false on abort. * * `yes` is non-interactive accept-all (agents/CI): optional and `confirm` steps run * without prompting (so e.g. demo agents are written), and a failure aborts with the * log path instead of opening the recovery menu/handoff, even on a TTY. */ export declare function runSteps(steps: Step[], log: SetupLog, opts?: { yes?: boolean; assists?: AssistSource; }): Promise; //# sourceMappingURL=steps.d.ts.map