import { type Harness, type HarnessDetection } from './harness/harness-detect.js'; import { type VerifyDepth } from './verify.js'; export type Outcome = 'not_detected' | 'not_installed' | 'stale_config' | 'needs_first_run' | 'installed' | 'failed' | 'harness_too_old' | 'interrupted' | 'auth_pending' | 'no_tty_auth_skip' | 'uninstalled' | 'uninstall_noop' | 'uninstall_pointer' | 'dry_run' | 'not_reached' | 'deselected'; export type HarnessResultBase = { harness: Harness; detected: boolean; configPath: string; installed: boolean; }; export interface HarnessRunResult extends HarnessResultBase { outcome: Outcome; fixCommand?: string; errorMessage?: string; verifyDepth?: VerifyDepth; verifyOk?: boolean; verifyReason?: string; keyAuthed?: boolean; /** MCP works, but a finishing step (CLI/skill/auth) failed. */ postInstallFailed?: boolean; /** Removal itself failed; an advisory note alone must not exit 1. */ removalFailed?: boolean; } export interface ConnectAllOptions { apiKey?: string; mcpUrl: string; dryRun: boolean; uninstall: boolean; /** Skip the end-of-install agent launch (finale still prints the ask). */ noLaunch?: boolean; /** Bare connect: offer the checkbox picker over the detected harnesses. */ pick?: boolean; /** Inherit subprocess stdio instead of replaying it only on failure. */ verbose?: boolean; /** Setup-page id riding in on --url; joins "copied the command" to this run. */ attemptId?: string; } /** The harness has never created its dir, so connecting would build one it does not own. */ export declare function needsFirstRun(detection: HarnessDetection): boolean; export declare function runConnectAll(opts: ConnectAllOptions): Promise; export declare const FIRST_TASK_PROMPT: string;