import * as _finom_zod_to_json_schema from '@finom/zod-to-json-schema';
import * as z from 'zod';
export { z };
import * as z3 from 'zod/v3';
export { z3 };
import * as z4 from 'zod/v4/core';
export { z4 };

type ZodSchema<T = any> = z3.ZodType<T> | z4.$ZodType<T>;
type ZodInfer<T extends ZodSchema> = T extends z3.ZodType<any> ? z3.infer<T> : T extends z4.$ZodType<any> ? z4.infer<T> : never;
declare function parseSchema<T>(schema: ZodSchema<T>, data: unknown): T;
declare function safeParseSchema<T>(schema: ZodSchema<T>, data: unknown): z.core.util.SafeParseSuccess<T> | z.core.util.SafeParseError<T> | z3.SafeParseError<T>;
declare function isZodSchema(obj: unknown): obj is ZodSchema;
declare function isZodV3Schema(obj: unknown): obj is z3.ZodTypeAny;
declare function isZodV4Schema(obj: unknown): obj is z4.$ZodType;
declare function zodToJsonSchema(obj: ZodSchema): z.core.JSONSchema.JSONSchema | ({
    anyOf: _finom_zod_to_json_schema.JsonSchema7DateType[];
} & {
    title?: string;
    default?: any;
    description?: string;
    markdownDescription?: string;
} & {
    $schema?: string | undefined;
    definitions?: {
        [key: string]: _finom_zod_to_json_schema.JsonSchema7Type;
    } | undefined;
}) | ({
    type: "object" | "array";
} & {
    title?: string;
    default?: any;
    description?: string;
    markdownDescription?: string;
} & {
    $schema?: string | undefined;
    definitions?: {
        [key: string]: _finom_zod_to_json_schema.JsonSchema7Type;
    } | undefined;
}) | ({
    type: ("string" | "number" | "boolean" | "null" | "integer") | ("string" | "number" | "boolean" | "null" | "integer")[];
} & {
    title?: string;
    default?: any;
    description?: string;
    markdownDescription?: string;
} & {
    $schema?: string | undefined;
    definitions?: {
        [key: string]: _finom_zod_to_json_schema.JsonSchema7Type;
    } | undefined;
}) | ({
    anyOf: _finom_zod_to_json_schema.JsonSchema7Type[];
} & {
    title?: string;
    default?: any;
    description?: string;
    markdownDescription?: string;
} & {
    $schema?: string | undefined;
    definitions?: {
        [key: string]: _finom_zod_to_json_schema.JsonSchema7Type;
    } | undefined;
}) | (_finom_zod_to_json_schema.JsonSchema7UndefinedType & {
    title?: string;
    default?: any;
    description?: string;
    markdownDescription?: string;
} & {
    $schema?: string | undefined;
    definitions?: {
        [key: string]: _finom_zod_to_json_schema.JsonSchema7Type;
    } | undefined;
}) | (_finom_zod_to_json_schema.JsonSchema7AnyType & {
    title?: string;
    default?: any;
    description?: string;
    markdownDescription?: string;
} & {
    $schema?: string | undefined;
    definitions?: {
        [key: string]: _finom_zod_to_json_schema.JsonSchema7Type;
    } | undefined;
}) | ({
    anyOf: [_finom_zod_to_json_schema.JsonSchema7Type, _finom_zod_to_json_schema.JsonSchema7NullType];
} & {
    title?: string;
    default?: any;
    description?: string;
    markdownDescription?: string;
} & {
    $schema?: string | undefined;
    definitions?: {
        [key: string]: _finom_zod_to_json_schema.JsonSchema7Type;
    } | undefined;
}) | ({
    type: [string, "null"];
} & {
    title?: string;
    default?: any;
    description?: string;
    markdownDescription?: string;
} & {
    $schema?: string | undefined;
    definitions?: {
        [key: string]: _finom_zod_to_json_schema.JsonSchema7Type;
    } | undefined;
}) | (_finom_zod_to_json_schema.JsonSchema7AllOfType & {
    title?: string;
    default?: any;
    description?: string;
    markdownDescription?: string;
} & {
    $schema?: string | undefined;
    definitions?: {
        [key: string]: _finom_zod_to_json_schema.JsonSchema7Type;
    } | undefined;
});

export { isZodSchema, isZodV3Schema, isZodV4Schema, parseSchema, safeParseSchema, zodToJsonSchema };
export type { ZodInfer, ZodSchema };
