/**
 * Aggregates per-turn compliance (`conversation_turn` / legacy aliases) into
 * the Inspector scorecard JSON. Single source for GET /admin/compliance/scorecard.
 */
export interface ComplianceScorecardParams {
    since?: string;
    until?: string;
    group_by?: string;
    min_turns?: number;
    min_backfill_rate?: number;
    top_missed_steps?: number;
    include_synthetic?: boolean;
    /** Reference instant for relative windows (tests inject). */
    ref_ms?: number;
}
export interface ComplianceCell {
    model: string;
    harness: string;
    profile: string;
    total_turns: number;
    backfilled_turns: number;
    backfill_rate: number;
    estimated_turns: number;
    estimated: boolean;
    daily_total: Record<string, number>;
    daily_backfill_rate: Record<string, number>;
    top_missed_steps: Array<{
        step: string;
        count: number;
    }>;
}
export interface ComplianceScorecard {
    generated_at: string;
    window: {
        since: string | null;
        until: string | null;
    };
    group_by: string;
    cells: ComplianceCell[];
    summary: {
        total_turns: number;
        backfilled_turns: number;
        backfill_rate: number;
        estimated_turns: number;
        cell_count: number;
        top_missed_steps: Array<{
            step: string;
            count: number;
        }>;
    };
    estimated: boolean;
}
export declare function resolveScorecardWindow(sinceRaw: string | undefined, untilRaw: string | undefined, refMs: number): {
    sinceIso: string;
    untilIso: string;
    sinceLabel: string | null;
    untilLabel: string | null;
};
export declare function buildComplianceScorecard(userId: string, params?: ComplianceScorecardParams): ComplianceScorecard;
//# sourceMappingURL=scorecard.d.ts.map