import type { ConnectionSelectOption } from "#setup/cli/index.js"; import { type Asker } from "../ask.js"; import type { ConnectionPlan, SetupState } from "../state.js"; import type { SetupBox } from "../step.js"; export declare const CONNECT_REQUIRES_VERCEL = "Authenticates through Vercel Connect, which needs a Vercel project. Re-run and choose to deploy to Vercel."; export interface SelectConnectionsOptions { /** Resolves the picker and custom sub-questions; the composed stack decides how. */ asker: Asker; /** * Headless mode: skips the picker entirely unless `presetConnections` were * requested. Fixed at composition time (the same place the asker base is * chosen), since `gather` cannot read the mode off the asker. */ headless?: boolean; /** Skip the picker and plan exactly these catalog slugs. */ presetConnections?: string[]; } /** Exported for tests: the picker rows derived from the curated catalog. */ export declare function buildCatalogOptions(disabledReasons: Readonly>): ConnectionSelectOption[]; /** * THE CONNECTION SELECTION BOX: part of the interview phase, before any * filesystem write. Offers the connection catalog (plus a custom MCP / OpenAPI * escape hatch through preset slugs) and resolves every prompt into * fully-specified {@link ConnectionPlan}s recorded on the state; the * add-connections box executes them after the scaffold and link. The full * catalog is selectable: the deployment decision comes later in the interview, * and the provisioning box resolves to Vercel when a Connect-backed selection * needs a project. */ export declare function selectConnections(options: SelectConnectionsOptions): SetupBox;