/** * Thin, injectable wrapper around spawnSync. Everything that shells out * (git plumbing, test re-runs) accepts an ExecFn so tests can substitute a * fake instead of depending on the host machine. */ export interface ExecResult { readonly status: number | null; readonly stdout: string; readonly stderr: string; } export type ExecFn = (cmd: string, args: readonly string[], options?: ExecOptions) => ExecResult; export interface ExecOptions { readonly cwd?: string; readonly env?: Readonly>; readonly timeoutMs?: number; readonly input?: string; } export declare const realExec: ExecFn; /** Run a full shell command line (used only for re-running claimed test commands). */ export declare const realShellExec: ExecFn;