import type { HookHandlerDoneFunction, FastifyRequest, FastifyReply } from 'fastify';
import { ZodSchema } from 'zod';
/**
 * SchemaValidationMiddleware is a middleware that validates the request
 * body, headers, params and querystring against the provided Zod schemas.
 *
 * It will replace the request body, headers, params and querystring with
 * the validated data.
 *
 * @param {Object} schemas - The schemas to validate the request against.
 * @param {ZodSchema} schemas.body - The schema to validate the request body against.
 * @param {ZodSchema} schemas.headers - The schema to validate the request headers against.
 * @param {ZodSchema} schemas.params - The schema to validate the request params against.
 * @param {ZodSchema} schemas.querystring - The schema to validate the request querystring against.
 * @returns The middleware function.
 * @since 1.0.0
 * @author Caique Araujo <caique@piggly.com.br>
 */
export declare const SchemaValidationMiddleware: (schemas: {
    body?: ZodSchema<any>;
    headers?: ZodSchema<any>;
    params?: ZodSchema<any>;
    querystring?: ZodSchema<any>;
}) => (request: FastifyRequest, reply: FastifyReply, done: HookHandlerDoneFunction) => FastifyReply<any, import("fastify").RawServerDefault, import("http").IncomingMessage, import("http").ServerResponse<import("http").IncomingMessage>, unknown, import("fastify").FastifySchema, import("fastify").FastifyTypeProviderDefault, unknown> | undefined;
