import type { ZodSchema } from 'zod';
/**
 * Same as `zValidator('json', schema)`, but exposes zod error details
 * in the 400 response only in develop mode.
 */
export declare function jsonValidatorMiddleware<T extends ZodSchema>(schema: T): import("hono").MiddlewareHandler<import("hono").Env, string, {
    in: (undefined extends (T extends ZodSchema<any, import("zod").ZodTypeDef, any> ? import("zod").input<T> : T extends import("zod/v4/core").$ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>> ? import("zod/v4").input<T> : never) ? true : false) extends true ? {
        json?: ([T extends ZodSchema<any, import("zod").ZodTypeDef, any> ? import("zod").input<T> : T extends import("zod/v4/core").$ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>> ? import("zod/v4").input<T> : never] extends [any] ? T extends ZodSchema<any, import("zod").ZodTypeDef, any> ? import("zod").input<T> : T extends import("zod/v4/core").$ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>> ? import("zod/v4").input<T> : never : [Exclude<T extends ZodSchema<any, import("zod").ZodTypeDef, any> ? import("zod").input<T> : T extends import("zod/v4/core").$ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>> ? import("zod/v4").input<T> : never, undefined>] extends [never] ? {} : [Exclude<T extends ZodSchema<any, import("zod").ZodTypeDef, any> ? import("zod").input<T> : T extends import("zod/v4/core").$ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>> ? import("zod/v4").input<T> : never, undefined>] extends [object] ? undefined extends (T extends ZodSchema<any, import("zod").ZodTypeDef, any> ? import("zod").input<T> : T extends import("zod/v4/core").$ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>> ? import("zod/v4").input<T> : never) ? (((Exclude<T extends ZodSchema<any, import("zod").ZodTypeDef, any> ? import("zod").input<T> : T extends import("zod/v4/core").$ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>> ? import("zod/v4").input<T> : never, (T extends ZodSchema<any, import("zod").ZodTypeDef, any> ? import("zod").input<T> : T extends import("zod/v4/core").$ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>> ? import("zod/v4").input<T> : never) & undefined> extends infer T_3 ? { [K in keyof T_3]: ([Exclude<T_3[K], undefined>] extends [string] ? [string & Exclude<T_3[K], undefined>] extends [import("hono/utils/types").UnionToIntersection<string & Exclude<T_3[K], undefined>>] ? false : true : false) extends true ? T_3[K] : ([unknown] extends [T_3[K]] ? false : undefined extends T_3[K] ? true : false) extends true ? T_3[K] : Target extends "form" ? T$1 | T$1[] : Target extends "query" ? string | string[] : Target extends "param" ? string : Target extends "header" ? string : Target extends "cookie" ? string : unknown; } : never) extends infer T_2 ? { [K in keyof T_2]: T_2[K]; } : never) extends infer T_1 ? { [K in keyof T_1]: T_1[K]; } : never) | ((T extends ZodSchema<any, import("zod").ZodTypeDef, any> ? import("zod").input<T> : T extends import("zod/v4/core").$ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>> ? import("zod/v4").input<T> : never) & undefined) : (((T extends ZodSchema<any, import("zod").ZodTypeDef, any> ? import("zod").input<T> : T extends import("zod/v4/core").$ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>> ? import("zod/v4").input<T> : never) extends infer T_6 ? { [K in keyof T_6]: ([Exclude<T_6[K], undefined>] extends [string] ? [string & Exclude<T_6[K], undefined>] extends [import("hono/utils/types").UnionToIntersection<string & Exclude<T_6[K], undefined>>] ? false : true : false) extends true ? T_6[K] : ([unknown] extends [T_6[K]] ? false : undefined extends T_6[K] ? true : false) extends true ? T_6[K] : Target extends "form" ? T$1 | T$1[] : Target extends "query" ? string | string[] : Target extends "param" ? string : Target extends "header" ? string : Target extends "cookie" ? string : unknown; } : never) extends infer T_5 ? { [K in keyof T_5]: T_5[K]; } : never) extends infer T_4 ? { [K in keyof T_4]: T_4[K]; } : never : {}) | undefined;
    } : {
        json: [T extends ZodSchema<any, import("zod").ZodTypeDef, any> ? import("zod").input<T> : T extends import("zod/v4/core").$ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>> ? import("zod/v4").input<T> : never] extends [any] ? T extends ZodSchema<any, import("zod").ZodTypeDef, any> ? import("zod").input<T> : T extends import("zod/v4/core").$ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>> ? import("zod/v4").input<T> : never : [Exclude<T extends ZodSchema<any, import("zod").ZodTypeDef, any> ? import("zod").input<T> : T extends import("zod/v4/core").$ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>> ? import("zod/v4").input<T> : never, undefined>] extends [never] ? {} : [Exclude<T extends ZodSchema<any, import("zod").ZodTypeDef, any> ? import("zod").input<T> : T extends import("zod/v4/core").$ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>> ? import("zod/v4").input<T> : never, undefined>] extends [object] ? undefined extends (T extends ZodSchema<any, import("zod").ZodTypeDef, any> ? import("zod").input<T> : T extends import("zod/v4/core").$ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>> ? import("zod/v4").input<T> : never) ? (((Exclude<T extends ZodSchema<any, import("zod").ZodTypeDef, any> ? import("zod").input<T> : T extends import("zod/v4/core").$ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>> ? import("zod/v4").input<T> : never, (T extends ZodSchema<any, import("zod").ZodTypeDef, any> ? import("zod").input<T> : T extends import("zod/v4/core").$ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>> ? import("zod/v4").input<T> : never) & undefined> extends infer T_3 ? { [K in keyof T_3]: ([Exclude<T_3[K], undefined>] extends [string] ? [string & Exclude<T_3[K], undefined>] extends [import("hono/utils/types").UnionToIntersection<string & Exclude<T_3[K], undefined>>] ? false : true : false) extends true ? T_3[K] : ([unknown] extends [T_3[K]] ? false : undefined extends T_3[K] ? true : false) extends true ? T_3[K] : Target extends "form" ? T$1 | T$1[] : Target extends "query" ? string | string[] : Target extends "param" ? string : Target extends "header" ? string : Target extends "cookie" ? string : unknown; } : never) extends infer T_2 ? { [K in keyof T_2]: T_2[K]; } : never) extends infer T_1 ? { [K in keyof T_1]: T_1[K]; } : never) | ((T extends ZodSchema<any, import("zod").ZodTypeDef, any> ? import("zod").input<T> : T extends import("zod/v4/core").$ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>> ? import("zod/v4").input<T> : never) & undefined) : (((T extends ZodSchema<any, import("zod").ZodTypeDef, any> ? import("zod").input<T> : T extends import("zod/v4/core").$ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>> ? import("zod/v4").input<T> : never) extends infer T_6 ? { [K in keyof T_6]: ([Exclude<T_6[K], undefined>] extends [string] ? [string & Exclude<T_6[K], undefined>] extends [import("hono/utils/types").UnionToIntersection<string & Exclude<T_6[K], undefined>>] ? false : true : false) extends true ? T_6[K] : ([unknown] extends [T_6[K]] ? false : undefined extends T_6[K] ? true : false) extends true ? T_6[K] : Target extends "form" ? T$1 | T$1[] : Target extends "query" ? string | string[] : Target extends "param" ? string : Target extends "header" ? string : Target extends "cookie" ? string : unknown; } : never) extends infer T_5 ? { [K in keyof T_5]: T_5[K]; } : never) extends infer T_4 ? { [K in keyof T_4]: T_4[K]; } : never : {};
    };
    out: {
        json: T extends ZodSchema<any, import("zod").ZodTypeDef, any> ? import("zod").output<T> : T extends import("zod/v4/core").$ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>> ? import("zod/v4").output<T> : never;
    };
}, (Response & import("hono").TypedResponse<"Bad Request", 400, "text">) | (Response & import("hono").TypedResponse<{
    success: boolean;
    error: ({
        path: (string | number)[];
        message: string;
        code: "custom";
        params?: {
            [x: string]: any;
        } | undefined;
        fatal?: boolean | undefined;
    } | {
        path: (string | number)[];
        message: string;
        code: "invalid_arguments";
        argumentsError: {
            name: string;
            stack?: string;
            cause?: import("hono/utils/types").JSONValue | undefined;
            issues: ({
                path: (string | number)[];
                message: string;
                code: "custom";
                params?: {
                    [x: string]: any;
                } | undefined;
                fatal?: boolean | undefined;
            } | /*elided*/ any | {
                path: (string | number)[];
                message: string;
                code: "invalid_date";
                fatal?: boolean | undefined;
            } | {
                path: (string | number)[];
                message: string;
                received: string | number;
                code: "invalid_enum_value";
                options: (string | number)[];
                fatal?: boolean | undefined;
            } | {
                path: (string | number)[];
                message: string;
                code: "invalid_intersection_types";
                fatal?: boolean | undefined;
            } | {
                path: (string | number)[];
                message: string;
                code: "invalid_literal";
                expected: import("hono/utils/types").JSONValue;
                received: import("hono/utils/types").JSONValue;
                fatal?: boolean | undefined;
            } | {
                path: (string | number)[];
                message: string;
                code: "invalid_return_type";
                returnTypeError: /*elided*/ any;
                fatal?: boolean | undefined;
            } | {
                path: (string | number)[];
                message: string;
                code: "invalid_string";
                validation: import("zod").StringValidation;
                fatal?: boolean | undefined;
            } | {
                path: (string | number)[];
                message: string;
                code: "invalid_type";
                expected: import("zod").ZodParsedType;
                received: import("zod").ZodParsedType;
                fatal?: boolean | undefined;
            } | {
                path: (string | number)[];
                message: string;
                code: "invalid_union_discriminator";
                options: (string | number | boolean | null)[];
                fatal?: boolean | undefined;
            } | {
                path: (string | number)[];
                message: string;
                code: "invalid_union";
                unionErrors: /*elided*/ any[];
                fatal?: boolean | undefined;
            } | {
                path: (string | number)[];
                message: string;
                code: "not_finite";
                fatal?: boolean | undefined;
            } | {
                path: (string | number)[];
                message: string;
                code: "not_multiple_of";
                multipleOf: number;
                fatal?: boolean | undefined;
            } | {
                path: (string | number)[];
                message: string;
                code: "too_big";
                maximum: number;
                inclusive: boolean;
                exact?: boolean;
                type: "array" | "string" | "number" | "set" | "date" | "bigint";
                fatal?: boolean | undefined;
            } | {
                path: (string | number)[];
                message: string;
                code: "too_small";
                minimum: number;
                inclusive: boolean;
                exact?: boolean;
                type: "array" | "string" | "number" | "set" | "date" | "bigint";
                fatal?: boolean | undefined;
            } | {
                path: (string | number)[];
                message: string;
                code: "unrecognized_keys";
                keys: string[];
                fatal?: boolean | undefined;
            })[];
            readonly errors: ({
                path: (string | number)[];
                message: string;
                code: "custom";
                params?: {
                    [x: string]: any;
                } | undefined;
                fatal?: boolean | undefined;
            } | /*elided*/ any | {
                path: (string | number)[];
                message: string;
                code: "invalid_date";
                fatal?: boolean | undefined;
            } | {
                path: (string | number)[];
                message: string;
                received: string | number;
                code: "invalid_enum_value";
                options: (string | number)[];
                fatal?: boolean | undefined;
            } | {
                path: (string | number)[];
                message: string;
                code: "invalid_intersection_types";
                fatal?: boolean | undefined;
            } | {
                path: (string | number)[];
                message: string;
                code: "invalid_literal";
                expected: import("hono/utils/types").JSONValue;
                received: import("hono/utils/types").JSONValue;
                fatal?: boolean | undefined;
            } | {
                path: (string | number)[];
                message: string;
                code: "invalid_return_type";
                returnTypeError: any;
                fatal?: boolean | undefined;
            } | {
                path: (string | number)[];
                message: string;
                code: "invalid_string";
                validation: import("zod").StringValidation;
                fatal?: boolean | undefined;
            } | {
                path: (string | number)[];
                message: string;
                code: "invalid_type";
                expected: import("zod").ZodParsedType;
                received: import("zod").ZodParsedType;
                fatal?: boolean | undefined;
            } | {
                path: (string | number)[];
                message: string;
                code: "invalid_union_discriminator";
                options: (string | number | boolean | null)[];
                fatal?: boolean | undefined;
            } | {
                path: (string | number)[];
                message: string;
                code: "invalid_union";
                unionErrors: any[];
                fatal?: boolean | undefined;
            } | {
                path: (string | number)[];
                message: string;
                code: "not_finite";
                fatal?: boolean | undefined;
            } | {
                path: (string | number)[];
                message: string;
                code: "not_multiple_of";
                multipleOf: number;
                fatal?: boolean | undefined;
            } | {
                path: (string | number)[];
                message: string;
                code: "too_big";
                maximum: number;
                inclusive: boolean;
                exact?: boolean;
                type: "array" | "string" | "number" | "set" | "date" | "bigint";
                fatal?: boolean | undefined;
            } | {
                path: (string | number)[];
                message: string;
                code: "too_small";
                minimum: number;
                inclusive: boolean;
                exact?: boolean;
                type: "array" | "string" | "number" | "set" | "date" | "bigint";
                fatal?: boolean | undefined;
            } | {
                path: (string | number)[];
                message: string;
                code: "unrecognized_keys";
                keys: string[];
                fatal?: boolean | undefined;
            })[];
            readonly message: string;
            readonly isEmpty: boolean;
            addIssue: never;
            addIssues: never;
            readonly formErrors: {
                formErrors: string[];
                fieldErrors: {
                    [x: string]: string[] | undefined;
                    [x: number]: string[] | undefined;
                };
            };
        };
        fatal?: boolean | undefined;
    } | {
        path: (string | number)[];
        message: string;
        code: "invalid_date";
        fatal?: boolean | undefined;
    } | {
        path: (string | number)[];
        message: string;
        received: string | number;
        code: "invalid_enum_value";
        options: (string | number)[];
        fatal?: boolean | undefined;
    } | {
        path: (string | number)[];
        message: string;
        code: "invalid_intersection_types";
        fatal?: boolean | undefined;
    } | {
        path: (string | number)[];
        message: string;
        code: "invalid_literal";
        expected: import("hono/utils/types").JSONValue;
        received: import("hono/utils/types").JSONValue;
        fatal?: boolean | undefined;
    } | {
        path: (string | number)[];
        message: string;
        code: "invalid_return_type";
        returnTypeError: any;
        fatal?: boolean | undefined;
    } | {
        path: (string | number)[];
        message: string;
        code: "invalid_string";
        validation: import("zod").StringValidation;
        fatal?: boolean | undefined;
    } | {
        path: (string | number)[];
        message: string;
        code: "invalid_type";
        expected: import("zod").ZodParsedType;
        received: import("zod").ZodParsedType;
        fatal?: boolean | undefined;
    } | {
        path: (string | number)[];
        message: string;
        code: "invalid_union_discriminator";
        options: (string | number | boolean | null)[];
        fatal?: boolean | undefined;
    } | {
        path: (string | number)[];
        message: string;
        code: "invalid_union";
        unionErrors: any[];
        fatal?: boolean | undefined;
    } | {
        path: (string | number)[];
        message: string;
        code: "not_finite";
        fatal?: boolean | undefined;
    } | {
        path: (string | number)[];
        message: string;
        code: "not_multiple_of";
        multipleOf: number;
        fatal?: boolean | undefined;
    } | {
        path: (string | number)[];
        message: string;
        code: "too_big";
        maximum: number;
        inclusive: boolean;
        exact?: boolean;
        type: "array" | "string" | "number" | "set" | "date" | "bigint";
        fatal?: boolean | undefined;
    } | {
        path: (string | number)[];
        message: string;
        code: "too_small";
        minimum: number;
        inclusive: boolean;
        exact?: boolean;
        type: "array" | "string" | "number" | "set" | "date" | "bigint";
        fatal?: boolean | undefined;
    } | {
        path: (string | number)[];
        message: string;
        code: "unrecognized_keys";
        keys: string[];
        fatal?: boolean | undefined;
    })[];
}, 400, "json">)>;
//# sourceMappingURL=jsonValidatorMiddleware.d.ts.map