/**
 * Updated individual metric calculation functions for component scoring
 * Focus on "easily overlooked" issues that developers miss
 * Each function returns a score from 0-100 where higher = more problematic
 */
import { ComponentRelation, DependencyAnalysisDetailedResult, ErrorHandlingCompleteAnalysis, ComplexityAnalysisResult, TypeAnalysisResult, SEOAnalysisResult, TranslationAnalysisResult, ComponentSimilarity } from "../../types";
import { ComponentFlowAnalysisResult } from "../componentFlow/types";
import { GeneralAnalysisResult } from "../general/types/generalAnalyzer.types";
export interface MetricCalculationContext {
    component: ComponentRelation;
    allComponents: ComponentRelation[];
    generalAnalysis?: GeneralAnalysisResult;
    dependencyAnalysis?: DependencyAnalysisDetailedResult;
    errorHandlingAnalysis?: ErrorHandlingCompleteAnalysis;
    complexityAnalysis?: ComplexityAnalysisResult;
    typeAnalysis?: TypeAnalysisResult;
    seoAnalysis?: SEOAnalysisResult;
    translationAnalysis?: TranslationAnalysisResult;
    componentFlowAnalysis?: ComponentFlowAnalysisResult;
    deduplicationAnalysis?: ComponentSimilarity[];
}
/**
 * Calculate circular dependency score
 * Returns 100 if component is in circular dependency, 0 otherwise
 */
export declare function calculateCircularDependencyScore(context: MetricCalculationContext): number;
/**
 * Calculate error handling gaps score - ENHANCED
 * Higher score for components with risky operations but no error handling
 */
export declare function calculateErrorHandlingScore(context: MetricCalculationContext): number;
/**
 * Calculate complexity score based on cyclomatic and cognitive complexity
 */
export declare function calculateComplexityScore(context: MetricCalculationContext): number;
/**
 * Calculate maintainability index score (inverted - lower maintainability = higher score)
 */
export declare function calculateMaintainabilityScore(context: MetricCalculationContext): number;
/**
 * Calculate coupling degree score
 */
export declare function calculateCouplingScore(context: MetricCalculationContext): number;
/**
 * Calculate type issues score - ENHANCED
 * Focus on critical type safety gaps that developers miss
 */
export declare function calculateTypeIssuesScore(context: MetricCalculationContext): number;
/**
 * NEW: Calculate accessibility issues score
 * Focus on missing accessibility features that developers often forget
 */
export declare function calculateAccessibilityScore(context: MetricCalculationContext): number;
/**
 * NEW: Calculate performance issues score
 * Focus on bundle optimization and loading performance
 */
export declare function calculatePerformanceScore(context: MetricCalculationContext): number;
/**
 * Enhanced SEO scoring that doesn't penalize simple pages
 */
export declare function calculateSEOScore(context: MetricCalculationContext): number;
/**
 * Calculate zombie code score
 */
export declare function calculateZombieCodeScore(context: MetricCalculationContext): number;
/**
 * Calculate translation issues score
 */
export declare function calculateTranslationScore(context: MetricCalculationContext): number;
/**
 * Calculate magic numbers score - REDUCED SENSITIVITY
 * Less aggressive since magic numbers are often obvious to developers
 */
export declare function calculateMagicNumbersScore(context: MetricCalculationContext): number;
/**
 * Calculate code metrics score (line metrics, comment ratio) - REDUCED IMPORTANCE
 */
export declare function calculateCodeMetricsScore(context: MetricCalculationContext): number;
/**
 * Calculate deduplication opportunities score
 */
export declare function calculateDeduplicationScore(context: MetricCalculationContext): number;
/**
 * Calculate component flow complexity score
 */
export declare function calculateComponentFlowScore(context: MetricCalculationContext): number;
/**
 * NEW: Calculate React-specific complexity patterns that make components problematic
 */
export declare function calculateReactComplexityScore(context: MetricCalculationContext): number;
/**
 * NEW: Calculate container component penalty
 * Container components should be simple - if they're complex, they're problematic
 */
export declare function calculateContainerComplexityScore(context: MetricCalculationContext): number;
