import Router from 'koa-router'; import 'reflect-metadata'; import { AppMiddleware, Container } from '../interfaces'; type Middleware = AppMiddleware; export declare function Controller(prefix?: string, ...middlewares: Middleware[]): ClassDecorator; export type HTTPVerb = 'get' | 'post' | 'put' | 'patch' | 'delete' | 'head' | 'all'; export declare function Before(...middlewares: Middleware[]): MethodDecorator; export declare function After(...middlewares: Middleware[]): MethodDecorator; export declare function Named(name: string): MethodDecorator; export declare function Get(route?: string, ...middlewares: Middleware[]): MethodDecorator; export declare function Post(route?: string, ...middlewares: Middleware[]): MethodDecorator; export declare function Put(route?: string, ...middlewares: Middleware[]): MethodDecorator; export declare function Patch(route?: string, ...middlewares: Middleware[]): MethodDecorator; export declare function Delete(route?: string, ...middlewares: Middleware[]): MethodDecorator; export declare function Head(route?: string, ...middlewares: Middleware[]): MethodDecorator; export declare function All(route?: string, ...middlewares: Middleware[]): MethodDecorator; /** * @internal */ export declare function getControllers(): Function[]; export type Endpoint = { target: any; route: string; verb: HTTPVerb; method: string | symbol; middlewares: Middleware[]; before: Middleware[]; after: Middleware[]; name?: string; }; export type MountPoint = { prefix?: string; middlewares: Middleware[]; endpoints: Endpoint[]; }; /** * @internal */ export declare function getMountPoints(target: Function): MountPoint; /** * @internal */ export declare function mountControllers(globalPrefix?: string): Router; export declare function getRouteUrl(name: string, params?: Record, options?: Router.IUrlOptionsQuery): string | undefined; export {};