import { ValidatorOptions } from 'class-validator'; export interface KoaControllerOptions { controllers: Array; basePath?: string; versions?: Array | { [key: string]: string | boolean; }; disableVersioning?: boolean; router: any; flow?: Array; errorHandler?: Function; attachRoutes?: boolean; validatorOptions?: ValidatorOptions; enableOpenApi?: boolean; openApiPath?: string; openApiInfo?: { title: string; version: string; }; } export declare let options: KoaControllerOptions; export declare const metadata: { controllers: {}; }; export interface ControllerCodex { [k: string]: { actions: { [ak: string]: { flow?: Array; verb: string; path: string; target: Function; argumentTypes?: Array; }; }; path: string | string[]; class: any; }; } export declare function getControllers(): ControllerCodex; export declare const controllers: {}; /** * * @param app - Koa instance * @param params - KoaControllerOptions */ export declare const bootstrapControllers: (app: any, params: KoaControllerOptions) => Promise; export * from 'class-validator'; export * from 'class-transformer'; export { Body, Controller, Ctx, Delete, Flow, Get, Header, CurrentUser, Params, Patch, Post, Put, Query, Req, Res, Session, State, Version } from './decorators';