import { Action } from '../../Action'; import { ActionMetadata } from '../../metadata/ActionMetadata'; import { BaseDriver } from '../BaseDriver'; import { MiddlewareMetadata } from '../../metadata/MiddlewareMetadata'; import { ParamMetadata } from '../../metadata/ParamMetadata'; import { UseMetadata } from '../../metadata/UseMetadata'; import { RoutingControllersOptions } from '../../index'; import { Callable } from '../../types/Types'; /** * Integration with koa framework. */ export declare class KoaDriver extends BaseDriver { koa: any; router: any; constructor(); setApp(koa?: any): Promise; /** * Initializes the things driver needs before routes and middleware registration. */ initialize(options: RoutingControllersOptions): Promise; /** * Registers middleware that run before controller actions. */ registerMiddleware(middleware: MiddlewareMetadata): void; /** * Registers action in the driver. */ registerAction(actionMetadata: ActionMetadata, executeCallback: (options: Action) => any): Promise; /** * Registers all routes in the framework. */ registerRoutes(): void; /** * Gets param from the request. */ getParamFromRequest(actionOptions: Action, param: ParamMetadata): any; /** * Handles result of successfully executed controller action. */ handleSuccess(result: any, action: ActionMetadata, options: Action): void; /** * Handles result of failed executed controller action. */ handleError(error: any, action: ActionMetadata | undefined, options: Action): Promise; /** * Creates middlewares from the given "use"-s. */ protected prepareMiddlewares(uses: UseMetadata[]): Callable[]; /** * Dynamically loads koa module. */ protected loadKoa(): Promise; /** * Dynamically loads @koa/router module. */ private loadRouter; /** * Dynamically loads @koa/multer module. */ private loadMulter; }