import type { Logger } from "pino";
import type { ProcessEnvRecord } from "../server/paseo-env.js";
export interface GitCommandOptions {
    cwd: string;
    env?: ProcessEnvRecord;
    envOverlay?: ProcessEnvRecord;
    logger?: Pick<Logger, "trace">;
    timeout?: number;
    maxOutputBytes?: number;
    acceptExitCodes?: number[];
}
export interface GitCommandResult {
    stdout: string;
    stderr: string;
    truncated: boolean;
    exitCode: number | null;
    signal: NodeJS.Signals | null;
}
export interface GitCommandMetric {
    args: string[];
    cwd: string;
    startedAtMs: number;
    durationMs: number;
    exitCode: number | null;
    signal: NodeJS.Signals | null;
    success: boolean;
}
export interface GitCommandMetricsSnapshot {
    commands: GitCommandMetric[];
    total: number;
    failed: number;
    maxConcurrent: number;
}
export declare function startGitCommandMetrics(): void;
export declare function stopGitCommandMetrics(): GitCommandMetricsSnapshot;
export declare function runGitCommand(args: string[], options: GitCommandOptions): Promise<GitCommandResult>;
//# sourceMappingURL=run-git-command.d.ts.map