import { z } from 'zod'; import type { ProjectionGeneration, ProjectionHead, ProjectionPosition, ProjectionPublicationTrace, ProjectionReducerTrace } from './projection.ts'; export declare const ProjectionTraceIssueCodes: readonly ["projection.checkpoint-before-head", "projection.checkpoint-mismatch", "projection.duplicate-state-change", "projection.duplicate-unknown", "projection.event-reapplied", "projection.final-state-mismatch", "projection.generation-hash-mismatch", "projection.head-before-verification", "projection.head-mismatch", "projection.interrupted-terminal", "projection.invalid", "projection.operation-duplicate", "projection.payload-hash-mismatch", "projection.position-order-invalid", "projection.rejected-state-change", "projection.verification-before-write"]; export declare const ProjectionTraceIssueCodeZod: z.ZodEnum<{ "projection.checkpoint-before-head": "projection.checkpoint-before-head"; "projection.checkpoint-mismatch": "projection.checkpoint-mismatch"; "projection.duplicate-state-change": "projection.duplicate-state-change"; "projection.duplicate-unknown": "projection.duplicate-unknown"; "projection.event-reapplied": "projection.event-reapplied"; "projection.final-state-mismatch": "projection.final-state-mismatch"; "projection.generation-hash-mismatch": "projection.generation-hash-mismatch"; "projection.head-before-verification": "projection.head-before-verification"; "projection.head-mismatch": "projection.head-mismatch"; "projection.interrupted-terminal": "projection.interrupted-terminal"; "projection.invalid": "projection.invalid"; "projection.operation-duplicate": "projection.operation-duplicate"; "projection.payload-hash-mismatch": "projection.payload-hash-mismatch"; "projection.position-order-invalid": "projection.position-order-invalid"; "projection.rejected-state-change": "projection.rejected-state-change"; "projection.verification-before-write": "projection.verification-before-write"; }>; export type ProjectionTraceIssueCode = z.infer; export interface ProjectionTraceIssue { code: ProjectionTraceIssueCode; message: string; path: (number | string)[]; } export interface ProjectionTraceValidationFailure { issues: ProjectionTraceIssue[]; success: false; } export interface ProjectionReducerTraceValidationSuccess { success: true; value: ProjectionReducerTrace; } export interface ProjectionPublicationTraceValidationSuccess { completion: 'checkpointed' | 'published' | 'unpublished'; success: true; value: ProjectionPublicationTrace; visibleHead?: ProjectionHead; } export type ProjectionReducerTraceValidationResult = ProjectionTraceValidationFailure | ProjectionReducerTraceValidationSuccess; export type ProjectionPublicationTraceValidationResult = ProjectionPublicationTraceValidationSuccess | ProjectionTraceValidationFailure; export declare function compareProjectionPositions(left: ProjectionPosition, right: ProjectionPosition): number; export declare function validateProjectionReducerTrace(value: unknown): ProjectionReducerTraceValidationResult; export declare function normalizeProjectionGeneration(generation: ProjectionGeneration): ProjectionGeneration; export declare function deriveProjectionGenerationHash(generation: ProjectionGeneration): string; export declare function validateProjectionPublicationTrace(value: unknown): ProjectionPublicationTraceValidationResult; //# sourceMappingURL=projectionValidation.d.ts.map