import { z } from "zod"; export type ZodValidationOptions = { forbidNonWhitelisted?: boolean; }; /** * Validates data using a Zod schema and throws an AppError if validation fails. * * @param {ZodSchema} schema - The Zod schema to validate against. * @param {unknown} data - The data to validate. * @returns {Promise} - The validated data or throws an AppError on failure. * * @example * ```typescript * const userSchema = z.object({ * name: z.string(), * email: z.string().email() * }); * * async function main() { * const data = { name: "Uanela Como", email: "invalid-email" }; * try { * const validatedUser = await validateSchema(userSchema, data); * // do something * } catch (error) { * console.error(error.message); * } * } * ``` */ export default function validateSchema(schema: T, data: unknown, options?: ZodValidationOptions): Promise>; export declare function parseWithWhitelistCheck(schema: T, data: unknown, options?: ZodValidationOptions): { success: true; data: z.infer; } | { success: false; error: z.ZodError; };