export type LetterGrade = "A+" | "A" | "A-" | "B+" | "B" | "B-" | "C+" | "C" | "C-" | "D+" | "D" | "D-" | "F"; export interface GradeResult { readonly grade: LetterGrade; readonly score: number; readonly label: string; readonly color: string; } export interface SectionGrades { readonly accessibility: GradeResult; readonly performance: GradeResult; readonly bestPractices: GradeResult; readonly seo: GradeResult; readonly codeQuality: GradeResult; } /** * Convert a 0-100 numeric score to a letter grade result. */ export declare function scoreToGrade(score: number): GradeResult; /** * Compute accessibility grade from violations and Lighthouse score. * * Strategy: if Lighthouse a11y score is available, use it directly. * Otherwise, compute from violation count vs passes ratio. */ export declare function computeAccessibilityGrade(params: { readonly lighthouseScore: number | null; readonly violationCount: number; readonly passCount: number; }): GradeResult; /** * Compute performance grade from Lighthouse score and Core Web Vitals. * * Strategy: if Lighthouse performance score is available, use it. * Otherwise, compute from Core Web Vitals thresholds. */ export declare function computePerformanceGrade(params: { readonly lighthouseScore: number | null; readonly fcp: number | null; readonly lcp: number | null; readonly cls: number | null; readonly tbt: number | null; }): GradeResult; /** * Compute code quality grade from findings count, severity, and file count. * * Strategy: starts at 100, penalizes based on findings relative to file count. * Critical findings penalize 10 points, high 5, medium 2, low 1. */ export declare function computeCodeQualityGrade(params: { readonly totalFiles: number; readonly findings: { readonly critical: number; readonly high: number; readonly medium: number; readonly low: number; }; }): GradeResult; /** * Compute all section grades from review data. */ export declare function computeSectionGrades(params: { readonly lighthouseScores: { readonly performance: number | null; readonly accessibility: number | null; readonly bestPractices: number | null; readonly seo: number | null; } | null; readonly accessibilityViolations: number; readonly accessibilityPasses: number; readonly performanceMetrics: { readonly fcp: number | null; readonly lcp: number | null; readonly cls: number | null; readonly tbt: number | null; }; readonly codeFindings: { readonly critical: number; readonly high: number; readonly medium: number; readonly low: number; }; readonly totalFiles: number; }): SectionGrades; /** * Format a grade result as a compact string: "B+ (83)" */ export declare function formatGradeCompact(grade: GradeResult): string; /** * Format a grade transition: "D → B+ (+22)" */ export declare function formatGradeTransition(previous: GradeResult, current: GradeResult): string; //# sourceMappingURL=grading.d.ts.map