interface GitCommandResult {
    ok: boolean;
    stdout: string;
    stderr: string;
    output: string;
    error: string | null;
    exitCode: number;
}
export interface RunGitOptions {
    trimStdout?: boolean;
    env?: NodeJS.ProcessEnv;
}
export declare function runGit(cwd: string, args: string[], options?: RunGitOptions): Promise<GitCommandResult>;
export declare function getGitStdout(args: string[], cwd: string, options?: RunGitOptions): Promise<string>;
export interface GitHeadInfo {
    branch: string | null;
    headCommit: string | null;
    isDetached: boolean;
}
/**
 * Read the current HEAD commit, branch name, and detached state for a
 * repository (or worktree) at `cwd`.
 */
export declare function readGitHeadInfo(cwd: string): Promise<GitHeadInfo>;
export declare function getGitCommandErrorMessage(error: unknown): string;
export {};
//# sourceMappingURL=git-utils.d.ts.map