import type { ApprovalProposalSnapshot } from './ledger.js'; export interface ApprovalSettlementExpectation { proposalId: string; requester: string; principal: string; action: string; resource: Readonly<{ kind: string; id: string; }>; summary: string; diff: string; expiresAt: number; expectedVersion: number; } export type ApprovalSettlementConflictReason = 'action-mismatch' | 'decision-actor-mismatch' | 'diff-mismatch' | 'expiry-mismatch' | 'invalid-expectation' | 'missing-proposal' | 'not-terminal' | 'principal-mismatch' | 'proposal-id-mismatch' | 'requester-mismatch' | 'resource-mismatch' | 'summary-mismatch' | 'version-mismatch'; export type ValidatedApprovalSettlement = ApprovalProposalSnapshot & { status: 'approved' | 'expired' | 'rejected'; }; export declare class ApprovalSettlementConflict extends Error { readonly reason: ApprovalSettlementConflictReason; readonly code: "approval-settlement-conflict"; constructor(reason: ApprovalSettlementConflictReason); } /** * Validate a terminal Policy snapshot against the immutable operation owned by * a domain before that domain commits its pending mutation. */ export declare function validateApprovalSettlement(snapshot: ApprovalProposalSnapshot | undefined, expectation: Readonly): ValidatedApprovalSettlement; //# sourceMappingURL=settlement.d.ts.map