import { Node } from 'estree'; import { ComplexityMetrics, FileAnalysis, FunctionAnalysis } from '../types/analysis'; export interface ComplexityAnalyzerOptions { includeHalstead: boolean; includeNesting: boolean; includeCognitive: boolean; maxDepth: number; functionThreshold: number; classThreshold: number; } export declare class ComplexityAnalyzer { private logger; analyzeFile(file: FileAnalysis, options: ComplexityAnalyzerOptions): ComplexityMetrics; analyzeFunctionComplexity(func: FunctionAnalysis, options: ComplexityAnalyzerOptions): ComplexityMetrics; calculateComplexity(node: Node, options: ComplexityAnalyzerOptions): ComplexityMetrics; private walkAndAnalyze; private analyzeNode; private exitNode; private enterNestingLevel; private exitNestingLevel; private isLogicalStatement; private recordOperator; private recordOperand; private calculateHalsteadMetrics; private getEmptyHalstead; private calculateMaintainabilityIndex; analyzeComplexityTrends(files: FileAnalysis[]): ComplexityTrend; private identifyComplexityIssues; generateComplexityReport(files: FileAnalysis[]): ComplexityReport; private generateRecommendations; private generateComplexitySummary; private calculateComplexityHealthScore; } interface ComplexityTrend { totalFiles: number; averageComplexity: number; maxComplexity: number; minComplexity: number; distribution: { high: number; medium: number; low: number; }; hotspots: Array<{ file: string; complexity: number; maintainabilityIndex: number; issues: ComplexityIssue[]; }>; } interface ComplexityIssue { type: string; severity: 'low' | 'medium' | 'high'; value: number; threshold: number; suggestion: string; } interface ComplexityReport { overview: { totalFiles: number; averageComplexity: number; maxComplexity: number; distribution: { high: number; medium: number; low: number; }; }; hotspots: Array<{ file: string; complexity: number; maintainabilityIndex: number; issues: ComplexityIssue[]; }>; recommendations: ComplexityRecommendation[]; summary: string; } interface ComplexityRecommendation { type: string; priority: 'low' | 'medium' | 'high'; title: string; description: string; action: string; impact: string; } export {}; //# sourceMappingURL=complexity-analyzer.d.ts.map