import type { GitFileStatus, GitLogEntry, GitDiffHunk, GitBlameLine } from "./operations.js";
/**
 * Git 操作依赖注入模块。
 * @description 定义 GitOperations 接口作为抽象层，并导出基于真实 Git 命令的实现（realGitOps）。
 *              使用依赖注入模式，便于测试时替换为 mock 实现。
 *
 *              位置: src/git/git_deps.ts（从 engine/core/ 移出，恢复 core/ 零反向依赖）
 */
/**
 * Git 操作抽象接口。
 * @description 封装所有项目需要的 Git 操作，包括仓库查询、状态检查、日志查看、
 *              差异比较、分支管理和远程操作等。
 */
export interface GitOperations {
    /** 检查指定目录是否为 Git 仓库 */
    isGitRepo(cwd: string): Promise<boolean>;
    /** 获取 Git 仓库根目录路径 */
    getRootDir(cwd: string): Promise<string>;
    /** 获取当前分支名称 */
    getCurrentBranch(cwd: string): Promise<string>;
    /** 检查工作区是否干净（无未提交变更） */
    isClean(cwd: string): Promise<boolean>;
    /** 获取工作区文件状态列表 */
    getStatus(cwd: string): Promise<GitFileStatus[]>;
    /** 获取提交日志，支持按数量、时间、作者和路径过滤 */
    getLog(cwd: string, options?: {
        maxCount?: number;
        since?: string;
        author?: string;
        path?: string;
    }): Promise<GitLogEntry[]>;
    /** 获取简短日志摘要（按作者分组统计提交数） */
    getShortlog(cwd: string, since?: string): Promise<Array<{
        author: string;
        count: number;
    }>>;
    /** 获取差异信息（结构化 Hunk 列表） */
    getDiff(cwd: string, options?: {
        cached?: boolean;
        path?: string;
    }): Promise<GitDiffHunk[]>;
    /** 获取指定文件的差异补丁文本 */
    getDiffPatch(cwd: string, filePath: string, options?: {
        cached?: boolean;
    }): Promise<string>;
    /** 获取指定文件的逐行 Blame 信息 */
    getBlame(cwd: string, filePath: string): Promise<GitBlameLine[]>;
    /** 列出所有本地分支及其当前标记 */
    listBranches(cwd: string): Promise<Array<{
        name: string;
        isCurrent: boolean;
    }>>;
    /** 将文件添加到暂存区 */
    add(cwd: string, paths: string[]): Promise<void>;
    /** 创建提交，返回提交 SHA */
    commit(cwd: string, message: string): Promise<string>;
    /** 推送到远程仓库，返回推送结果 */
    push(cwd: string, remote?: string, branch?: string): Promise<string>;
    /** 获取两个分支的最新公共祖先提交 SHA */
    getMergeBase(cwd: string, branchA: string, branchB: string): Promise<string>;
    /** 获取远程仓库 URL，不存在则返回 null */
    getRemoteUrl(cwd: string, remote?: string): Promise<string | null>;
    /** 获取 HEAD 的短 commit hash */
    getHeadCommitHash(cwd: string): Promise<string>;
}
/**
 * 基于真实 Git 命令的 GitOperations 实现。
 * @description 导出 realGitOps 实例，将所有 Git 操作委托给真实的 git 命令行工具。
 */
export declare const realGitOps: GitOperations;
//# sourceMappingURL=git_deps.d.ts.map