import { DateTime } from 'luxon'; import type { JsonValue } from 'type-fest'; import { z } from 'zod'; interface ErrorContext { error: z.ZodError; input: T; } interface LooseOpts { onError?: (err: ErrorContext) => void; } /** * Works like `z.array()`, but drops wrong elements instead of invalidating the whole array. * * **Important**: non-array inputs are still invalid. * Use `LooseArray(...).catch([])` to handle it. * * @param Elem Schema for array elements * @param onError Callback for errors * @returns Schema for array */ export declare function LooseArray(Elem: Schema, { onError }?: LooseOpts): z.ZodEffects, z.TypeOf[], any[]>; type LooseRecordResult = z.ZodEffects, Record, z.TypeOf>, Record, any>>; type LooseRecordOpts = LooseOpts | z.TypeOf, unknown>>; /** * Works like `z.record()`, but drops wrong elements instead of invalidating the whole record. * * **Important**: non-record inputs other are still invalid. * Use `LooseRecord(...).catch({})` to handle it. * * @param KeyValue Schema for record keys * @param ValueValue Schema for record values * @param onError Callback for errors * @returns Schema for record */ export declare function LooseRecord(Value: ValueSchema): LooseRecordResult; export declare function LooseRecord(Key: KeySchema, Value: ValueSchema): LooseRecordResult; export declare function LooseRecord(Value: ValueSchema, { onError }: LooseRecordOpts): LooseRecordResult; export declare function LooseRecord(Key: KeySchema, Value: ValueSchema, { onError }: LooseRecordOpts): LooseRecordResult; export declare const Json: z.ZodEffects; export declare const Json5: z.ZodEffects; export declare const UtcDate: z.ZodEffects, string>; export declare const Yaml: z.ZodEffects; export declare const MultidocYaml: z.ZodEffects; export declare const Toml: z.ZodEffects; export {};