import { StaticDecode, type TSchema } from '@sinclair/typebox';
import type { HttpEndpointDecoratorConfig, MethodDecorator, RequestConfigsToTypes, RequestValidatorConfig, SchemaValidator, SchemaValidatorConfig, ValidatorConfig } from './types.js';
export declare function isSchemaValidator(type: any): type is SchemaValidator;
export declare function buildSchemaValidator(config: SchemaValidatorConfig): SchemaValidator;
export declare function Validate<T extends TSchema, RequestValidators extends RequestValidatorConfig[], MethodDecoratorType extends (...args: [...RequestConfigsToTypes<RequestValidators>, ...any[]]) => Promise<StaticDecode<T>> | StaticDecode<T>>(validatorConfig: ValidatorConfig<T, RequestValidators>): MethodDecorator<MethodDecoratorType>;
export declare const HttpEndpoint: <S extends TSchema, RequestConfigs extends RequestValidatorConfig[], MethodDecoratorType extends (...args: [...RequestConfigsToTypes<RequestConfigs>, ...any[]]) => Promise<StaticDecode<S>> | StaticDecode<S>>(config: HttpEndpointDecoratorConfig<S, RequestConfigs>) => MethodDecorator<MethodDecoratorType>;
