/** * Agentic QE v3 - Code Metrics Analyzer * Real code analysis for complexity, maintainability, and quality metrics */ import { FunctionInfo, MethodInfo } from '../parsers'; export interface FileMetrics { path: string; linesOfCode: number; linesOfComments: number; blankLines: number; cyclomaticComplexity: number; cognitiveComplexity: number; maintainabilityIndex: number; halsteadMetrics: HalsteadMetrics; functionCount: number; classCount: number; maxNestingDepth: number; } export interface HalsteadMetrics { vocabulary: number; length: number; volume: number; difficulty: number; effort: number; } export interface FunctionMetrics { name: string; startLine: number; endLine: number; cyclomaticComplexity: number; cognitiveComplexity: number; parameterCount: number; linesOfCode: number; } export interface DuplicationResult { percentage: number; duplicates: DuplicateBlock[]; } export interface DuplicateBlock { lines: number; occurrences: number; locations: Array<{ file: string; startLine: number; endLine: number; }>; } export declare class CodeMetricsAnalyzer { private readonly parser; private readonly fileReader; constructor(); /** * Analyze a single file for all metrics */ analyzeFile(filePath: string): Promise; /** * Analyze function-level metrics */ analyzeFunctionComplexity(content: string, func: FunctionInfo | MethodInfo): FunctionMetrics; /** * Detect code duplication across files */ detectDuplication(files: string[], minLines?: number): Promise; private countLines; private calculateCyclomaticComplexity; private calculateCognitiveComplexity; private estimateCyclomaticComplexity; private estimateCognitiveComplexity; private calculateNestingDepth; private calculateHalsteadMetrics; private calculateMaintainabilityIndex; private hashString; } export declare function getCodeMetricsAnalyzer(): CodeMetricsAnalyzer; //# sourceMappingURL=code-metrics.d.ts.map