import { z } from "zod";
import type { BlockManifest, FieldDefinition } from "./schema";
type FieldShape = Record<string, z.ZodTypeAny>;
type ValidatorOptions = {
    allowNull?: boolean;
    /**
     * When true, required fields can be missing (undefined).
     * Use for autosave scenarios where content may be incomplete.
     */
    allowIncomplete?: boolean;
    /**
     * Validation mode:
     * - 'strict' (default): Enforce all required field constraints
     * - 'draft': Preprocess empty values to undefined, use allowIncomplete for lenient validation
     *
     * Use 'draft' mode in preview/editing contexts where users need to temporarily
     * have empty fields without validation errors causing blocks to disappear.
     */
    mode?: "strict" | "draft";
};
export declare function deriveContentZodFromManifest(manifestOrFields: BlockManifest | FieldDefinition[], options?: ValidatorOptions): z.ZodObject<FieldShape>;
export declare function createManifestValidator(manifestOrFields: BlockManifest | FieldDefinition[], options?: ValidatorOptions): z.ZodType<Record<string, unknown>>;
export {};
