import { type FactoryDefinition, type FactoryEvent } from "./contracts.js"; export declare const FACTORY_RECORDING_SCHEMA_VERSION: "factory-recording/v1"; export interface FactoryRecording { schemaVersion: typeof FACTORY_RECORDING_SCHEMA_VERSION; id: string; title: string; summary?: string; factory?: FactoryDefinition; events: FactoryEvent[]; } export type RecordingValidationIssueCode = "invalid_type" | "invalid_value" | "missing_required_field" | "unsupported_field" | "unsupported_recording_schema_version" | "unsupported_event_type" | "unsupported_event_schema_version" | "duplicate_event_id" | "mixed_factory_session_identity" | "missing_topology_bootstrap"; export interface RecordingValidationIssue { category: "structure" | "semantic"; code: RecordingValidationIssueCode; path: readonly (string | number)[]; message: string; } export type SafeParseFactoryRecordingResult = { success: true; data: FactoryRecording; } | { success: false; issues: readonly RecordingValidationIssue[]; }; export declare class FactoryRecordingValidationError extends Error { readonly issues: readonly RecordingValidationIssue[]; constructor(issues: readonly RecordingValidationIssue[]); } /** Validate the shared canonical event envelope without applying recording-wide rules. */ export declare function validateFactoryEventEnvelope(input: unknown, path?: readonly (string | number)[]): RecordingValidationIssue[]; /** Validate the generated Factory event schema version for any input source. */ export declare function validateFactoryEventSchemaVersion(input: unknown, path?: readonly (string | number)[]): RecordingValidationIssue[]; export declare function safeParseFactoryRecording(input: unknown): SafeParseFactoryRecordingResult; export declare function parseFactoryRecording(input: unknown): FactoryRecording;