import express from 'express';
import http from 'http';
import { Container } from 'inversify';
import { AddressInfo } from 'net';
import { Server as SocketIoServer } from 'socket.io';
import { ApplicationRouter, QueryRouter, RuntimeRouter } from './Setups';
import { FetchAndLockRouter } from './Setups/FetchAndLock';
import { IamService } from './Tools/Iam/index';
export declare class EngineServer {
    app: express.Application;
    httpServer: http.Server;
    private config?;
    private _socketServer;
    private applicationRouter;
    private fetchAndLockRouter;
    private queryRouter;
    private runtimeRouter;
    private iamService;
    private container;
    private expressLogger;
    constructor(applicationRouter: ApplicationRouter, runtimeRouter: RuntimeRouter, queryRouter: QueryRouter, fetchAndLockRouter: FetchAndLockRouter, container: Container, iamService: IamService);
    get socketIoServer(): SocketIoServer;
    getHttpAddress(): AddressInfo;
    initialize(): Promise<void>;
    start(): Promise<void>;
    close(): Promise<void>;
    dispose(): Promise<void>;
    resumeProcessInstances(): Promise<void>;
    private initializeService;
    private initializeServer;
    protected initializeMiddlewareBeforeRouters(): Promise<void> | void;
    private initializeMiddlewareAfterRouters;
    private initializeRouter;
    private initSocketIo;
    private closeSockets;
    private closeHttpEndpoints;
    private disposeServices;
    private ensureHasClaim;
}
