import { type ZodArray, type ZodBoolean, type ZodNumber, type ZodObject, type ZodString, type ZodNullable, type ZodIssue, type ZodRawShape, type ZodTypeAny, type ZodOptional, type z, type ZodType, type ZodError, type ZodTypeDef } from 'zod';
import type { Nullable } from './type';
export declare function isZodType(item: any): item is ZodType<any, ZodTypeDef & {
    typeName: string;
}>;
export declare function isZodNullable<T extends ZodTypeAny>(item: any): item is ZodNullable<T>;
export declare function isZodOptional<T extends ZodTypeAny>(item: any): item is ZodOptional<T>;
export declare function isZodString(item: any): item is ZodString;
export declare function isZodBoolean(item: any): item is ZodBoolean;
export declare function isZodNumber(item: any): item is ZodNumber;
export declare function isZodArray(item: any): item is ZodArray<any>;
export declare function isZodObject(item: any): item is ZodObject<any>;
export declare function isZodError(item: any): item is ZodError;
export declare function toReadableError(issue: ZodIssue): string;
/**
 * validation utils
 * @deprecated to be replaced with setNullZodAny, TODO: check impact on current usage
 */
export declare function setNullZod<T extends ZodRawShape>(zodObject: ZodObject<T>, modelReference?: any): Nullable<z.infer<ZodObject<T>>>;
export declare function setNullZodAny<T>(zodAny: ZodType<T>): Nullable<z.infer<typeof zodAny>>;
export declare function normalizeNonString(obj: any, schema: ZodObject<any>): any;
