import { ConfigInterface, EventListener } from './types/config'; import { RouteDrawer } from './routes/route_drawer'; import express = require('express'); import { Database } from './databases/database'; declare class App { app: express.Express; server: any; protected booted: boolean; protected initCompleted: boolean; protected routes: Function; protected routeDrawer: RouteDrawer; protected databaseConfigs: any; protected databases: Database[]; protected userServiceClass: any; protected useViewEngine: boolean; protected useDefaultLogger: boolean; protected viewEngine: string | undefined; protected viewsPaths: (string | undefined)[]; protected errorView: string | undefined; protected modules: Function[]; protected eventListenerMap: EventListener[]; protected hooks: { 'butterfly:setup': never[]; 'butterfly:ready': never[]; 'butterfly:registerEventListener': never[]; 'butterfly:registerViewPaths': never[]; 'butterfly:registerMiddlewares': never[]; 'butterfly:drawRoutes': never[]; 'butterfly:onError': never[]; }; constructor(config: ConfigInterface); init(): Promise; boot(): Promise; hook(name: string, handler: Function): void; close(): Promise; closeDatabases(): Promise; buildMiddleware(middleware: any): any; useMiddlewares(middlewares: any): void; protected bootModules(): Promise; protected executeHookHandlers(name: any, ...args: any[]): Promise; protected registerEventListener(): Promise; protected setup(): Promise; protected connectDatabases(): Promise; protected registerMiddlewares(): Promise; protected registerErrorMiddleware(): Promise; protected drawRoutes(): Promise; } export default App; export declare const Butterfly: typeof App;