import { Server } from 'node:net';
export default class BuildHost {
    private static readonly _BUILD_HOST_APP_CONFIG_SCOPE_NAME;
    private static readonly _CLOUD_APP_CONFIG_SCOPE_NAME;
    private static readonly _PRIVATE_KEY_FILE_NAME;
    private static instance?;
    private readonly _DOCKER_LOCAL_HOST;
    private readonly _DOCKER_REMOTE_HOST;
    private readonly _DOCKER_REMOTE_PORT;
    private readonly _SSH_USERNAME;
    private readonly cloudApiToken;
    private readonly cloudClient?;
    private readonly cloudUsername;
    private dockerLocalPort?;
    private environmentId?;
    private privateKey?;
    private publicKey?;
    private sshHost?;
    private sshPort?;
    private tunnel?;
    private constructor();
    static get(): Promise<BuildHost>;
    createTunnel(): Promise<void>;
    destroy(force?: boolean): Promise<void>;
    getDockerLocalHost(): string;
    getDockerLocalPort(): number | undefined;
    getEnvironmentId(): string | undefined;
    getForwardConfig(): {
        dstAddr: string;
        dstPort: number;
    };
    getSshConfig(): {
        host: string | undefined;
        port: number | undefined;
        privateKey: string | undefined;
        username: string;
    };
    getTunnel(): Server | undefined;
    isProvisioned(): boolean;
    provision(region: string): Promise<void>;
    start(): Promise<void>;
    stop(): Promise<void>;
    suspend(): Promise<void>;
    private flushToConfig;
    private getCloudClient;
}
