import { z } from 'zod';
export declare function looseArray<T extends z.ZodTypeAny>(schema: T, catchCallback?: () => void): z.ZodEffects<z.ZodCatch<z.ZodArray<z.ZodCatch<z.ZodNullable<T>>, 'many'>>, z.TypeOf<T>[], unknown>;
export declare function looseRecord<T extends z.ZodTypeAny>(schema: T, catchCallback?: () => void): z.ZodEffects<z.ZodCatch<z.ZodRecord<z.ZodString, z.ZodCatch<z.ZodNullable<T>>>>, Record<string, z.TypeOf<T>>, unknown>;
export declare function looseValue<T, U extends z.ZodTypeDef, V>(schema: z.ZodType<T, U, V>, catchCallback?: () => void): z.ZodCatch<z.ZodNullable<z.ZodType<T, U, V>>>;
export declare function parseJson<T = unknown, Schema extends z.ZodType<T> = z.ZodType<T>>(input: string, schema: Schema): z.infer<Schema>;
export declare function safeParseJson<T = unknown, Schema extends z.ZodType<T> = z.ZodType<T>>(input: string, schema: Schema, catchCallback?: (e: SyntaxError | z.ZodError) => void): z.infer<Schema> | null;
