///
import { TypeORMDatabase } from '@rondo.dev/db-typeorm';
import { Namespace } from 'cls-hooked';
import { Server } from 'http';
import { AddressInfo } from 'net';
import { Application } from './Application';
import { Bootstrap } from './Bootstrap';
import { Config } from './Config';
import { ServerConfigurator } from './configureServer';
export interface ServerBootstrapParams {
readonly config: Config;
readonly configureServer: ServerConfigurator;
readonly namespace?: Namespace;
readonly exit?: (code: number) => void;
readonly entities?: object;
readonly migrations?: object;
}
export declare class ServerBootstrap implements Bootstrap {
protected config: Config;
protected configureServer: ServerConfigurator;
protected namespace: Namespace;
protected exit: (code: number) => void;
protected server?: Server;
protected inUse: boolean;
readonly application: Application;
readonly database: TypeORMDatabase;
constructor(params: ServerBootstrapParams);
getConfig(): Config;
protected createDatabase(): TypeORMDatabase;
protected createApplication(database: TypeORMDatabase): Application;
listen(port?: number | string | undefined, hostname?: string | undefined): Promise;
startCluster(workers: number, port?: number | string, hostname?: string): Promise;
protected start(port?: number | string | undefined, hostname?: string): Promise;
getAddress(): AddressInfo | string;
close(): Promise;
}
//# sourceMappingURL=ServerBootstrap.d.ts.map