import type { BlameBlock, CommitInfo, ContributorStats, DiffStat, FileChurn, FileHotspot, LineHistoryEntry, RenameEntry, StaleFile, TagInfo } from "./types.js"; export declare function parseLogOutput(raw: string): CommitInfo[]; export declare function parseBlameOutput(raw: string): BlameBlock[]; export declare function parseShortlogOutput(raw: string, totalCommits: number): ContributorStats[]; export declare function parseNameOnlyLog(raw: string): Map; export declare function parseDiffStatOutput(raw: string): DiffStat; export declare function parseFileFrequency(raw: string, topN?: number): FileHotspot[]; /** * Parse `git log --numstat --format=COMMIT:%H` output into per-file churn stats. */ export declare function parseNumstatOutput(raw: string, topN?: number): FileChurn[]; export interface CombinedNumstatResult { hotspots: FileHotspot[]; churn: FileChurn[]; } /** * Parse `git log --numstat --format=COMMIT:%H` output into both hotspots and churn. * A single numstat scan contains file paths (for frequency/hotspots) AND * insertions/deletions (for churn), eliminating the need for separate git calls. */ export declare function parseCombinedNumstat(raw: string, options?: { hotspotsTopN?: number; churnTopN?: number; }): CombinedNumstatResult; /** * Parse stale file data from `git log` output. * Input format: lines of "ISO_DATE\tFILE_PATH" */ export declare function parseStaleFiles(raw: string, thresholdDays: number, now?: Date): StaleFile[]; /** * Parse `git log --follow --diff-filter=R --find-renames --format=%H|%an|%ae|%aI|%s --name-status` * output into rename entries. * * The output alternates between commit header lines (pipe-separated) and * name-status lines like "R100\told-path\tnew-path". */ export declare function parseRenameOutput(raw: string): RenameEntry[]; /** * Parse `git tag -l --sort=-creatordate --format=...` output. */ export declare function parseTagOutput(raw: string): TagInfo[]; /** * Parse `git log -L` output into line history entries. * * The output format consists of commit headers followed by diffs. * Each commit starts with a line matching "commit ", * followed by Author:, Date:, blank line, subject, blank line, then diff hunks. */ export declare function parseLineLogOutput(raw: string): LineHistoryEntry[];