import type { Severity } from '../../shared/types'; export type ConfidenceLevel = 'high' | 'medium' | 'low'; export type ScoringDetectionType = 'layout_thrashing' | 'gpu_stall' | 'long_task' | 'heavy_paint' | 'forced_reflow'; export interface ScoringInput { detectionType: ScoringDetectionType; durationMs: number; occurrences: number; frameBudgetMs: number; traceDurationMs: number; affectedNodes?: number; correlatedFrameDrops?: number; layerCount?: number; stallType?: 'sync' | 'texture_upload' | 'raster'; } export interface ScoringResult { impactScore: number; severity: Severity; confidence: ConfidenceLevel; estimatedSpeedupPct: number; speedupExplanation: string; frameBudgetImpactPct: number; scoreBreakdown: ScoreBreakdown; riskAssessment: RiskAssessment; } export interface ScoreBreakdown { durationScore: number; frequencyScore: number; impactScore: number; typeModifier: number; weights: ScoringWeights; } export interface RiskAssessment { userExperienceImpact: 'critical' | 'significant' | 'moderate' | 'minimal'; regressionRisk: 'high' | 'medium' | 'low'; fixPriority: number; factors: string[]; } export interface ScoringWeights { duration: number; frequency: number; impact: number; } export interface SeverityThresholds { critical: number; high: number; warning: number; info: number; } export interface ScoringConfig { weights: ScoringWeights; severityThresholds: SeverityThresholds; maxSpeedupCap: number; highConfidenceThresholdMs: number; mediumConfidenceThresholdMs: number; } export declare class ScoringService { private config; constructor(); configure(config: Partial): void; calculateScore(input: ScoringInput): ScoringResult; private calculateDurationScore; private calculateFrequencyScore; private calculateImpactComponentScore; private mapScoreToSeverity; private calculateConfidence; private calculateSpeedupEstimate; private getRecommendedFixType; private generateSpeedupExplanation; private assessRisk; batchScore(inputs: ScoringInput[]): Array; getConfig(): ScoringConfig; getEfficiencyFactors(): Record; }