import { z } from 'zod'; import type { EffectReceipt, EffectReceiptExecutionSupport } from './effectModel.ts'; export declare const EffectReceiptIssueCodes: readonly ["effect.append-prefix-mismatch", "effect.evidence-mismatch", "effect.first-stage-invalid", "effect.id-mismatch", "effect.inclusion-invalid", "effect.invalid", "effect.policy-invalid", "effect.sequence-invalid", "effect.stage-inapplicable", "effect.stage-order-invalid", "effect.terminal", "effect.timestamp-regression"]; export declare const EffectReceiptIssueCodeZod: z.ZodEnum<{ "effect.append-prefix-mismatch": "effect.append-prefix-mismatch"; "effect.evidence-mismatch": "effect.evidence-mismatch"; "effect.first-stage-invalid": "effect.first-stage-invalid"; "effect.id-mismatch": "effect.id-mismatch"; "effect.inclusion-invalid": "effect.inclusion-invalid"; "effect.invalid": "effect.invalid"; "effect.policy-invalid": "effect.policy-invalid"; "effect.sequence-invalid": "effect.sequence-invalid"; "effect.stage-inapplicable": "effect.stage-inapplicable"; "effect.stage-order-invalid": "effect.stage-order-invalid"; "effect.terminal": "effect.terminal"; "effect.timestamp-regression": "effect.timestamp-regression"; }>; export type EffectReceiptIssueCode = z.infer; export interface EffectReceiptIssue { code: EffectReceiptIssueCode; message: string; path: (number | string)[]; } export interface EffectReceiptValidationFailure { issues: EffectReceiptIssue[]; success: false; } export interface EffectReceiptValidationSuccess { success: true; value: EffectReceipt; } export type EffectReceiptValidationResult = EffectReceiptValidationFailure | EffectReceiptValidationSuccess; export declare function normalizeEffectReceipt(receipt: EffectReceipt): EffectReceipt; export declare function validateEffectReceipt(value: unknown): EffectReceiptValidationResult; export declare function validateEffectReceiptAppend(previousValue: unknown, currentValue: unknown): EffectReceiptValidationResult; export interface EffectReceiptSummary { abandoned: boolean; complete: boolean; contentAvailability: 'available' | 'not-applicable' | 'unavailable' | 'unknown'; finalized: boolean; } /** V1 has no qualified replacement-eligibility proof. Preserve its history and gate execution separately. */ export declare function assessEffectReceiptExecutionSupport(receipt: EffectReceipt): EffectReceiptExecutionSupport; export declare function summarizeEffectReceipt(receipt: EffectReceipt): EffectReceiptSummary; //# sourceMappingURL=effectValidation.d.ts.map