/** * Git Reader * * Reads a Git repository's commit graph and file-level diffs * by shelling out to `git`. No libgit2 dependency. */ export interface GitCommit { hash: string; authorName: string; authorEmail: string; timestamp: string; message: string; parentHashes: string[]; } export interface GitFileChange { status: 'A' | 'M' | 'D' | 'R'; path: string; oldPath?: string; } export interface GitCommitWithChanges extends GitCommit { changes: GitFileChange[]; } export declare class GitReader { private repoPath; constructor(repoPath: string); /** * Verifies this is a valid Git repository. */ isGitRepo(): boolean; /** * Returns all commits in topological order (oldest first). */ readCommits(): GitCommit[]; /** * Returns file changes for a specific commit. * For the root commit (no parents), diffs against empty tree. */ readChanges(commitHash: string, parentHash?: string): GitFileChange[]; /** * Returns the full content of a file at a specific commit. */ readFileContent(commitHash: string, filePath: string): Buffer | null; /** * Reads all commits with their file changes in topological order. * This is the main entry point for the import pipeline. */ readFullHistory(): GitCommitWithChanges[]; /** * Returns the total number of commits. */ commitCount(): number; /** * Returns the current branch name. */ currentBranch(): string; /** * Returns all branch names. */ branches(): string[]; private git; private gitBuffer; } //# sourceMappingURL=git-reader.d.ts.map