import { Schema } from "joi"; import { Throwable } from "ts-injection"; import { ApiResponse, RequestContext, RequestInvalidError, RequestValidationSchema, ResponseInvalidError, ResponseValidationSchemaMap } from "../types"; export declare function ReqSchema(schema: RequestValidationSchema): (target: any, _propKey: string, _descriptor: any) => void; export declare function RequestSchema(schema: RequestValidationSchema): (target: any, _propKey: string, _descriptor: any) => void; export declare function ResSchema(schemaMap: ResponseValidationSchemaMap): any; export declare function ResSchema(statusCode: number, schema: Schema): any; export declare function ResponseSchema(schemaMap: ResponseValidationSchemaMap): any; export declare function ResponseSchema(statusCode: number, schema: Schema): any; export declare function ResponseSchema(schemaMapOrStatusCode: number | ResponseValidationSchemaMap, schema?: Schema): any; export declare function validateRequest(context: RequestContext): Throwable; export declare function validateResponse(response: ApiResponse, context: RequestContext): Throwable;