export type CommandResult = { durationMs: number; status: number | null; signal: NodeJS.Signals | null; error?: Error; diagnosticTail: string; }; /** Quiet npm/npx progress when we spawn a nested package-manager CLI. */ export declare function mutedNpmEnv(base?: NodeJS.ProcessEnv): NodeJS.ProcessEnv; export type RunCommandOptions = { env?: NodeJS.ProcessEnv; /** When false, capture stdout/stderr without writing them to the parent. Default true. */ echo?: boolean; /** Default inherit so interactive CLIs can prompt. Use ignore for login probes. */ stdin?: "inherit" | "ignore"; /** Inherit stdout/stderr so the child sees a TTY (needed for `vercel login`). */ inheritOutput?: boolean; /** Max bytes retained in `diagnosticTail` when output is piped. Default 16KiB. */ captureLimit?: number; }; /** * `spawn.sync(..., { stdio: "inherit" })` exposes exit status but not the output * needed to distinguish dependency, workspace, and package-compatibility failures. * This runner preserves normal terminal streaming while retaining only a bounded * local tail for allowlisted classification. The tail must never be sent to telemetry. * * Running asynchronously also lets the parent forward SIGINT/SIGTERM, wait for the * child to close, and return cancellation metadata before telemetry is flushed. */ export declare function runCommand(command: string, args: string[], cwd: string, options?: RunCommandOptions): Promise; export type QuietCommandOptions = { command: string; args: string[]; cwd: string; label: string; env?: NodeJS.ProcessEnv; captureLimit?: number; }; /** Run a command with output captured and a spinner in the terminal. */ export declare function runQuietCommand(opts: QuietCommandOptions): Promise; //# sourceMappingURL=process-runner.d.ts.map