/** * Git commit extraction on the scanner daemon side. * * The production server runs in ECS and cannot `git log` the user's repo — * the repo lives on the user's machine, next to the daemon. We run `git log` * here and push the parsed commits alongside scan results. Server-side * `GitMiner.mineCommits` consumes them without touching the filesystem. */ export interface ParsedCommit { sha: string; author: string; date: string; message: string; files: string[]; parents: string[]; } /** * True when `repoRoot/.git` exists and `git log -1` returns a commit. * Non-git projects, `git init` with no commits, and corrupted repos all * return false without throwing. */ export declare function probeGit(repoRoot: string): Promise; /** * Fetch commits between `sinceCommit` and HEAD (or the last MAX_COMMITS on * first run). Returns [] on failure — caller omits the field from the push. * * Uses `-z` NUL-separated output so `--name-only` file entries cannot collide * with commit metadata. Parser mirrors the server-side token-walking parser * in GitMiner.parseLogOutput. */ export declare function fetchCommits(repoRoot: string, sinceCommit: string | null): Promise; export declare function parseLogOutput(raw: string): ParsedCommit[];