/**
 * Code Quality Scorer
 *
 * Analyzes code quality and provides scores:
 * - Complexity metrics
 * - Code smells detection
 * - Best practices compliance
 * - Maintainability index
 */
export interface QualityMetrics {
    /** Cyclomatic complexity score */
    complexity: number;
    /** Lines of code */
    linesOfCode: number;
    /** Source lines of code (excluding comments/blanks) */
    sourceLinesOfCode: number;
    /** Comment ratio (0-100) */
    commentRatio: number;
    /** Average function length */
    avgFunctionLength: number;
    /** Max function length */
    maxFunctionLength: number;
    /** Number of functions */
    functionCount: number;
    /** Nesting depth max */
    maxNestingDepth: number;
    /** Magic numbers count */
    magicNumbers: number;
    /** Long lines count (>120 chars) */
    longLines: number;
    /** TODO/FIXME count */
    todoCount: number;
    /** Duplicate code estimate */
    duplicateRatio: number;
}
export interface CodeSmell {
    type: string;
    severity: 'low' | 'medium' | 'high';
    message: string;
    line?: number;
    suggestion?: string;
}
export interface QualityScore {
    /** Overall score (0-100) */
    overall: number;
    /** Complexity score (0-100) */
    complexity: number;
    /** Maintainability score (0-100) */
    maintainability: number;
    /** Readability score (0-100) */
    readability: number;
    /** Best practices score (0-100) */
    bestPractices: number;
    /** Letter grade */
    grade: 'A' | 'B' | 'C' | 'D' | 'F';
}
export interface QualityReport {
    filePath: string;
    language: string;
    metrics: QualityMetrics;
    score: QualityScore;
    smells: CodeSmell[];
    suggestions: string[];
}
/**
 * Analyze code quality for a file
 */
export declare function analyzeCodeQuality(filePath: string): Promise<QualityReport>;
/**
 * Analyze code quality for a string
 */
export declare function analyzeCodeQualityString(content: string, language?: string): Omit<QualityReport, 'filePath'>;
/**
 * Format quality report for display
 */
export declare function formatQualityReport(report: QualityReport): string;
export default analyzeCodeQuality;
