import type { GitChangedFile, GitChurnSummary, GitCochangeSummary, GitCommitHistory, GitDiffHunks, GitDiffPatch, GitDiffSummary, GitFileHistoryEntry, GitFileHistory, GitRange } from './types.js';
import type { ResolveDiffRangeOptions } from './client.js';
export interface GitContextOptions extends ResolveDiffRangeOptions {
    paths?: readonly string[];
    excludePaths?: readonly string[];
}
export interface GitPatchOptions extends GitContextOptions {
    tokenBudget?: number;
    tokenizer?: string;
}
export interface GitHistoryOptions extends GitContextOptions {
    limit?: number;
    since?: string;
}
export interface GitFileHistoryOptions extends GitHistoryOptions {
    path: string;
    follow?: boolean;
    lineRange?: {
        start: number;
        end: number;
    };
}
export interface GitChurnOptions extends GitHistoryOptions {
    sort?: 'churn' | 'commits' | 'added' | 'deleted' | 'net';
}
export interface GitCochangeOptions extends GitHistoryOptions {
    target?: string;
    maxCommitFiles?: number;
}
export declare function parseLineHistory(output: string): GitFileHistoryEntry[];
export declare function resolveGitRange(options?: ResolveDiffRangeOptions): Promise<GitRange>;
export declare function getGitChangedFiles(options?: GitContextOptions): Promise<GitChangedFile[]>;
export declare function getGitDiffSummary(options?: GitContextOptions): Promise<GitDiffSummary>;
export declare function getGitDiffPatch(options?: GitPatchOptions): Promise<GitDiffPatch>;
export declare function getGitDiffHunks(options?: GitContextOptions): Promise<GitDiffHunks>;
export declare function getGitDiffFunctionContext(options?: GitContextOptions): Promise<GitDiffHunks>;
export declare function getGitCommitHistory(options?: GitHistoryOptions): Promise<GitCommitHistory>;
export declare function getGitFileHistory(options: GitFileHistoryOptions): Promise<GitFileHistory>;
export declare function getGitChurnSummary(options?: GitChurnOptions): Promise<GitChurnSummary>;
export declare function getGitCochange(options?: GitCochangeOptions): Promise<GitCochangeSummary>;
