import type { Discussion } from './gitlab.js'; import type { Severity } from './types.js'; /** * A bot-posted inline finding from a previous review run whose thread is still * open (unresolved). Carried into the current summary so an unresolved thread * never silently disappears from the issue list when a later run doesn't * re-emit it (#92). */ export interface CarryOverFinding { file: string; line: number | null; severity: Severity; /** Conventional Comment label incl. decoration, e.g. `issue (blocking)`. */ header: string; subject: string; /** All fingerprint hashes found in the bot note (primary + secondary). */ hashes: string[]; } /** * Extract still-open (unresolved) bot-posted inline findings from prior MR * discussions. A discussion qualifies when its first bot note carries fingerprint * markers, sits on a file position, and no note in it is resolved. */ export declare function extractOpenBotFindings(discussions: Discussion[]): CarryOverFinding[]; /** * From the still-open prior findings, keep only those the current run did NOT * re-emit — i.e. none of their fingerprints appear in `currentFingerprints`. * A re-emitted finding is already represented (posted or deduplicated), so it * must not be double-listed. */ export declare function selectCarryOver(openFindings: CarryOverFinding[], currentFingerprints: Set): CarryOverFinding[]; /** * Fold carried-over findings into a summary so unresolved prior threads stay * visible and the risk line never drops below a still-open finding's level: * * 1. Bump the `**Risk: …**` line up (never down) if a carry-over outranks it. * 2. Append a `**Still open from earlier reviews (N):**` block listing them. * * Returns the summary unchanged when there is nothing to carry over, so * single-run / first-run output is byte-identical. */ export declare function applyCarryOverToSummary(summary: string, carryOvers: CarryOverFinding[]): string; /** * Convenience wrapper: extract still-open prior findings, drop the ones the * current run re-emitted, and fold the rest into the summary. */ export declare function withCarriedOverFindings(summary: string, discussions: Discussion[], currentFingerprints: Set): string; //# sourceMappingURL=summary-carryover.d.ts.map