import { Context, Next } from 'koa'; import { HttpMethod } from '../constants'; import { AppModule } from './AppModule'; import { List } from 'immutable'; import { ControllerModule } from './ControllerModule'; import { ActionModule } from '.'; import { Middleware } from './Middleware'; export declare class Route { actionModule: ActionModule; method: HttpMethod; path: string; pathRegExp: RegExp; pathParams: (string | number)[]; stack: List<(ctx: Context, next: Next) => Promise>; constructor(actionModule: ActionModule); match(method: HttpMethod, path: string): boolean; execute(ctx: Context, externalNext: Next): Promise; } export declare class Router extends Middleware { private _routes; appModule: AppModule; constructor(appModule: AppModule); execute(ctx: Context, next: Next): Promise; dispatch(ctx: Context, next: Next): Promise; registerController(controllerModule: ControllerModule): void; rebuildRoutes(): void; }