export interface DockerMachineDriverOptionsBase {
    nodeCount: number;
    nodeName: string;
    engineLabels: {
        role: string;
        affinity: string;
    };
}
export interface DockerMachineDriverOptions extends DockerMachineDriverOptionsBase {
    driver: string;
    engineInsecureRegistry: string;
}
export interface DockerMachineDriverOptions_vmwarevsphere extends DockerMachineDriverOptions {
    vmwarevsphereUsername: string;
    vmwarevspherePassword: string;
    vmwarevsphereCpuCount: number;
    vmwarevsphereDiskSize: number;
    vmwarevsphereMemorySize: number;
    vmwarevsphereVcenter: string;
}
export interface DockerMachineDriverOptions_virtualbox extends DockerMachineDriverOptions {
    virtualboxCpuCount: number;
    virtualboxMemory: number;
}
export interface DockerMachineDriverOptions_openstack extends DockerMachineDriverOptions {
    openstackUsername: string;
    openstackPassword: string;
    openstackAuthUrl: string;
    openstackFlavorId: string;
    openstackImageId: string;
    openstackSecGroups: string;
    openstackSshUser: string;
    openstackFloatingipPool: string;
    openstackTenantName: string;
}
export interface DockerMachineDriverOptions_amazonec2 extends DockerMachineDriverOptions {
    amazonec2AccessKey: string;
    amazonec2Ami: string;
    amazonec2BlockDurationMinutes: string;
    amazonec2DeviceName: string;
    amazonec2Endpoint: string;
    amazonec2IamInstanceProfile: string;
    amazonec2InsecureTransport: string;
    amazonec2InstanceType: string;
    amazonec2KeypairName: string;
    amazonec2Monitoring: string;
    amazonec2OpenPort: string;
    amazonec2PrivateAddressOnly: string;
    amazonec2Region: string;
    amazonec2RequestSpotInstance: string;
    amazonec2Retries: string;
    amazonec2RootSize: string;
    amazonec2SecretKey: string;
    amazonec2SecurityGroup: string;
    amazonec2SessionToken: string;
    amazonec2SpotPrice: string;
    amazonec2SshKeypath: string;
    amazonec2SshUser: string;
    amazonec2SubnetId: string;
    amazonec2Tags: string;
    amazonec2UseEbsOptimizedInstance: string;
    amazonec2UsePrivateAddress: string;
    amazonec2Userdata: string;
    amazonec2VolumeType: string;
    amazonec2VpcId: string;
    amazonec2Zone: string;
}
export interface DockerServiceDescription {
    image: string;
    deploy: {
        labels: string[];
    };
}
export interface DockerVolumeDescription {
    driver: string;
    driver_opts: {
        type: string;
        device: string;
        o: string;
    };
}
export interface DockerComposeYaml {
    services: any;
    volumes: any;
}
export interface NfsConfig {
    nfsUser: string;
    nfsPassword?: string;
    nfsSshKeyPath?: string;
    nfsSshPort?: number;
    exportBaseDir: string;
    serverAddr: string;
    options: string;
}
export interface DockerStackConfigTemplate {
    stackName: string;
    clusterPrefix: string;
    hostMachineDnsServer: string;
    defaultDockerRegistry: string;
    defaultDockerImageTag: string;
    traefikZoneName: string;
    nfsConfig?: NfsConfig;
    dockerComposeYaml: DockerComposeYaml;
    dockerMachineDriverOptions: DockerMachineDriverOptions;
    dockerMachines: {
        common: any;
        manager: DockerMachineDriverOptionsBase;
        workers: DockerMachineDriverOptionsBase[];
    };
}
export declare class DockerDescriptors {
    static dockerContainerConfigTemplate: ({
        name: string;
        Image: string;
        DockerFilePath: string;
        Hostname: string;
        HostConfig: {
            Links?: undefined;
            PortBindings?: undefined;
        };
        ExpressApps?: undefined;
    } | {
        name: string;
        Image: string;
        DockerFilePath: string;
        Hostname: string;
        HostConfig: {
            Links: string[];
            PortBindings: {
                '3001/tcp': {
                    HostPort: string;
                }[];
                '8701/tcp': {
                    HostPort: string;
                }[];
                '3002/tcp'?: undefined;
                '3003/tcp'?: undefined;
            };
        };
        ExpressApps: {
            GitUrl: string;
            GitSrcBranchName: string;
            StrongLoopBranchName: string;
            StrongLoopServerUrl: string;
            ServiceName: string;
        }[];
    } | {
        name: string;
        Image: string;
        DockerFilePath: string;
        Hostname: string;
        HostConfig: {
            Links: string[];
            PortBindings: {
                '3001/tcp': {
                    HostPort: string;
                }[];
                '3002/tcp': {
                    HostPort: string;
                }[];
                '3003/tcp': {
                    HostPort: string;
                }[];
                '8701/tcp': {
                    HostPort: string;
                }[];
            };
        };
        ExpressApps: {
            GitUrl: string;
            GitSrcBranchName: string;
            StrongLoopBranchName: string;
            StrongLoopServerUrl: string;
            ServiceName: string;
            DoBowerInstall: boolean;
            ClusterSize: number;
            EnvironmentVariables: {
                PORT: number;
                NODE_ENV: string;
            };
            Scripts: {
                StopDeployOnFailure: boolean;
                RelativeWorkingDir: string;
                Command: string;
                Args: string[];
            }[];
        }[];
    })[];
    static dockerContainerDefaultDescriptor: {
        "Hostname": string;
        "Domainname": string;
        "User": string;
        "AttachStdin": boolean;
        "AttachStdout": boolean;
        "AttachStderr": boolean;
        "Tty": boolean;
        "OpenStdin": boolean;
        "StdinOnce": boolean;
        "Env": string[];
        "Cmd": any[];
        "Entrypoint": string;
        "Image": string;
        "Labels": {
            "com.example.vendor": string;
            "com.example.license": string;
            "com.example.version": string;
        };
        "Mounts": {
            "Name": string;
            "Source": string;
            "Destination": string;
            "Driver": string;
            "Mode": string;
            "RW": boolean;
            "Propagation": string;
        }[];
        "WorkingDir": string;
        "NetworkDisabled": boolean;
        "MacAddress": string;
        "ExposedPorts": {
            "22/tcp": {};
        };
        "StopSignal": string;
        "HostConfig": {
            "Binds": string[];
            "Links": string[];
            "Memory": number;
            "MemorySwap": number;
            "MemoryReservation": number;
            "KernelMemory": number;
            "CpuShares": number;
            "CpuPeriod": number;
            "CpuQuota": number;
            "CpusetCpus": string;
            "CpusetMems": string;
            "BlkioWeight": number;
            "BlkioWeightDevice": {}[];
            "BlkioDeviceReadBps": {}[];
            "BlkioDeviceReadIOps": {}[];
            "BlkioDeviceWriteBps": {}[];
            "BlkioDeviceWriteIOps": {}[];
            "MemorySwappiness": number;
            "OomKillDisable": boolean;
            "OomScoreAdj": number;
            "PortBindings": {
                "22/tcp": {
                    "HostPort": string;
                }[];
            };
            "PublishAllPorts": boolean;
            "Privileged": boolean;
            "ReadonlyRootfs": boolean;
            "Dns": string[];
            "DnsOptions": string[];
            "DnsSearch": string[];
            "ExtraHosts": any;
            "VolumesFrom": string[];
            "CapAdd": string[];
            "CapDrop": string[];
            "GroupAdd": string[];
            "RestartPolicy": {
                "Name": string;
                "MaximumRetryCount": number;
            };
            "NetworkMode": string;
            "Devices": any[];
            "Ulimits": {}[];
            "LogConfig": {
                "Type": string;
                "Config": {};
            };
            "SecurityOpt": string[];
            "CgroupParent": string;
            "VolumeDriver": string;
            "ShmSize": number;
        };
    };
    static dockerContainerDefaultTemplate: {
        "Hostname": string;
        "Domainname": string;
        "User": string;
        "AttachStdin": boolean;
        "AttachStdout": boolean;
        "AttachStderr": boolean;
        "Tty": boolean;
        "OpenStdin": boolean;
        "StdinOnce": boolean;
        "Env": string[];
        "Cmd": any[];
        "Entrypoint": string;
        "Image": string;
        "Labels": {
            "com.example.vendor": string;
            "com.example.license": string;
            "com.example.version": string;
        };
        "Mounts": {
            "Name": string;
            "Source": string;
            "Destination": string;
            "Driver": string;
            "Mode": string;
            "RW": boolean;
            "Propagation": string;
        }[];
        "WorkingDir": string;
        "NetworkDisabled": boolean;
        "MacAddress": string;
        "ExposedPorts": {
            "22/tcp": {};
        };
        "StopSignal": string;
        "HostConfig": {
            "Binds": string[];
            "Links": string[];
            "Memory": number;
            "MemorySwap": number;
            "MemoryReservation": number;
            "KernelMemory": number;
            "CpuShares": number;
            "CpuPeriod": number;
            "CpuQuota": number;
            "CpusetCpus": string;
            "CpusetMems": string;
            "BlkioWeight": number;
            "BlkioWeightDevice": {}[];
            "BlkioDeviceReadBps": {}[];
            "BlkioDeviceReadIOps": {}[];
            "BlkioDeviceWriteBps": {}[];
            "BlkioDeviceWriteIOps": {}[];
            "MemorySwappiness": number;
            "OomKillDisable": boolean;
            "OomScoreAdj": number;
            "PortBindings": {
                "22/tcp": {
                    "HostPort": string;
                }[];
            };
            "PublishAllPorts": boolean;
            "Privileged": boolean;
            "ReadonlyRootfs": boolean;
            "Dns": string[];
            "DnsOptions": string[];
            "DnsSearch": string[];
            "ExtraHosts": any;
            "VolumesFrom": string[];
            "CapAdd": string[];
            "CapDrop": string[];
            "GroupAdd": string[];
            "RestartPolicy": {
                "Name": string;
                "MaximumRetryCount": number;
            };
            "NetworkMode": string;
            "Devices": any[];
            "Ulimits": {}[];
            "LogConfig": {
                "Type": string;
                "Config": {};
            };
            "SecurityOpt": string[];
            "CgroupParent": string;
            "VolumeDriver": string;
            "ShmSize": number;
        };
    }[];
}
