export declare const RECEIPT_SPEC: "noa.receipt/0.1";
export type RiskClass = "LOW" | "MEDIUM" | "HIGH" | "CRITICAL" | "IRREVERSIBLE";
export type Principal = "HUMAN" | "SERVICE" | "POLICY" | "SANDBOX_SIM";
export type GovernanceMode = "off" | "shadow" | "approvals_on" | "on";
export type Verdict = "ALLOWED" | "BLOCKED" | "DEFERRED" | "EXECUTED" | "FAILED" | "ROLLED_BACK" | "SIMULATED";
export type ParamsHash = string;
export interface ReceiptScope {
    tenant?: string;
    chain: string;
}
export interface ReceiptAgent {
    id: string;
    model?: string | null;
    principal: Principal;
}
export interface ReceiptApproval {
    by: string;
    at: string;
}
export interface ReceiptAction {
    id: string;
    canonical: string;
    riskClass: RiskClass;
    paramsHash: ParamsHash;
    reversible: boolean;
    rollbackRef?: string | null;
}
export interface ReceiptCompliance {
    policyHash: string;
    readSetHash: string;
    inputsHash: string;
    verdict?: "ALLOW" | "DENY";
}
export interface ReceiptGovernance {
    mode: GovernanceMode;
    verdict: Verdict;
    ruleId?: string | null;
    approval?: ReceiptApproval | null;
    sandboxed: boolean;
    compliance?: ReceiptCompliance | null;
}
export interface ReceiptChain {
    seq: number;
    prevHash: string | null;
    hash: string;
}
export interface ReceiptSig {
    alg: "ed25519";
    kid: string;
    value: string;
}
export interface Receipt {
    spec: typeof RECEIPT_SPEC;
    id: string;
    ts: string;
    scope: ReceiptScope;
    agent: ReceiptAgent;
    action: ReceiptAction;
    governance: ReceiptGovernance;
    chain: ReceiptChain;
    sig: ReceiptSig;
}
export interface Checkpoint {
    spec: "noa.checkpoint/0.1";
    chain: string;
    highestSeq: number;
    headHash: string;
    ts: string;
    sig: ReceiptSig;
}
