/** * Impact Analyzer Service * * Analyzes code dependencies and impact of changes */ import type { DependencyGraph, ChangeImpactResult, BreakingChange, ImpactAnalysisOptions } from "../types/change-impact.js"; export declare class ImpactAnalyzer { private projectRoot; private graph; private readonly CACHE_DURATION; constructor(projectRoot: string); /** * Build or refresh the dependency graph */ buildGraph(forceRebuild?: boolean): Promise; /** * Analyze impact of changing specific files */ analyzeImpact(targetFiles: string[], options?: ImpactAnalysisOptions): Promise; /** * Detect breaking changes between old and new versions */ detectBreakingChanges(file: string, oldContent: string, newContent: string): Promise; /** * Find all files that import a specific symbol from a file */ private findFilesImporting; /** * Parse a file to extract imports and exports */ private parseFile; /** * Parse import statements from file content */ private parseImports; /** * Parse export statements from file content */ private parseExports; /** * Find all TypeScript/JavaScript source files */ private findSourceFiles; /** * Resolve import path relative to importing file */ private resolveImportPath; /** * Normalize file path to be relative to project root */ private normalizePath; /** * Calculate impact level based on affected files count */ private calculateImpactLevel; /** * Generate suggestions based on impact analysis */ private generateSuggestions; /** * Check if file should be excluded */ private shouldExclude; /** * Get graph statistics */ getGraphStats(): { fileCount: number; totalImports: number; totalExports: number; lastBuilt: Date | null; }; } //# sourceMappingURL=impact-analyzer.d.ts.map