import type { ClientId } from '@zhixuan92/multi-model-agent-core'; export interface SetupDeps { homeDir?: string; configPath?: string; stdout?: (s: string) => boolean; stderr?: (s: string) => boolean; /** Ask a free-text question, returning the trimmed answer (empty = accept the * shown default). Injected so the whole flow is testable without a TTY. */ ask?: (question: string, fallback?: string) => Promise; /** Yes/no. `fallback` is what an empty answer means. */ confirm?: (question: string, fallback: boolean) => Promise; /** Test seam: skip the live provider probe. */ skipProbe?: boolean; detected?: ReadonlySet; skillsRoot?: string; } export declare const SetupExitCode: { readonly SUCCESS: 0; readonly ERR_ABORTED: 1; readonly ERR_PARTIAL: 2; }; export declare function runSetup(deps?: SetupDeps): Promise; /** Real readline prompts. Kept out of `runSetup` so every question above is * driven by an injected function in tests. */ export declare function ttyPrompts(): Pick; /** Whether an interactive setup is even possible. A piped or CI invocation gets * a clear refusal rather than hanging on a prompt nobody can answer. */ export declare function isInteractive(): boolean; //# sourceMappingURL=setup.d.ts.map