/**
 * Git 快照 API 路由
 *
 * 提供 Git Stash 快照的创建、列表、恢复和删除功能
 */
export declare const gitRouter: import("express-serve-static-core").Router;
/**
 * 解析 Git 命令超时时间。
 * 主流程：优先使用环境变量，非法或过小配置回落到默认值，避免 Git 检测请求长期挂起。
 */
export declare function resolveGitCommandTimeoutMs(): number;
interface GitRepositoryContext {
    workspacePath: string;
    repositoryRootPath: string | null;
    hasRepository: boolean;
    isGitRepo: boolean;
    usingParentGitRepo: boolean;
    relativeWorkspacePath: string;
}
export declare function assertGitWorkspacePathAccessible(workspacePath: string): Promise<void>;
interface GitStashItem {
    ref: string;
    stashName?: string;
    message: string;
    branch: string;
    createdAt: string | null;
}
type GitDiffFileStatus = 'modified' | 'added' | 'deleted' | 'renamed';
interface GitDiffSummaryFile {
    path: string;
    status: GitDiffFileStatus;
    additions: number;
    deletions: number;
    staged: boolean;
}
/**
 * 判断 Git diff 汇总行是否应该展示在差异树中。
 * 普通 modified 且文本增删均为 0 通常是 filemode/元数据噪声，避免显示为“无差异内容”。
 */
export declare function shouldIncludeGitDiffSummaryFile(status: GitDiffFileStatus, additions: number, deletions: number, isBinaryDiff: boolean): boolean;
/**
 * 判断 git stash 是否因仓库尚无初始提交而失败。
 * 主流程：兼容 Git 不同版本输出，将底层英文错误归一成可面向用户的诊断。
 */
export declare function isGitStashMissingInitialCommitError(output: string): boolean;
export declare function createMissingInitialCommitSnapshotError(): string;
/**
 * 判断 git stash push 是否明确表示没有本地变更。
 * 主流程：兼容不同 Git 版本把 no-change 信息输出到 stdout 或 stderr，且可能返回 0 或非 0。
 */
export declare function isGitStashNoChangesOutput(output: string): boolean;
interface LatestGitStash {
    ref: string;
    stashName: string;
    message: string;
}
/**
 * 生成 AgentsWork 持久化 stash 快照 ref。
 * 主流程：仅接受稳定 stash commit hash，返回项目私有 refs 命名空间下的引用路径。
 */
export declare function createAgentsWorkStashSnapshotRef(stashRef: string): string | null;
/**
 * 解析 git stash list --format 输出行。
 * 主流程：优先返回稳定 stash commit hash 作为 ref，同时保留 stash@{n} 供界面展示。
 */
export declare function parseGitStashListLine(line: string): GitStashItem | null;
/**
 * 从 git stash list -n 1 输出解析最近一次 stash。
 * 主流程：提取稳定 stash commit hash，供无变更快照复用最近快照引用。
 */
export declare function parseLatestGitStash(output: string): LatestGitStash | null;
/**
 * 持久化 stash 快照引用。
 * 具体功能：为稳定 stash commit hash 创建私有 Git ref；失败时记录警告并保留调用方的兼容回退。
 */
export declare function persistAgentsWorkStashSnapshotRef(workspacePath: string, stashRef: string): Promise<string | null>;
/**
 * 解析 git diff 的 name-status 与 numstat 输出，生成前端文件树需要的汇总数据。
 */
export declare function parseGitStatusStagedPaths(output: string): Set<string>;
/**
 * 解析 git diff 的 name-status 与 numstat 输出，生成前端文件树需要的汇总数据。
 */
export declare function parseGitDiffSummary(nameStatusOutput: string, numstatOutput: string, stagedPaths?: Set<string>, forceStaged?: boolean): GitDiffSummaryFile[];
/**
 * 合并工作区与暂存区差异汇总。
 * 主流程：以路径去重，保留工作区展示顺序；同一路径若也存在暂存变更则标记为 staged 并累加统计。
 */
export declare function mergeGitDiffSummaryFiles(unstagedFiles: GitDiffSummaryFile[], stagedFiles: GitDiffSummaryFile[]): GitDiffSummaryFile[];
export declare function normalizeGitCommitMessage(message: unknown): string;
export declare function createScopedGitPathspecArgs(context: Pick<GitRepositoryContext, 'relativeWorkspacePath'>): string[];
export declare function createScopedFilePathspecArgs(filePath: string, context: Pick<GitRepositoryContext, 'relativeWorkspacePath'>): string[];
export {};
//# sourceMappingURL=git.d.ts.map