/** * Agentic QE v3 - Impact Analyzer Service * Analyzes change impact across codebase using dependency graph */ import { Result, Severity } from '../../../shared/types'; import { MemoryBackend } from '../../../kernel/interfaces'; import { ImpactRequest, ImpactAnalysis } from '../interfaces'; import { IKnowledgeGraphService } from './knowledge-graph'; /** * Interface for the impact analyzer service */ export interface IImpactAnalyzerService { /** Analyze impact of changed files */ analyzeImpact(request: ImpactRequest): Promise>; /** Get impacted tests for changes */ getImpactedTests(changedFiles: string[]): Promise>; /** Calculate risk level for changes */ calculateRiskLevel(impact: ImpactAnalysis): Severity; /** Get change recommendations */ getRecommendations(impact: ImpactAnalysis): string[]; } /** * Configuration for the impact analyzer */ export interface ImpactAnalyzerConfig { maxDepth: number; riskWeights: RiskWeights; testPatterns: string[]; criticalPaths: string[]; namespace: string; } /** * Risk weight configuration */ export interface RiskWeights { directImpact: number; transitiveImpact: number; testCoverage: number; criticalPath: number; dependencyCount: number; } /** * Impact Analyzer Service Implementation * Analyzes change impact using knowledge graph traversal */ export declare class ImpactAnalyzerService implements IImpactAnalyzerService { private readonly memory; private readonly config; private readonly knowledgeGraph; constructor(memory: MemoryBackend, knowledgeGraph?: IKnowledgeGraphService, config?: Partial); /** * Analyze impact of changed files */ analyzeImpact(request: ImpactRequest): Promise>; /** * Get impacted tests for changed files */ getImpactedTests(changedFiles: string[]): Promise>; /** * Calculate risk level for the impact analysis */ calculateRiskLevel(impact: ImpactAnalysis): Severity; /** * Get recommendations based on impact analysis */ getRecommendations(impact: ImpactAnalysis): string[]; private analyzeDirectImpact; private analyzeTransitiveImpact; private calculateFileRiskScore; private calculateAverageRiskScore; private countCriticalFiles; private isTestFile; private isCriticalPath; private isEntryPoint; private getBaseName; private getFileName; private deduplicateImpact; private storeAnalysis; } //# sourceMappingURL=impact-analyzer.d.ts.map