/**
 * Compliance scoring — computes per-framework pass rates from audit categories.
 * A compliance "control" passes when ALL checks mapped to it pass.
 * Pass rate = (passed controls / total mapped controls) * 100.
 */
import type { AuditCategory, AuditResult } from "../types.js";
import { type FrameworkKey } from "./mapper.js";
import type { ComplianceDetailScore, ProfileName } from "./types.js";
export interface ComplianceScore {
    framework: FrameworkKey;
    version: string;
    passRate: number;
    totalControls: number;
    passedControls: number;
    partiallyPassed: number;
    partialCount: number;
}
/**
 * Calculate per-framework compliance pass rates from compliance-enriched categories.
 *
 * Algorithm:
 * 1. Collect all unique (framework, controlId) pairs from check complianceRefs
 * 2. Group checks by (framework, controlId)
 * 3. A control passes if ALL its mapped checks pass
 * 4. Pass rate = passedControls / totalControls * 100
 *
 * Returns one ComplianceScore per framework found in the data.
 */
export declare function calculateComplianceScores(categories: AuditCategory[]): ComplianceScore[];
/**
 * Calculate per-framework compliance detail scores with per-control check lists.
 * Same algorithm as calculateComplianceScores but includes full control breakdown.
 */
export declare function calculateComplianceDetail(categories: AuditCategory[]): ComplianceDetailScore[];
/**
 * Filter an AuditResult to only show checks mapped to a compliance profile.
 * Does NOT change overallScore — profile only filters the display/categories view.
 */
export declare function filterByProfile(result: AuditResult, profileName: ProfileName): AuditResult;
//# sourceMappingURL=scoring.d.ts.map