/** * Renderer for `generator-diff` artifacts. * * Shows: git diff --stat of the sprint's commits, list of files changed * (created/modified/deleted), commit count, and per-file diff (truncated * at 50 lines per file). Skips binary files (lists but does not render inline). * * This is the ONLY renderer allowed to shell out (to git). * All git calls go through the GitClient interface for testability. * * Exports two functions: * - `renderGeneratorDiff(artifact)` — SYNC, no git I/O, uses filesChanged list only. * Used by the registry dispatch (sync constraint). * - `renderGeneratorDiffAsync(artifact, git?)` — ASYNC, full git diff. * May be called directly by mechanisms that can await. * * Sprint 11 — colocated in renderers/ per mechanisms/ precedent. */ /** Mockable seam for git operations — mirrors GhClient pattern in pr.ts. */ export interface GitClient { diffStat(base: string, head: string, cwd: string): Promise; diffNumstat(base: string, head: string, cwd: string): Promise>; diffFile(filePath: string, base: string, head: string, cwd: string): Promise; revListCount(base: string, head: string, cwd: string): Promise; } /** Default GitClient implementation — wraps execa. */ export declare function createGitClient(): GitClient; /** * Render a `generator-diff` artifact as markdown (SYNC version). * * Only uses the `filesChanged` list from the artifact — no git I/O. * This is what the registry dispatch calls (sync constraint). */ export declare function renderGeneratorDiff(artifact: unknown): string; /** * Render a `generator-diff` artifact as markdown (ASYNC version with git I/O). * * When baseRef/headRef are available, shells out to git for stat and per-file diffs. * Falls back to showing just the filesChanged list when refs are unavailable. * * @param artifact - The generator-diff artifact. * @param git - Injectable GitClient (default: createGitClient()). */ export declare function renderGeneratorDiffAsync(artifact: unknown, git?: GitClient): Promise; //# sourceMappingURL=generator-diff.d.ts.map