/** Injectable dependencies — used for testing. All optional; default to real implementations. */ export interface SetupDeps { findRealClaude: (selfPath: string) => string | null; saveClaudeBin: (path: string) => void; getNpmBinDir: () => string | null; detectShellConfigs: () => string[]; patchShellConfig: (cfg: string, npmBin: string) => boolean; detectExistingStatusLine: () => DetectedExisting; installStatusLine: (command: string) => void; } export declare const defaultDeps: SetupDeps; export interface SetupWizardResult { binPath: string | null; patchedConfigs: string[]; statusLineInstalled: boolean; cancelled: boolean; } export type DetectedExisting = { kind: 'absent'; } | { kind: 'ours-plain'; } | { kind: 'ours-embedded'; } | { kind: 'ours-ccstatusline'; } | { kind: 'foreign'; command: string; }; export type Step = { kind: 'detect-bin'; } | { kind: 'manual-bin'; error?: string; } | { kind: 'detect-shell'; binPath: string | null; } | { kind: 'pick-configs'; binPath: string | null; npmBin: string; configs: string[]; } | { kind: 'no-shell-config'; binPath: string | null; npmBin: string; } | { kind: 'no-npm-bin'; binPath: string | null; } | { kind: 'sl-existing'; binPath: string | null; npmBin: string; patched: string[]; existing: DetectedExisting; } | { kind: 'sl-replace-or-chain'; binPath: string | null; npmBin: string; patched: string[]; existing: DetectedExisting; cursor: number; } | { kind: 'sl-confirm'; binPath: string | null; npmBin: string; patched: string[]; } | { kind: 'sl-pick-variant'; binPath: string | null; npmBin: string; patched: string[]; cursor: number; } | { kind: 'summary'; result: SetupWizardResult; } | { kind: 'cancelled'; result: SetupWizardResult; }; export declare const REPLACE_CHAIN_OPTS: readonly [{ readonly value: "skip"; readonly label: "Keep what I have"; readonly hint: "no changes"; }, { readonly value: "chain"; readonly label: "Chain with ccstatusline"; readonly hint: "show both — needs npx + ccstatusline"; }, { readonly value: "replace"; readonly label: "Replace with claude-switch badge"; readonly hint: "simplest, no extra deps"; }]; export declare const VARIANT_OPTS: readonly [{ readonly value: "plain"; readonly label: "Just the account badge"; readonly hint: "no extra dependencies"; }, { readonly value: "ccstatusline"; readonly label: "Badge + ccstatusline"; readonly hint: "fancy bar — needs npx + ccstatusline"; }];