import * as express from 'express'; export declare class RouteReflector { constructor(type: Function); routes: RouteDefinition[]; } export interface RouteDefinition { method: string; httpMethod: string; options: RouteOptions; path: string; } export declare class RouteEvent { constructor(request: express.Request, response: express.Response); request: express.Request; response: express.Response; } export interface RouteOptions { middleware?: Function[]; } export declare function Get(path: string, options?: RouteOptions): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => void; export declare function Put(path: string, options?: RouteOptions): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => void; export declare function Post(path: string, options?: RouteOptions): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => void; export declare function Delete(path: string, options?: RouteOptions): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => void; export declare function Options(path: string, options?: RouteOptions): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => void; export declare function Patch(path: string, options?: RouteOptions): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => void; export declare function Route(method: string, path: string, options?: RouteOptions): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => void;