/** Over this many bytes of blobs on the report branch, publish logs a workflow * warning: the branch is drifting toward the size where consumers who still * clone it (checkouts, the scaffolded prune) start to hurt. Publish itself is * size-independent, so this is an early smoke alarm, not a limit. */ export declare const REPORT_BRANCH_SIZE_WARNING_BYTES = 1000000000; export type ReportPublishFile = { /** Path inside the report folder, for example `report.md` or `crops/hero.png`. */ relativePath: string; content: Buffer; }; export type ReportPublishRequest = { apiBaseUrl: string; repository: string; token: string; branch: string; /** Top-level folder for this report, for example `pr-123`. */ reportPath: string; files: ReportPublishFile[]; commitMessage: string; /** Retries for the tip-moved race and for transient API failures. */ maximumAttempts?: number; /** Injection point for tests. Defaults to global fetch. */ fetchImplementation?: typeof fetch; /** Injection point for tests. Defaults to a real sleep. */ sleepImplementation?: (milliseconds: number) => Promise; log?: (line: string) => void; }; export type ReportPublishResult = { commitSha: string; /** Total blob bytes on the branch after publish; null when the recursive tree * listing was truncated and the size could not be measured. */ branchSizeBytes: number | null; }; export declare function publishReportFolder(request: ReportPublishRequest): Promise; /** Read the just-published report back at the exact commit we are about to * advertise and require the run receipt. Fail closed: a green run must never * hand out a dead or stale report URL. */ export declare function verifyPublishedReceipt(options: { apiBaseUrl: string; repository: string; token: string; reportPath: string; commitSha: string; expectedReceipt: string; maximumAttempts?: number; fetchImplementation?: typeof fetch; sleepImplementation?: (milliseconds: number) => Promise; }): Promise; /** Collect exactly what the report step publishes: `report.md`, the exhaustive * `report.json`, plus every generated crop the Markdown references. Nothing * else in the report directory travels. */ export declare function collectReportFiles(reportDirectory: string): ReportPublishFile[];