import { z } from 'zod'; import { SchemaPolicy } from './schema-policy.js'; export { ArrayBufferEncoding, DateEncoding, NumericDateDecoding, } from './schema-policy.js'; export type { SchemaFormat, SchemaPolicy, } from './schema-policy.js'; export declare const SchemaDefType: unique symbol; export type AnySchema = z.ZodType; export type SchemaDef = { readonly id: symbol; readonly build: (runtime: SchemaRuntime) => S; readonly debugName?: string; readonly [SchemaDefType]: true; }; export type SchemaLike = z.ZodType | SchemaDef>; export type ResolvedSchema = S extends SchemaDef ? TSchema : S; export declare function isSchema(value: unknown): value is z.ZodType; export declare function isSchemaDef(value: unknown): value is SchemaDef; export declare function defineSchema(builder: (runtime: SchemaRuntime) => S, options?: { id?: symbol; debugName?: string; }): SchemaDef; export interface SchemaRuntime { readonly policy: SchemaPolicy; resolveSchema(ref: S): ResolvedSchema; } export declare function createSchemaRuntime(policy: SchemaPolicy): SchemaRuntime;