/** * @fileoverview Result Aggregator - combines and deduplicates security findings * @module @nahisaho/musubix-security/core/result-aggregator * @trace DES-SEC2-ORCH-003, REQ-SEC2-REPORT-001 */ import type { Vulnerability } from '../types/vulnerability.js'; import type { AggregatedVulnerability, AnalysisResult, AggregatedResult, DeduplicationRule, PrioritizationCriteria, IResultAggregator } from '../types/result.js'; /** * Result Aggregator implementation * @trace DES-SEC2-ORCH-003 */ export declare class ResultAggregator implements IResultAggregator { private deduplicationRules; private prioritizationCriteria; constructor(rules?: DeduplicationRule[], criteria?: PrioritizationCriteria); /** * Aggregate results from multiple analyzers * @trace REQ-SEC2-REPORT-001 */ aggregate(results: AnalysisResult[]): AggregatedResult; /** * Deduplicate vulnerabilities */ deduplicate(vulnerabilities: Vulnerability[], rules?: DeduplicationRule[]): Vulnerability[]; /** * Deduplicate aggregated vulnerabilities */ private deduplicateAggregated; /** * Calculate similarity between two vulnerabilities */ private calculateSimilarity; /** * Check if two field values match */ private fieldsMatch; /** * Type guard for SourceLocation */ private isSourceLocation; /** * Merge two vulnerabilities according to strategy */ mergeVulnerabilities(v1: AggregatedVulnerability, v2: AggregatedVulnerability, strategy?: 'keep-first' | 'keep-highest-confidence' | 'merge'): AggregatedVulnerability; /** * Prioritize vulnerabilities */ prioritize(vulnerabilities: Vulnerability[], criteria?: PrioritizationCriteria): Vulnerability[]; /** * Prioritize aggregated vulnerabilities */ private prioritizeAggregated; /** * Calculate priority score for a vulnerability */ private calculatePriorityScore; /** * Estimate exploitability based on vulnerability type */ private estimateExploitability; /** * Estimate impact based on vulnerability characteristics */ private estimateImpact; /** * Calculate individual risk score for a vulnerability */ private calculateIndividualRiskScore; /** * Calculate overall risk score for all vulnerabilities * @trace REQ-SEC2-REPORT-001 */ calculateRiskScore(vulnerabilities: Vulnerability[]): number; /** * Configure deduplication rules */ setDeduplicationRules(rules: DeduplicationRule[]): void; /** * Configure prioritization criteria */ setPrioritizationCriteria(criteria: PrioritizationCriteria): void; /** * Merge two similar vulnerabilities into one * @trace DES-SEC2-ORCH-003 */ mergeSimilar(vuln1: Vulnerability, vuln2: Vulnerability): Vulnerability; } /** * Create a default result aggregator instance */ export declare function createResultAggregator(rules?: DeduplicationRule[], criteria?: PrioritizationCriteria): ResultAggregator; /** * Merge similar vulnerabilities based on location overlap */ export declare function mergeSimilarByLocation(vulnerabilities: Vulnerability[], overlapThreshold?: number): Vulnerability[]; //# sourceMappingURL=result-aggregator.d.ts.map