import Router from "../Core/Router"; interface ControllerConfig { middlewares?: Function[]; name?: string; description?: string; } export declare function RestController(basePath: string, config?: ControllerConfig): Function; export interface ApiDocInfo { method: string; path: string; description: string; body?: string; response?: string; } interface ApiDoc { description?: string; shortDescription?: string; body?: string; response?: string; urlParams?: string; queryParams?: string; } export declare function Get(path: string, doc?: ApiDoc): Function; export declare function Post(path: string, doc?: ApiDoc): Function; export declare function Put(path: string, doc?: ApiDoc): Function; export declare function Delete(path: string, doc?: ApiDoc): Function; export declare function Options(path: string, doc?: ApiDoc): Function; export declare function Patch(path: string, doc?: ApiDoc): Function; export declare function registerController(router: Router, Controller: any): void; export declare function Use(...middlewares: Function[]): Function; export declare const PrivateRoute: () => (target: any, propertyKey: string, descriptor: PropertyDescriptor) => void; export declare const RolesAllowed: (roles: string[]) => (target: any, propertyKey: string, descriptor: PropertyDescriptor) => void; interface RateLimitOptions { windowMs: number; maxRequests: number; } export declare function RateLimit(options: RateLimitOptions): Function; export {}; //# sourceMappingURL=Router.d.ts.map