export declare const SKILL_INSTALL_TIMEOUT_MS = 120000; export declare const STEP_MAX_BUFFER: number; /** Quiet captures subprocess output and replays it only on failure. */ export type InstallOptions = { verbose: boolean; /** Progress line even when quiet; defaults to `verbose`. */ announce?: boolean; }; /** Outcome of `--all`'s one npm install; error keeps ConnectStepError.failureReason. */ export type HoistedCliInstall = { ok: true; durationMs: number; } | { ok: false; durationMs: number; error: Error; }; /** Every harness reads the outcome; only the first take reports it. */ export type TakeHoistedCliInstall = () => { outcome: HoistedCliInstall; firstTake: boolean; }; export declare function captureStdio(verbose: boolean): { stdio: "inherit"; timeout: number; encoding?: undefined; maxBuffer?: undefined; } | { encoding: "utf8"; maxBuffer: number; timeout: number; stdio?: undefined; }; /** Inherited stdio leaves these null; only piped runs yield text. */ export declare function capturedOutput(result: { stdout?: unknown; stderr?: unknown; }): string; /** A verbose run captured nothing, so this is a no-op. */ export declare function replay(output: string): void; export declare function installTinyFishCli({ verbose, announce }: InstallOptions): void;