import { RequestHandlerParams } from 'express-serve-static-core';
interface MiddlewareParams {
    before?: RequestHandlerParams[];
    after?: RequestHandlerParams[];
}
export interface HttpMethodMeta {
    method: string;
    path: string;
    propertyKey: string;
    middleware: MiddlewareParams;
}
export declare type HttpMethodMetaList = HttpMethodMeta[];
export declare function getHttpMethodMetaList(controller: any): HttpMethodMetaList;
export declare function setHttpMethodMetaList(controller: any, meta: HttpMethodMetaList): void;
export declare function httpMethod(method: string, path: string, middleware?: RequestHandlerParams[] | MiddlewareParams): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => void;
export declare function httpGet(path: string, middlewares?: RequestHandlerParams[] | MiddlewareParams): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => void;
export declare function httpPost(path: string, middlewares?: RequestHandlerParams[] | MiddlewareParams): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => void;
export declare function httpPut(path: string, middlewares?: RequestHandlerParams[] | MiddlewareParams): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => void;
export declare function httpPatch(path: string, middlewares?: RequestHandlerParams[] | MiddlewareParams): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => void;
export declare function httpDelete(path: string, middlewares?: RequestHandlerParams[] | MiddlewareParams): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => void;
export declare function httpOptions(path: string, middlewares?: RequestHandlerParams[] | MiddlewareParams): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => void;
export declare function httpHead(path: string, middlewares?: RequestHandlerParams[] | MiddlewareParams): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => void;
export declare function httpAll(path: string, middlewares?: RequestHandlerParams[] | MiddlewareParams): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => void;
export {};
//# sourceMappingURL=httpMethod.d.ts.map