/** * Code Quality Service * * Analyzes code quality, complexity, duplicates, and suggests refactorings */ import type { QualityAnalysisResult, ComplexityAnalysisResult, DuplicationAnalysisResult, RefactoringAnalysisResult, QualityAnalysisOptions } from "../types/code-quality.js"; /** * Service for analyzing code quality, complexity, and detecting code smells. * * Calculates cyclomatic and cognitive complexity, finds code duplicates, * detects code smells, and generates refactoring suggestions. */ export declare class CodeQualityService { private projectRoot; private thresholds; /** Directories to exclude */ private static readonly EXCLUDE_DIRS; constructor(projectRoot: string); /** * Comprehensive quality analysis */ analyzeQuality(options?: QualityAnalysisOptions): Promise; /** * Analyze complexity */ analyzeComplexity(options?: QualityAnalysisOptions): Promise; /** * Find duplicate code */ findDuplicates(options?: QualityAnalysisOptions): Promise; /** * Suggest refactorings */ suggestRefactorings(options?: QualityAnalysisOptions): Promise; /** * Analyze a single file */ private analyzeFile; /** * Extract function complexity metrics */ private extractFunctionComplexity; /** * Extract class metrics */ private extractClassMetrics; /** * Detect code smells */ private detectSmells; /** * Find duplicate code blocks */ private findDuplicateBlocks; /** * Convert smell to refactoring suggestion */ private smellToRefactoring; /** * Calculate cyclomatic complexity */ private calculateCyclomaticComplexity; /** * Calculate cognitive complexity */ private calculateCognitiveComplexity; /** * Calculate maximum nesting depth */ private calculateMaxNesting; /** * Count parameters in function signature */ private countParameters; /** * Count return statements */ private countReturns; /** * Count class methods */ private countClassMethods; /** * Count class properties */ private countClassProperties; /** * Extract method complexities from class */ private extractMethodComplexities; /** * Extract content within braces */ private extractBraceContent; /** * Find function end line */ private findFunctionEnd; /** * Find class end line */ private findClassEnd; /** * Count lines (code, comments, blanks) */ private countLines; /** * Get line number from index */ private getLineNumber; /** * Deduplicate functions */ private deduplicateFunctions; /** * Get source files */ private getSourceFiles; /** * Walk directory */ private walkDirectory; /** * Check if file is source */ private isSourceFile; /** * Empty file metrics */ private emptyFileMetrics; /** * Filter smells by severity */ private filterBySeverity; /** * Count smells by type */ private countByType; /** * Count smells by severity */ private countBySeverity; /** * Calculate overall score using density-based approach * * Uses issues per 1000 lines of code (KLOC) to fairly score * codebases of different sizes. Weights severity appropriately * and uses a gradual curve that doesn't bottom out quickly. */ private calculateOverallScore; /** * Calculate file score */ private calculateFileScore; /** * Convert score to grade */ private scoreToGrade; /** * Convert complexity to rating */ private complexityToRating; /** * Convert complexity to priority */ private complexityToPriority; /** * Convert severity to priority */ private severityToPriority; /** * Get refactoring effort */ private getRefactoringEffort; /** * Generate quality summary */ private generateQualitySummary; /** * Generate complexity summary */ private generateComplexitySummary; /** * Generate duplication summary */ private generateDuplicationSummary; /** * Generate refactoring summary */ private generateRefactoringSummary; } //# sourceMappingURL=code-quality-service.d.ts.map