/**
 * Finding Grouping Logic
 * Groups and sorts vulnerabilities for workflow-friendly output
 */
import type { Vulnerability, VulnerabilitySeverity, VulnerabilityCategory } from '../../shared/types';
/**
 * Risk themes for grouping findings
 */
export type RiskTheme = 'secrets' | 'injection' | 'auth' | 'ai' | 'config' | 'data' | 'other';
/**
 * Map categories to risk themes
 */
export declare function getRiskTheme(category: VulnerabilityCategory): RiskTheme;
/**
 * Theme display names and icons
 */
export declare const THEME_CONFIG: Record<RiskTheme, {
    name: string;
    icon: string;
    priority: number;
}>;
/**
 * Grouped findings by risk theme
 */
export interface GroupedFindings {
    theme: RiskTheme;
    themeName: string;
    themeIcon: string;
    findings: Vulnerability[];
    severityCounts: Record<VulnerabilitySeverity, number>;
}
/**
 * Group vulnerabilities by risk theme
 */
export declare function groupByTheme(vulnerabilities: Vulnerability[]): GroupedFindings[];
/**
 * Limit findings per group to avoid overwhelming output
 */
export declare function limitPerGroup(groups: GroupedFindings[], maxPerGroup?: number): GroupedFindings[];
/**
 * Get findings sorted by severity across all groups
 */
export declare function sortBySeverity(vulnerabilities: Vulnerability[]): Vulnerability[];
/**
 * Filter to only blocking issues (critical/high)
 */
export declare function getBlockingIssues(vulnerabilities: Vulnerability[]): Vulnerability[];
/**
 * Filter to actionable issues (medium and above)
 */
export declare function getActionableIssues(vulnerabilities: Vulnerability[]): Vulnerability[];
//# sourceMappingURL=grouping.d.ts.map