/**
 * The Gateway model module.
 * @module Ntnx/Gateway
 * @version 4.0.1
 * @class Gateway
 * @extends NetworkingBaseModel
 */
export default class Gateway extends NetworkingBaseModel {
    /**
     * Returns Name of the gateway.
     * @return {string}
     */
    getName(): string;
    /**
     * Sets Name of the gateway.
     * @param {string} name Name of the gateway.
     */
    setName(name: string): void;
    name: string;
    /**
     * Returns Description of the gateway.
     * @return {string}
     */
    getDescription(): string;
    /**
     * Sets Description of the gateway.
     * @param {string} description Description of the gateway.
     */
    setDescription(description: string): void;
    description: string;
    /**
     * Returns VPC
     * @return {string}
     */
    getVpcReference(): string;
    /**
     * Sets VPC
     * @param {string} vpcReference VPC
     */
    setVpcReference(vpcReference: string): void;
    vpcReference: string;
    /**
     * Returns Cloud network on which network gateway is deployed.
     * @return {string}
     */
    getCloudNetworkReference(): string;
    /**
     * Sets Cloud network on which network gateway is deployed.
     * @param {string} cloudNetworkReference Cloud network on which network gateway is deployed.
     */
    setCloudNetworkReference(cloudNetworkReference: string): void;
    cloudNetworkReference: string;
    /**
     * Returns Software version installed on the gateway appliance.
     * @return {string}
     */
    getInstalledSoftwareVersion(): string;
    /**
     * Sets Software version installed on the gateway appliance.
     * @param {string} installedSoftwareVersion Software version installed on the gateway appliance.
     */
    setInstalledSoftwareVersion(installedSoftwareVersion: string): void;
    installedSoftwareVersion: string;
    /**
     * Returns Supported gateway appliance version.
     * @return {string}
     */
    getSupportedSoftwareVersion(): string;
    /**
     * Sets Supported gateway appliance version.
     * @param {string} supportedSoftwareVersion Supported gateway appliance version.
     */
    setSupportedSoftwareVersion(supportedSoftwareVersion: string): void;
    supportedSoftwareVersion: string;
    /**
     * Returns Reference to a dedicated VM on which a local gateway is deployed.
     * @return {string}
     */
    getVmReference(): string;
    /**
     * Sets Reference to a dedicated VM on which a local gateway is deployed.
     * @param {string} vmReference Reference to a dedicated VM on which a local gateway is deployed.
     */
    setVmReference(vmReference: string): void;
    vmReference: string;
    /**
     * @return {GatewayDeployment}
     */
    getDeployment(): GatewayDeployment;
    /**
     * @param {GatewayDeployment} deployment
     */
    setDeployment(deployment: GatewayDeployment): void;
    deployment: GatewayDeployment;
    /**
     * Returns Third-party gateway vendor.
     * @return {string}
     */
    getGatewayDeviceVendor(): string;
    /**
     * Sets Third-party gateway vendor.
     * @param {string} gatewayDeviceVendor Third-party gateway vendor.
     */
    setGatewayDeviceVendor(gatewayDeviceVendor: string): void;
    gatewayDeviceVendor: string;
    /**
     * Returns Local or remote gateway service type.
     * @return {LocalNetworkServices | RemoteNetworkServices}
     */
    getServices(): LocalNetworkServices | RemoteNetworkServices;
    /**
     * Sets Local or remote gateway service type.
     * @param {LocalNetworkServices | RemoteNetworkServices} services Local or remote gateway service type.
     */
    setServices(services: LocalNetworkServices | RemoteNetworkServices): void;
    services: LocalNetworkServices | RemoteNetworkServices;
    /**
     * @return {Status}
     */
    getStatus(): Status;
    /**
     * @param {Status} status
     */
    setStatus(status: Status): void;
    status: Status;
    /**
     * @return {Vpc}
     */
    getVpc(): Vpc;
    /**
     * @param {Vpc} vpc
     */
    setVpc(vpc: Vpc): void;
    vpc: Vpc;
    /**
     * @return {Vm}
     */
    getVm(): Vm;
    /**
     * @param {Vm} vm
     */
    setVm(vm: Vm): void;
    vm: Vm;
    toJson(forMutation: any): {
        $reserved: any;
        $objectType: string;
        $unknownFields: any;
        tenantId?: string;
        links?: {
            $reserved: any;
            $objectType: string;
            $unknownFields: any;
            rel?: string;
            href?: string;
        }[];
        extId?: string;
        metadata?: {
            $reserved: any;
            $objectType: string;
            $unknownFields: any;
            categoryIds?: string[];
            projectName?: string;
            projectReferenceId?: string;
            ownerUserName?: string;
            ownerReferenceId?: string;
        };
        vm?: {
            $reserved: any;
            $objectType: string;
            $unknownFields: any;
            name?: string;
        };
        vpc?: {
            $reserved: any;
            $objectType: string;
            $unknownFields: any;
            tenantId?: string;
            links?: {
                $reserved: any;
                $objectType: string;
                $unknownFields: any;
                rel?: string;
                href?: string;
            }[];
            extId?: string;
            metadata?: {
                $reserved: any;
                $objectType: string;
                $unknownFields: any;
                categoryIds?: string[];
                projectName?: string;
                projectReferenceId?: string;
                ownerUserName?: string;
                ownerReferenceId?: string;
            };
            externallyRoutablePrefixes?: {
                $reserved: any;
                $objectType: string;
                $unknownFields: any;
                ipv6?: {
                    $reserved: any;
                    $objectType: string;
                    $unknownFields: any;
                    prefixLength?: number;
                    ip?: {
                        $reserved: any;
                        $objectType: string;
                        $unknownFields: any;
                        prefixLength?: number;
                        value?: string;
                    };
                };
                ipv4?: {
                    $reserved: any;
                    $objectType: string;
                    $unknownFields: any;
                    prefixLength?: number;
                    ip?: {
                        $reserved: any;
                        $objectType: string;
                        $unknownFields: any;
                        prefixLength?: number;
                        value?: string;
                    };
                };
            }[];
            externalRoutingDomainReference?: string;
            externalSubnets?: {
                $reserved: any;
                $objectType: string;
                $unknownFields: any;
                activeGatewayCount?: number;
                activeGatewayNodes?: {
                    $reserved: any;
                    $objectType: string;
                    $unknownFields: any;
                    nodeIpAddress?: {
                        $reserved: any;
                        $objectType: string;
                        $unknownFields: any;
                        ipv6?: {
                            $reserved: any;
                            $objectType: string;
                            $unknownFields: any;
                            prefixLength?: number;
                            value?: string;
                        };
                        ipv4?: {
                            $reserved: any;
                            $objectType: string;
                            $unknownFields: any;
                            prefixLength?: number;
                            value?: string;
                        };
                    };
                    nodeId?: string;
                }[];
                gatewayNodes?: string[];
                externalIps?: {
                    $reserved: any;
                    $objectType: string;
                    $unknownFields: any;
                    ipv6?: {
                        $reserved: any;
                        $objectType: string;
                        $unknownFields: any;
                        prefixLength?: number;
                        value?: string;
                    };
                    ipv4?: {
                        $reserved: any;
                        $objectType: string;
                        $unknownFields: any;
                        prefixLength?: number;
                        value?: string;
                    };
                }[];
                subnetReference?: string;
            }[];
            snatIps?: {
                $reserved: any;
                $objectType: string;
                $unknownFields: any;
                ipv6?: {
                    $reserved: any;
                    $objectType: string;
                    $unknownFields: any;
                    prefixLength?: number;
                    value?: string;
                };
                ipv4?: {
                    $reserved: any;
                    $objectType: string;
                    $unknownFields: any;
                    prefixLength?: number;
                    value?: string;
                };
            }[];
            commonDhcpOptions?: {
                $reserved: any;
                $objectType: string;
                $unknownFields: any;
                domainNameServers?: {
                    $reserved: any;
                    $objectType: string;
                    $unknownFields: any;
                    ipv6?: {
                        $reserved: any;
                        $objectType: string;
                        $unknownFields: any;
                        prefixLength?: number;
                        value?: string;
                    };
                    ipv4?: {
                        $reserved: any;
                        $objectType: string;
                        $unknownFields: any;
                        prefixLength?: number;
                        value?: string;
                    };
                }[];
            };
            vpcType?: string;
            description?: string;
            name?: string;
        };
        status?: {
            $reserved: any;
            $objectType: string;
            $unknownFields: any;
            state?: string;
            message?: string;
        };
        services?: any;
        gatewayDeviceVendor?: string;
        deployment?: {
            $reserved: any;
            $objectType: string;
            $unknownFields: any;
            vcenterDatastoreName?: string;
            interfaces?: {
                $reserved: any;
                $objectType: string;
                $unknownFields: any;
                mtu?: number;
                macAddress?: string;
                defaultGatewayAddress?: {
                    $reserved: any;
                    $objectType: string;
                    $unknownFields: any;
                    ipv6?: {
                        $reserved: any;
                        $objectType: string;
                        $unknownFields: any;
                        prefixLength?: number;
                        value?: string;
                    };
                    ipv4?: {
                        $reserved: any;
                        $objectType: string;
                        $unknownFields: any;
                        prefixLength?: number;
                        value?: string;
                    };
                };
                ipAddress?: {
                    $reserved: any;
                    $objectType: string;
                    $unknownFields: any;
                    ipv6?: {
                        $reserved: any;
                        $objectType: string;
                        $unknownFields: any;
                        prefixLength?: number;
                        value?: string;
                    };
                    ipv4?: {
                        $reserved: any;
                        $objectType: string;
                        $unknownFields: any;
                        prefixLength?: number;
                        value?: string;
                    };
                };
                subnetReference?: string;
            }[];
            managementInterface?: {
                $reserved: any;
                $objectType: string;
                $unknownFields: any;
                mtu?: number;
                defaultGateway?: {
                    $reserved: any;
                    $objectType: string;
                    $unknownFields: any;
                    ipv6?: {
                        $reserved: any;
                        $objectType: string;
                        $unknownFields: any;
                        prefixLength?: number;
                        value?: string;
                    };
                    ipv4?: {
                        $reserved: any;
                        $objectType: string;
                        $unknownFields: any;
                        prefixLength?: number;
                        value?: string;
                    };
                };
                address?: {
                    $reserved: any;
                    $objectType: string;
                    $unknownFields: any;
                    ipv6?: {
                        $reserved: any;
                        $objectType: string;
                        $unknownFields: any;
                        prefixLength?: number;
                        value?: string;
                    };
                    ipv4?: {
                        $reserved: any;
                        $objectType: string;
                        $unknownFields: any;
                        prefixLength?: number;
                        value?: string;
                    };
                };
                vlanId?: number;
                subnetReference?: string;
            };
            clusterReference?: string;
        };
        vmReference?: string;
        supportedSoftwareVersion?: string;
        installedSoftwareVersion?: string;
        cloudNetworkReference?: string;
        vpcReference?: string;
        description?: string;
        name?: string;
    };
    #private;
}
import NetworkingBaseModel from "./NetworkingBaseModel";
import GatewayDeployment from "./GatewayDeployment";
import LocalNetworkServices from "./LocalNetworkServices";
import RemoteNetworkServices from "./RemoteNetworkServices";
import Status from "./Status";
import Vpc from "./Vpc";
import Vm from "./Vm";
