/** Git 文件状态 */
export interface GitFileStatus {
    path: string;
    status: "added" | "modified" | "deleted" | "renamed" | "untracked" | "conflicted";
}
/** Git 日志条目 */
export interface GitLogEntry {
    hash: string;
    shortHash: string;
    author: string;
    date: string;
    message: string;
}
/** Git Diff 统计块 */
export interface GitDiffHunk {
    file: string;
    additions: number;
    deletions: number;
    patch: string;
}
/** Git Blame 行信息 */
export interface GitBlameLine {
    line: number;
    hash: string;
    author: string;
    date: string;
    content: string;
}
/**
 * 检查指定目录是否为 Git 仓库。
 * @param cwd - 工作目录
 * @returns 是否为 Git 仓库
 */
export declare function isGitRepo(cwd: string): Promise<boolean>;
/**
 * 获取 Git 仓库根目录。
 * @param cwd - 工作目录
 * @returns 仓库根目录的绝对路径
 */
export declare function getRootDir(cwd: string): Promise<string>;
/**
 * 获取当前分支名称。
 * @param cwd - 工作目录
 * @returns 当前分支名
 */
export declare function getCurrentBranch(cwd: string): Promise<string>;
/**
 * 检查工作区是否干净（无未提交的变更）。
 * @param cwd - 工作目录
 * @returns 工作区是否干净
 */
export declare function isClean(cwd: string): Promise<boolean>;
/**
 * 获取工作区文件状态列表。
 * @param cwd - 工作目录
 * @returns 文件状态数组
 */
export declare function getStatus(cwd: string): Promise<GitFileStatus[]>;
/**
 * 获取 Git 提交日志。
 * @param cwd - 工作目录
 * @param options - 查询选项（最大数量、起始日期、作者、路径过滤）
 * @returns 提交日志条目数组
 */
export declare function getLog(cwd: string, options?: {
    maxCount?: number;
    since?: string;
    author?: string;
    path?: string;
}): Promise<GitLogEntry[]>;
/**
 * 获取贡献者提交统计（shortlog）。
 * @param cwd - 工作目录
 * @param since - 起始日期过滤（可选）
 * @returns 贡献者及其提交次数数组
 */
export declare function getShortlog(cwd: string, since?: string): Promise<Array<{
    author: string;
    count: number;
}>>;
/**
 * 获取差异统计信息（numstat 格式）。
 * @param cwd - 工作目录
 * @param options - 查询选项（是否包含暂存区、路径过滤）
 * @returns 差异统计块数组
 */
export declare function getDiff(cwd: string, options?: {
    cached?: boolean;
    path?: string;
}): Promise<GitDiffHunk[]>;
/**
 * 获取指定文件的差异补丁。
 * @param cwd - 工作目录
 * @param filePath - 文件路径
 * @param options - 查询选项（是否包含暂存区）
 * @returns 差异补丁字符串
 */
export declare function getDiffPatch(cwd: string, filePath: string, options?: {
    cached?: boolean;
}): Promise<string>;
/**
 * 获取指定文件的逐行 Blame 信息。
 * @param cwd - 工作目录
 * @param filePath - 文件路径
 * @returns 逐行 Blame 信息数组
 */
export declare function getBlame(cwd: string, filePath: string): Promise<GitBlameLine[]>;
/**
 * 列出所有本地分支。
 * @param cwd - 工作目录
 * @returns 分支信息数组（名称和是否为当前分支）
 */
export declare function listBranches(cwd: string): Promise<Array<{
    name: string;
    isCurrent: boolean;
}>>;
/**
 * 将文件添加到暂存区。
 * @param cwd - 工作目录
 * @param paths - 要暂存的文件路径列表
 */
export declare function add(cwd: string, paths: string[]): Promise<void>;
/**
 * 创建提交。
 * @param cwd - 工作目录
 * @param message - 提交信息
 * @returns git commit 命令输出
 */
export declare function commit(cwd: string, message: string): Promise<string>;
/**
 * 推送到远程仓库。
 * @param cwd - 工作目录
 * @param remote - 远程名称（可选）
 * @param branch - 分支名称（可选）
 * @returns git push 命令输出
 */
export declare function push(cwd: string, remote?: string, branch?: string): Promise<string>;
/**
 * 获取两个分支的合并基点。
 * @param cwd - 工作目录
 * @param branchA - 分支 A 名称
 * @param branchB - 分支 B 名称
 * @returns 合并基点的 commit hash
 */
export declare function getMergeBase(cwd: string, branchA: string, branchB: string): Promise<string>;
/**
 * 获取远程仓库 URL。
 * @param cwd - 工作目录
 * @param remote - 远程名称，默认为 "origin"
 * @returns 远程 URL，未找到时返回 null
 */
export declare function getRemoteUrl(cwd: string, remote?: string): Promise<string | null>;
/**
 * 获取 HEAD 的短 commit hash。
 * @param cwd - 工作目录
 * @returns HEAD 的短 hash
 */
export declare function getHeadCommitHash(cwd: string): Promise<string>;
//# sourceMappingURL=operations.d.ts.map