import "reflect-metadata"; export declare function Controller(baseRoute?: string | string[]): (classDefinition: Function) => void; export declare function Get(path: string | RegExp): (object: Record, methodName: string) => void; export declare function Post(path: string | RegExp): (object: Record, methodName: string) => void; export declare function Put(path: string | RegExp): (object: Record, methodName: string) => void; export declare function Patch(path: string | RegExp): (object: Record, methodName: string) => void; export declare function Delete(path: string | RegExp): (object: Record, methodName: string) => void; export declare function Version(version: string, endpointDeprecationWarning?: string): (object: Record, methodName: string) => void; /** * Flow is an array of middleware you want to run prior to the controller action. * This is where you implement constraints like authentication, authorization and similar pre-checks. * @param flow * @constructor */ export declare function Flow(flow: Function | Array): (object: Function | Record, methodName?: string) => void; export declare function Header(injectOptions?: string | Record): (object: Record, methodName: string, index: number) => void; export interface ValidationDecoratorOptions { validClass?: Function; required?: boolean; trim?: boolean; } export declare function Body(injectOptions?: string | ValidationDecoratorOptions): (object: Record, methodName: string, index: number) => void; export declare function Session(injectOptions?: string | Record): (object: Record, methodName: string, index: number) => void; export declare function CurrentUser(injectOptions?: string | Record): (object: Record, methodName: string, index: number) => void; export declare function State(injectOptions?: string | Record): (object: Record, methodName: string, index: number) => void; export declare function Req(injectOptions?: string | Record): (object: Record, methodName: string, index: number) => void; export declare function Res(injectOptions?: string | Record): (object: Record, methodName: string, index: number) => void; export declare function Params(injectOptions?: string | Record): (object: Record, methodName: string, index: number) => void; export declare function Query(injectOptions?: string | ValidationDecoratorOptions): (object: Record, methodName: string, index: number) => void; /** * Injects the full Koa context. Try not to do this if you don't have to. * @param injectOptions * @constructor */ export declare function Ctx(injectOptions?: string | Record): (object: Record, methodName: string, index: number) => void;