import "./compat.js"; import { spawn } from "node:child_process"; import type { GitRunner } from "./types.js"; /** Ceiling for any invocation that does not ask for a shorter one. A git child * that never exits (stalled SMB/NFS mount, AV holding a handle, a `.git` lock * contended by a wedged sibling) would otherwise leave its capture promise * unsettled forever, which permanently blocks `/undo`//`redo` ("still being * captured") and makes every later turn skip its capture. Generous on * purpose: a timeout degrades the turn to session-only, so it must only fire * when the child is genuinely wedged, never on a merely slow workspace. */ export declare const DEFAULT_TIMEOUT_MS = 120000; export interface GitRunnerDependencies { /** Fixed env merged after `process.env` and before per-invocation * `options.env`, so it overrides the process environment. Used for private * per-workspace repositories where GIT_DIR must be present on every command; * the runner re-exposes it as `runner.env` so callers can detect it. */ env?: Record; spawnGit?: typeof spawn; terminationGraceMs?: number; } export declare function createGitRunner(cwd: string, dependencies?: GitRunnerDependencies): GitRunner;