/** * PR summary comment for totem lint — single managed comment per PR. * Implements #923: deduplicates violations, builds markdown, upserts via gh CLI. */ import type { CompiledRule, TotemFinding, Violation } from '@mmnto/totem'; export interface DedupedFinding { file: string; line: number; message: string; severity: 'error' | 'warning'; ruleCount: number; } export interface PRSummaryData { totalRules: number; errors: number; warnings: number; findings: DedupedFinding[]; commitSha: string; durationMs: number; } /** * Deduplicate unified findings by file + line. Multiple findings at the same * location collapse into one with the highest severity and a rule count. * Canonical dedup implementation (ADR-071). */ export declare function deduplicateFindings(input: TotemFinding[]): DedupedFinding[]; /** * Deduplicate violations by file + line. Converts to unified findings * and delegates to deduplicateFindings. */ export declare function deduplicateViolations(violations: Violation[]): Promise; /** * Build the managed PR comment markdown from summary data. */ export declare function buildPRCommentMarkdown(data: PRSummaryData): string; export interface CommentUpsertOptions { prNumber: number; markdown: string; cwd: string; } /** * Find the existing totem-lint comment on a PR, or create a new one. * Uses `gh api` for reliable JSON output. */ export declare function upsertPRComment(options: CommentUpsertOptions): Promise; export interface PostPRCommentOptions { violations: Violation[]; rules: CompiledRule[]; prNumber: number; commitSha: string; durationMs: number; cwd: string; } /** * Post-processing step: dedup violations, build markdown, upsert comment. */ export declare function postPRComment(options: PostPRCommentOptions): Promise; //# sourceMappingURL=pr-comment.d.ts.map