import KoaRouter from "koa-router"; import { ActionMeta } from "./decorators"; import { ParameterizedContext } from "koa"; import { App } from "./app"; import { Logger } from "./logger"; import { Controller } from "."; export declare const ACTION_EXEC_PATH_PROPERTY_NAME: unique symbol; export type RouterItem = { /** * Matching route */ path: string; /** * Execution address */ execPath: string; /** * Action method */ action: Function; /** Metadata */ meta: ActionMeta; controller: Controller; }; export type RouteContext = ParameterizedContext, any> & { logger: Logger; jwt: Record; }; export declare class Router { private koaRouter; private app; routers: Map; constructor(koaRouter: KoaRouter, app: App); beforeRouteCallbacks: { add: (callback: (ctx: RouteContext, routerItem: RouterItem, requestBody: any) => void | boolean | Promise) => () => void; callbacks: ((ctx: RouteContext, routerItem: RouterItem, requestBody: any) => void | boolean | Promise)[]; reset: () => void; remove: (callBack: (ctx: RouteContext, routerItem: RouterItem, requestBody: any) => void | boolean | Promise) => void; }; afterRouteCallbacks: { add: (callback: (ctx: RouteContext, routerItem: RouterItem, requestBody: any) => void | Promise) => () => void; callbacks: ((ctx: RouteContext, routerItem: RouterItem, requestBody: any) => void | Promise)[]; reset: () => void; remove: (callBack: (ctx: RouteContext, routerItem: RouterItem, requestBody: any) => void | Promise) => void; }; addControllers(controllers: Map): void; private registerCustomRoute; private registerGlobalRoute; }