import { RequestHandler } from "express"; import "reflect-metadata"; export declare const CONTROLLER_META_KEY = "controller:base-path"; export declare const ROUTES_META_KEY = "controller:routes"; export declare const MIDDLEWARE_META_KEY = "controller:middleware"; /** * Controller decorator - marks a class as a controller * @param basePath Base path for all routes in this controller */ export declare function Controller(basePath: string): (target: any) => any; /** * Route decorator - marks a method as a route handler * @param path Route path * @param method HTTP method */ export declare function Route(path: string, method: "GET" | "POST" | "PUT" | "DELETE" | "PATCH"): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor; /** * GET route decorator * @param path Route path */ export declare function Get(path: string): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor; /** * POST route decorator * @param path Route path */ export declare function Post(path: string): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor; /** * PUT route decorator * @param path Route path */ export declare function Put(path: string): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor; /** * DELETE route decorator * @param path Route path */ export declare function Delete(path: string): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor; /** * PATCH route decorator * @param path Route path */ export declare function Patch(path: string): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor; /** * Middleware decorator - adds middleware to a route handler * @param middleware Middleware function(s) */ export declare function Use(...middleware: RequestHandler[]): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;