/**
 * P4-AIR-02: Per-Framework Report Templates -- barrel export
 *
 * Eight shipping templates covering SOC 2, HIPAA (breach + security),
 * EU AI Act Annex IV, DORA ICT major incident, PCI DSS, GDPR, and
 * ISO 42001.
 *
 * Each template implements the ReportTemplate interface and is registered
 * in a compile-time map keyed by templateId.
 *
 * Spec: P4-AIR-02 AC 4-6
 *
 * @connexum/ai-governance
 */
export interface TemplateSectionSpec {
    /** Stable section identifier within this template */
    id: string;
    /** Human-readable section title for the rendered report */
    title: string;
    /**
     * LLM prompt template (> 200 chars) that the AuditNarrativeGenerator
     * fills with audit-chain context. Must instruct the model NOT to make
     * unbacked claims and to cite event IDs from the provided list only.
     */
    promptTemplate: string;
    /**
     * 'required' -- UncitedClaimError fires on any AI-generated claim without
     * a cited chain event. 'optional' -- citations are encouraged but the
     * rendered section is accepted without them (for procedural/statutory text).
     */
    citationRequirement: 'required' | 'optional';
}
/**
 * ReportTemplate -- the shape every framework template must satisfy.
 *
 * Exported as part of @connexum/ai-governance/reporting (AC 24).
 */
export interface ReportTemplate {
    /** Stable template ID. Naming convention: tpl-<framework>-<variant>-v<n> */
    templateId: string;
    /** Human-readable report name */
    name: string;
    /** Pack ID this template is scoped to (matches CompliancePack.id) */
    framework: string;
    /**
     * Audit event types that must have at least one occurrence in the
     * reporting window. validateEvidence() throws MissingEvidenceError
     * if any type has zero occurrences.
     */
    requiredAuditEventTypes: string[];
    /** Five to ten sections, each driven by an LLM prompt template */
    sections: TemplateSectionSpec[];
    /** Canonical artefact output format */
    artefactFormat: 'pdf' | 'html' | 'both';
    /**
     * When true, the rendered report must carry a legal-review watermark
     * and the API response sets legalReviewPending: true until a legal
     * reviewer approves it.
     */
    legalReviewRequired: boolean;
}
export { type FrameworkPromptSection, type FrameworkPromptSpec, HIPAA_PROMPT_SPEC, HITECH_PROMPT_SPEC, SOC2_PROMPT_SPEC, ISO27001_PROMPT_SPEC, EU_AI_ACT_PROMPT_SPEC, DORA_PROMPT_SPEC, PCI_DSS_PROMPT_SPEC, GDPR_PROMPT_SPEC, FRAMEWORK_PROMPT_REGISTRY, } from './prompts/index.js';
export { SOC2_TYPE_II_TEMPLATE } from './soc2-type-ii.js';
export { HIPAA_BREACH_NOTIFICATION_TEMPLATE } from './hipaa-breach-notification.js';
export { HIPAA_SECURITY_INCIDENT_TEMPLATE } from './hipaa-security-incident.js';
export { EU_AI_ACT_ANNEX_IV_TEMPLATE } from './eu-ai-act-annex-iv.js';
export { DORA_ICT_MAJOR_INCIDENT_TEMPLATE } from './dora-ict-major-incident.js';
export { PCI_DSS_ANNUAL_ATTESTATION_TEMPLATE } from './pci-dss-annual-attestation.js';
export { GDPR_DATA_SUBJECT_RIGHTS_TEMPLATE } from './gdpr-data-subject-rights.js';
export { ISO_42001_AMS_TEMPLATE } from './iso-42001-ams.js';
import type { AuditChainEvent } from '../narrative-types.js';
export declare const REPORT_TEMPLATE_REGISTRY: ReadonlyMap<string, ReportTemplate>;
/**
 * Verify that every required audit event type for a template has at least
 * one occurrence in the supplied event set.
 *
 * Throws MissingEvidenceError (fail-closed) before any LLM call is made.
 * Callers should invoke this immediately after loading events from the
 * audit chain and before passing events to AuditNarrativeGenerator.
 *
 * @param templateId - Identifies the template whose requirements to check
 * @param events     - Events retrieved from the audit chain for the window
 * @throws MissingEvidenceError if any required type has zero occurrences
 */
export declare function validateEvidence(templateId: string, events: AuditChainEvent[]): void;
//# sourceMappingURL=index.d.ts.map