import type { BaseEndpointOptions } from '@navios/builder'; import type { HandlerMetadata } from '@navios/core'; import type { FastifyReply, FastifyRequest } from 'fastify'; import { AbstractHandlerAdapterService, type ArgumentGetter } from '@navios/core'; /** * Abstract base class for Fastify handler adapters. * * Provides shared argument parsing logic for Fastify: * - Query parameters via request.query * - Request body via request.body * - URL parameters via request.params * * Concrete adapters (Endpoint, Stream) implement response handling * via createStaticHandler and createDynamicHandler. * * @typeParam TConfig - Endpoint configuration type */ export declare abstract class AbstractFastifyHandlerAdapterService extends AbstractHandlerAdapterService { /** * Creates argument getters for Fastify request parsing. * * Handles: * - Query params: Extracts from request.query (pre-validated by Fastify) * - Request body: Extracts from request.body (pre-validated by Fastify) * - URL params: Extracts route parameters from request.params */ protected createArgumentGetters(handlerMetadata: HandlerMetadata): ArgumentGetter[]; /** * Checks if the handler has any validation schemas defined. * * @param handlerMetadata - The handler metadata containing configuration. * @returns `true` if the handler has request, query, or error schemas. */ hasSchema(handlerMetadata: HandlerMetadata): boolean; /** * Provides Fastify schema information for the handler. * * Creates a Fastify route schema object that includes request body and * query string schemas. This enables Fastify's built-in validation. * * @param handlerMetadata - The handler metadata containing configuration and schemas. * @returns A Fastify route schema object. */ provideSchema(handlerMetadata: HandlerMetadata): Record; } //# sourceMappingURL=abstract-fastify-handler-adapter.service.d.mts.map