import Koa from 'koa'; import { SendOptions } from 'koa-send'; import './lib/DataTypes'; import { Middleware } from './lib/Middleware'; import { Constructor } from './types/Constructor'; import { AppModule } from './lib/AppModule'; export interface IModuleLoaderConfig { path: string; pattern: string | string[]; ignore?: string[]; } export interface IModuleLoaderOptions { path?: string; pattern?: string | string[]; ignore?: string | string[]; } export declare type IPlugin = (luren: Luren) => void; export interface LurenOptions { disableResponseConversion?: boolean; } export declare class Luren extends Koa { private _workDir; private _appModule; private _router; private _routerMounted; constructor(options?: LurenOptions); setWorkDirectory(dir: string): void; register(...controllers: (Constructor | object)[]): void; getAppModule(): AppModule; plugin(...plugins: IPlugin[]): void; rebuildRoutes(): void; useMiddleware(...middleware: (Constructor | Middleware)[]): this; useGuards(...guards: (Constructor | Middleware)[]): this; serve(path: string, options: SendOptions): void; serve(options: SendOptions): void; loadMiddlewareModules(options?: IModuleLoaderOptions): Promise; loadBootModules(options?: IModuleLoaderOptions): Promise; loadControllerModules(options?: IModuleLoaderOptions): Promise; private _mountRouter; }