import type * as z from "zod"; import { type UdlAnyFamily } from "./schema.js"; /** * How this engine reads one UDL format. A Build is bytecode and keeps the * format it compiled to. The current format parses straight into the engine's * document; an older one parses with its own schema, then `upgrade`, a pure * and deterministic step, turns it into the next format. */ export interface UdlFormatReader { readonly schema: z.ZodType; readonly upgrade?: (document: unknown) => unknown; } /** * One reader per format a stored Build uses, keyed by `document.udl`. A format * bump adds its schema here and gives the previous format an upgrade step. A * new Build admits only `UDL_FORMAT_VERSION` (`validateNewBuildUdl`). */ export declare const udlFormatReaders: Map; /** * Whether two families name the same std declaration. Two format 2 families * compare digests. When either is format 1, module and export path decide, * which is what a stored revision decided: every stored revision is 1. */ export declare function sameFamily(a: UdlAnyFamily | undefined, b: UdlAnyFamily): boolean; /** The format a stored document declares, when this engine can read it. */ export declare function readableUdlFormat(document: unknown): number | undefined; //# sourceMappingURL=formats.d.ts.map