import { HandlerTransform } from '../contracts';
import { Type } from '../contracts';
export interface ResponseDecoratorOptions {
    passThrough: boolean;
}
export type ParamData = object | string | number;
export interface RouteParamMetadata {
    index: number;
    data?: ParamData;
}
export declare function assignMetadata<T = any, R = any>(args: R, paramType: T, index: number, data?: ParamData, ...handlers: (Type<HandlerTransform> | HandlerTransform)[]): R & {
    [x: string]: {
        index: number;
        data: ParamData;
        handlers: (HandlerTransform<any, any> | Type<HandlerTransform<any, any>>)[];
    };
};
export declare const Request: () => ParameterDecorator;
export declare const Response: (options?: ResponseDecoratorOptions) => ParameterDecorator;
export declare const Headers: (property?: string) => ParameterDecorator;
export declare function Query(): ParameterDecorator;
export declare function Query(...handlers: (Type<HandlerTransform> | HandlerTransform)[]): ParameterDecorator;
export declare function Query(property: string, ...handlers: (Type<HandlerTransform> | HandlerTransform)[]): ParameterDecorator;
export declare function Body(): ParameterDecorator;
export declare function Body(...handlers: (Type<HandlerTransform> | HandlerTransform)[]): ParameterDecorator;
export declare function Body(property: string, ...handlers: (Type<HandlerTransform> | HandlerTransform)[]): ParameterDecorator;
export declare function Param(): ParameterDecorator;
export declare function Param(...handlers: (Type<HandlerTransform> | HandlerTransform)[]): ParameterDecorator;
export declare function Param(property: string, ...handlers: (Type<HandlerTransform> | HandlerTransform)[]): ParameterDecorator;
export declare function UploadedFile(): ParameterDecorator;
export declare function UploadedFile(...handlers: (Type<HandlerTransform> | HandlerTransform)[]): ParameterDecorator;
export declare function UploadedFile(fileKey?: string, ...handlers: (Type<HandlerTransform> | HandlerTransform)[]): ParameterDecorator;
export declare function UploadedFiles(): ParameterDecorator;
export declare function UploadedFiles(...handlers: (Type<HandlerTransform> | HandlerTransform)[]): ParameterDecorator;
export declare const Req: () => ParameterDecorator;
export declare const Res: (options?: ResponseDecoratorOptions) => ParameterDecorator;
//# sourceMappingURL=route-params.d.ts.map