/**
 * Governance reporting — shared types.
 *
 * The framework collects a `GovernanceContext` (traces + outcomes +
 * dataset manifests + red-team results + judge calibration) and each
 * specific template (NIST AI RMF, SOC2, EU AI Act) renders a
 * structured report from it.
 *
 * Reports are machine-readable JSON first; human-readable Markdown is a
 * pure transform on top. External auditors consume the Markdown; CI
 * consumes the JSON.
 */
import type { DatasetManifest } from '../dataset';
import type { CalibrationResult } from '../judge-calibration';
import type { OutcomeStore } from '../meta-eval/outcome-store';
import type { RedTeamReport } from '../red-team';
import type { TraceStore } from '../trace/store';
export interface GovernanceContext {
    /** Legal / org identity for the report. */
    organization: string;
    /** System / agent identifier. */
    systemName: string;
    /** ISO8601 period the report covers. */
    periodStart: string;
    periodEnd: string;
    /** Versioned dataset manifests used during the period. */
    datasets: DatasetManifest[];
    traceStore: TraceStore;
    outcomeStore?: OutcomeStore;
    /** Cached red-team results for the period, if available. */
    redTeam?: RedTeamReport;
    /** Judge-vs-human calibration results, if measured. */
    judgeCalibration?: CalibrationResult[];
    /** Responsible owner for the system — role + name + email. */
    owner: {
        role: string;
        name: string;
        email: string;
    };
}
export interface GovernanceFinding {
    id: string;
    severity: 'info' | 'low' | 'medium' | 'high' | 'critical';
    /** Control reference the finding maps to (e.g. "NIST-AI-RMF:MEASURE-2.1"). */
    control: string;
    summary: string;
    evidence?: string;
    remediation?: string;
}
export interface GovernanceReport {
    framework: 'NIST-AI-RMF' | 'SOC2' | 'EU-AI-ACT';
    version: string;
    context: Pick<GovernanceContext, 'organization' | 'systemName' | 'periodStart' | 'periodEnd' | 'owner'>;
    summary: {
        findings: number;
        byeverity: Record<GovernanceFinding['severity'], number>;
        overall: 'compliant' | 'compliant-with-findings' | 'non-compliant';
    };
    findings: GovernanceFinding[];
    /** Framework-specific structured payload (mapped controls, risk class, etc.). */
    payload: Record<string, unknown>;
    generatedAt: string;
}
export declare function renderMarkdown(report: GovernanceReport): string;
export declare function summarize(findings: GovernanceFinding[]): GovernanceReport['summary'];
//# sourceMappingURL=types.d.ts.map