/**
 * The Vpc model module.
 * @module Ntnx/Vpc
 * @version 4.0.1
 * @class Vpc
 * @extends NetworkingBaseModel
 */
export default class Vpc extends NetworkingBaseModel {
    /**
     * Returns Name of the VPC.
     * @return {string}
     */
    getName(): string;
    /**
     * Sets Name of the VPC.
     * @param {string} name Name of the VPC.
     */
    setName(name: string): void;
    name: string;
    /**
     * Returns Description of the VPC.
     * @return {string}
     */
    getDescription(): string;
    /**
     * Sets Description of the VPC.
     * @param {string} description Description of the VPC.
     */
    setDescription(description: string): void;
    description: string;
    /**
     * @return {VpcType}
     */
    getVpcType(): VpcType;
    /**
     * @param {VpcType} vpcType
     */
    setVpcType(vpcType: VpcType): void;
    vpcType: string;
    /**
     * @return {VpcDhcpOptions}
     */
    getCommonDhcpOptions(): VpcDhcpOptions;
    /**
     * @param {VpcDhcpOptions} commonDhcpOptions
     */
    setCommonDhcpOptions(commonDhcpOptions: VpcDhcpOptions): void;
    commonDhcpOptions: VpcDhcpOptions;
    /**
     * Returns List of IP Addresses used for SNAT.
     * @return {IPAddress[]}
     */
    getSnatIps(): IPAddress[];
    /**
     * Sets List of IP Addresses used for SNAT.
     * @param {IPAddress[]} snatIps List of IP Addresses used for SNAT.
     */
    setSnatIps(snatIps: IPAddress[]): void;
    snatIps: IPAddress[];
    /**
     * Returns List of external subnets that the VPC is attached to.
     * @return {ExternalSubnet[]}
     */
    getExternalSubnets(): ExternalSubnet[];
    /**
     * Sets List of external subnets that the VPC is attached to.
     * @param {ExternalSubnet[]} externalSubnets List of external subnets that the VPC is attached to.
     */
    setExternalSubnets(externalSubnets: ExternalSubnet[]): void;
    externalSubnets: ExternalSubnet[];
    /**
     * Returns External routing domain associated with this route table
     * @return {string}
     */
    getExternalRoutingDomainReference(): string;
    /**
     * Sets External routing domain associated with this route table
     * @param {string} externalRoutingDomainReference External routing domain associated with this route table
     */
    setExternalRoutingDomainReference(externalRoutingDomainReference: string): void;
    externalRoutingDomainReference: string;
    /**
     * Returns CIDR blocks from the VPC which can talk externally without performing NAT. This is applicable when connecting to external subnets which have disabled NAT.
     * @return {IPSubnet[]}
     */
    getExternallyRoutablePrefixes(): IPSubnet[];
    /**
     * Sets CIDR blocks from the VPC which can talk externally without performing NAT. This is applicable when connecting to external subnets which have disabled NAT.
     * @param {IPSubnet[]} externallyRoutablePrefixes CIDR blocks from the VPC which can talk externally without performing NAT. This is applicable when connecting to external subnets which have disabled NAT.
     */
    setExternallyRoutablePrefixes(externallyRoutablePrefixes: IPSubnet[]): void;
    externallyRoutablePrefixes: IPSubnet[];
    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;
        };
        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;
    };
    #private;
}
import NetworkingBaseModel from "./NetworkingBaseModel";
import VpcType from "./VpcType";
import VpcDhcpOptions from "./VpcDhcpOptions";
import IPAddress from "../../../common/v1/config/IPAddress";
import ExternalSubnet from "./ExternalSubnet";
import IPSubnet from "./IPSubnet";
