export type TDcRouterMode = 'managed' | 'external' | 'disabled';
export interface IManagedDcRouterStatus {
    mode: TDcRouterMode;
    configured: boolean;
    running: boolean;
    healthy: boolean;
    containerId?: string;
    image: string;
    gatewayUrl: string;
    opsPort: number;
    httpPort: number;
    httpsPort: number;
    message?: string;
}
export declare class ManagedDcRouterManager {
    private oneboxRef;
    private database;
    private dockerClient;
    constructor(oneboxRef: any);
    getMode(): Promise<TDcRouterMode>;
    getImage(): Promise<string>;
    getOpsPort(): Promise<number>;
    getHttpPort(): Promise<number>;
    getHttpsPort(): Promise<number>;
    getDataDir(): Promise<string>;
    getGatewayUrl(): Promise<string>;
    getRouteTarget(): {
        host: string;
        port: number;
    };
    ensureGatewayClientId(): Promise<string>;
    getAdminToken(): Promise<string>;
    prepareGatewaySettings(): Promise<void>;
    init(): Promise<void>;
    start(options?: {
        recreate?: boolean;
    }): Promise<IManagedDcRouterStatus>;
    stop(): Promise<IManagedDcRouterStatus>;
    restart(): Promise<IManagedDcRouterStatus>;
    getStatus(): Promise<IManagedDcRouterStatus>;
    private ensureDockerClient;
    private parsePort;
    private getAbsoluteDataDir;
    private createContainer;
    private writeManagedConfig;
    private getExistingContainer;
    private isContainerRunning;
    private startContainer;
    private stopContainer;
    private removeExistingContainer;
    private checkHealthy;
    private waitForReady;
}
