/**
 * Base prompt templates for AI-generated audit narrative sections.
 *
 * Every prompt is deterministic: given the same event list and audience,
 * the same template text is produced. The template hash (SHA-256 of the
 * rendered prompt text) is stored in AiProvenance.promptTemplateHash and
 * sealed into the audit chain.
 *
 * Prompt structure enforces citation discipline: the model is explicitly
 * told which event IDs are in scope and is instructed to never reference
 * any event that does not appear in the provided list. Post-generation
 * validation catches violations and throws UncitedClaimError.
 *
 * Spec: P4-AIR-01 AC 3 (citation enforcement)
 *
 * @connexum/ai-governance
 */
import type { AuditChainEvent } from '../../narrative-types.js';
export declare const PROMPT_TEMPLATE_IDS: {
    readonly AGENT_TOOL_USE: "tpl-agent-tool-use-v1";
    readonly APPROVAL_DECISION: "tpl-approval-decision-v1";
    readonly POLICY_VIOLATION: "tpl-policy-violation-v1";
    readonly ENFORCEMENT_EVENT: "tpl-enforcement-event-v1";
};
export type PromptTemplateId = (typeof PROMPT_TEMPLATE_IDS)[keyof typeof PROMPT_TEMPLATE_IDS];
/**
 * Prompt template: agent tool-use section.
 * Template ID: tpl-agent-tool-use-v1
 */
export declare function buildAgentToolUsePrompt(params: {
    framework: string;
    audience: string;
    events: AuditChainEvent[];
    windowStart: string;
    windowEnd: string;
}): {
    system: string;
    user: string;
    templateId: PromptTemplateId;
};
/**
 * Prompt template: approval decision section.
 * Template ID: tpl-approval-decision-v1
 */
export declare function buildApprovalDecisionPrompt(params: {
    framework: string;
    audience: string;
    events: AuditChainEvent[];
    windowStart: string;
    windowEnd: string;
}): {
    system: string;
    user: string;
    templateId: PromptTemplateId;
};
/**
 * Prompt template: policy violation section.
 * Template ID: tpl-policy-violation-v1
 */
export declare function buildPolicyViolationPrompt(params: {
    framework: string;
    audience: string;
    events: AuditChainEvent[];
    windowStart: string;
    windowEnd: string;
}): {
    system: string;
    user: string;
    templateId: PromptTemplateId;
};
/**
 * Prompt template: enforcement event section.
 * Template ID: tpl-enforcement-event-v1
 */
export declare function buildEnforcementEventPrompt(params: {
    framework: string;
    audience: string;
    events: AuditChainEvent[];
    windowStart: string;
    windowEnd: string;
}): {
    system: string;
    user: string;
    templateId: PromptTemplateId;
};
/**
 * Return the static template text for a given template ID.
 * Used to compute promptTemplateHash without event data.
 *
 * Only the structural, non-data parts of the prompt are hashed so the
 * hash is stable across different event sets for the same template.
 */
export declare function getTemplateStaticText(templateId: PromptTemplateId): string;
//# sourceMappingURL=base.d.ts.map