import { type ZodType } from 'zod';
/**
 * JSON Schema type definitions for conversion.
 */
interface JsonSchema {
    type?: string;
    properties?: Record<string, JsonSchema>;
    required?: string[];
    items?: JsonSchema;
    enum?: (string | number | boolean)[];
    const?: unknown;
    anyOf?: JsonSchema[];
    oneOf?: JsonSchema[];
    allOf?: JsonSchema[];
    description?: string;
    default?: unknown;
    minimum?: number;
    maximum?: number;
    minLength?: number;
    maxLength?: number;
    pattern?: string;
    format?: string;
    nullable?: boolean;
    [key: string]: unknown;
}
/**
 * Convert a JSON Schema to a Zod schema.
 *
 * Supports common JSON Schema types and constraints:
 * - string, number, integer, boolean, null
 * - object with properties and required
 * - array with items
 * - enum and const
 * - anyOf, oneOf, allOf
 * - format constraints (email, uri, uuid, date-time)
 * - numeric constraints (minimum, maximum)
 * - string constraints (minLength, maxLength, pattern)
 *
 * @param schema - JSON Schema object
 * @returns Zod schema
 */
export declare function jsonSchemaToZod(schema: JsonSchema | Record<string, unknown>): ZodType;
/**
 * Convert a JSON Schema to a Zod schema with a default empty object fallback.
 *
 * @param schema - Optional JSON Schema object
 * @returns Zod schema (defaults to empty object schema)
 */
export declare function jsonSchemaToZodSafe(schema?: Record<string, unknown>): ZodType;
export {};
