///
import { Application, Router } from "express";
import { Container } from "inversify";
import { IControllerFactory, IControllerRegistry, ITravelAgentServer, IRoute } from "../interfaces";
import { IMiddlewareProvider } from "../middleware/middlewareProvider";
export default class TravelAgentServer implements ITravelAgentServer {
app: Application;
container: Container;
controllerFactory: IControllerFactory;
controllerRegistry: IControllerRegistry;
middlewareResolver: IMiddlewareProvider;
routes: IRoute[];
private defaultRouter;
private cwd;
private isProdEnv;
constructor(express: Application, expressRouter: Router, middlewareResolver: IMiddlewareProvider, controllerFactory: IControllerFactory, controllerRegistry: IControllerRegistry, cwd: string, isProdEnv: boolean);
use(...args: any[]): Application;
setup(): void;
postSetup(): void;
bind(...args: any[]): any;
addModules(): void;
private buildRouteObjects(controller);
private addDefaultRoute(router);
private createDefaultRoute(method);
private createViewEngine();
}