import type { DependencyGraphSnapshot, RemediationSuggestion, Severity, VulnerabilityFinding } from "../core/models.js"; import type { OwnershipPath } from "../core/ownership/tracer.js"; export type ActionGroupKind = "upgrade-direct" | "upgrade-transitive" | "override" | "manual"; export interface ActionGroup { id: string; kind: ActionGroupKind; /** Package to change in package.json (upgrade target or override key) */ targetPackage: string; /** Direct dependency that owns the transitive chain, if any */ topLevelOwner?: string; findings: VulnerabilityFinding[]; affectedPackages: string[]; maxSeverity: Severity; remediation?: RemediationSuggestion; ownershipSample: string[]; isDevOnly: boolean; } export interface BriefMeta { projectName: string; pm: string; lockfileKind: string; isMonorepo: boolean; } export interface BriefReport { status: "clean" | "actionable"; findingsCount: number; actionGroupCount: number; meta: BriefMeta; actionGroups: ActionGroup[]; skippedGroups: ActionGroup[]; } export interface BriefOptions { top?: number; includePrompt?: boolean; focusPackage?: string; prodOnly?: boolean; } export declare function buildActionGroups(findings: VulnerabilityFinding[], ownership: OwnershipPath[], remediation: RemediationSuggestion[], graph: DependencyGraphSnapshot | null): ActionGroup[]; export declare function rankActionGroups(groups: ActionGroup[]): ActionGroup[]; export declare function buildBriefReport(findings: VulnerabilityFinding[], ownership: OwnershipPath[], remediation: RemediationSuggestion[], graph: DependencyGraphSnapshot | null, meta: BriefMeta, opts?: BriefOptions): BriefReport; export declare function toBriefMarkdown(brief: BriefReport, opts?: BriefOptions): string; export declare function toBriefJson(brief: BriefReport): string; //# sourceMappingURL=brief-reporter.d.ts.map