///
import { Server } from 'http';
import { Emitter } from '../services/events/types';
import { Logger } from '../services/logger/types';
import { ElixirLoader } from '../utils/Loader';
import { Core, ElixirConf, VisionConfig, VisionElixirEnvironment } from './types';
export declare class Vision {
protected core: Core;
protected visionConfig: VisionConfig;
protected elixirConfig: ElixirConf;
protected loader: ElixirLoader;
protected server: Server;
protected isServed: boolean;
protected logger: Logger;
protected emitter: Emitter;
constructor(config?: VisionConfig);
protected errored(error: Error): Vision;
protected served(): Vision;
create(config: VisionConfig): Vision;
createLogger(loader: ElixirLoader): Logger;
protected loadAppBoot(): Vision;
protected loadAppEvents(): Vision;
protected configureMiddleware(): Vision;
getCore(): Core;
getConfig(environment: VisionElixirEnvironment.VISION): VisionConfig;
getConfig(environment: VisionElixirEnvironment.ELIXIR): ElixirConf;
getConfig(): VisionConfig;
getEmitter(): Emitter;
getLoader(): ElixirLoader;
getStatus(): boolean;
up(): Promise;
down: () => Promise;
}