/**
 * The Layer2Stretch model module.
 * @module Ntnx/Layer2Stretch
 * @version 4.0.1
 * @class Layer2Stretch
 * @extends NetworkingBaseModel
 *
 * @param { string } name Layer2 stretch configuration name.
 */
export default class Layer2Stretch extends NetworkingBaseModel {
    /**
     * Constructs a new <code>Layer2Stretch</code>.
     * @alias module:Ntnx/Layer2Stretch
     * @extends module:Ntnx/NetworkingBaseModel
     *
     * @param { string } name Layer2 stretch configuration name.
    */
    constructor(name: string);
    name: string;
    /**
     * Returns Layer2 stretch configuration name.
     * @return {string}
     */
    getName(): string;
    /**
     * Sets Layer2 stretch configuration name.
     * @param {string} name Layer2 stretch configuration name.
     */
    setName(name: string): void;
    /**
     * Returns Layer2 stretch configuration details between subnets on two sites.
     * @return {string}
     */
    getDescription(): string;
    /**
     * Sets Layer2 stretch configuration details between subnets on two sites.
     * @param {string} description Layer2 stretch configuration details between subnets on two sites.
     */
    setDescription(description: string): void;
    description: string;
    /**
     * @return {SiteParams}
     */
    getLocalSiteParams(): SiteParams;
    /**
     * @param {SiteParams} localSiteParams
     */
    setLocalSiteParams(localSiteParams: SiteParams): void;
    localSiteParams: SiteParams;
    /**
     * @return {SiteParams}
     */
    getRemoteSiteParams(): SiteParams;
    /**
     * @param {SiteParams} remoteSiteParams
     */
    setRemoteSiteParams(remoteSiteParams: SiteParams): void;
    remoteSiteParams: SiteParams;
    /**
     * @return {StretchConnectionType}
     */
    getConnectionType(): StretchConnectionType;
    /**
     * @param {StretchConnectionType} connectionType
     */
    setConnectionType(connectionType: StretchConnectionType): void;
    connectionType: string;
    /**
     * @return {StretchStatus}
     */
    getStretchStatus(): StretchStatus;
    /**
     * @param {StretchStatus} stretchStatus
     */
    setStretchStatus(stretchStatus: StretchStatus): void;
    stretchStatus: StretchStatus;
    /**
     * @return {RemoteVtepStretchStatus[]}
     */
    getRemoteStretchStatus(): RemoteVtepStretchStatus[];
    /**
     * @param {RemoteVtepStretchStatus[]} remoteStretchStatus
     */
    setRemoteStretchStatus(remoteStretchStatus: RemoteVtepStretchStatus[]): void;
    remoteStretchStatus: RemoteVtepStretchStatus[];
    /**
     * Returns The MTU size setting for the VXLAN session.
     * minimum: 500
     * maximum: 8950
     * @return {Number}
     */
    getMtu(): number;
    /**
     * Sets The MTU size setting for the VXLAN session.
     * @param {Number} mtu The MTU size setting for the VXLAN session.
     */
    setMtu(mtu: number): void;
    mtu: number;
    /**
     * Returns The VXLAN network identifier used to uniquely identify the VXLAN tunnel.
     * minimum: 1
     * maximum: 16777215
     * @return {Number}
     */
    getVni(): number;
    /**
     * Sets The VXLAN network identifier used to uniquely identify the VXLAN tunnel.
     * @param {Number} vni The VXLAN network identifier used to uniquely identify the VXLAN tunnel.
     */
    setVni(vni: number): void;
    vni: number;
    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;
        };
        vni?: number;
        mtu?: number;
        remoteStretchStatus?: {
            $reserved: any;
            $objectType: string;
            $unknownFields: any;
            status?: {
                $reserved: any;
                $objectType: string;
                $unknownFields: any;
                roundTripTimeMillis?: number;
                interfaceState?: string;
                tunnelState?: string;
                detail?: 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;
                };
            };
        }[];
        stretchStatus?: {
            $reserved: any;
            $objectType: string;
            $unknownFields: any;
            roundTripTimeMillis?: number;
            interfaceState?: string;
            tunnelState?: string;
            detail?: string;
        };
        connectionType?: string;
        remoteSiteParams?: {
            $reserved: any;
            $objectType: string;
            $unknownFields: any;
            defaultGatewayIPAddress?: {
                $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;
                };
            };
            vpnInterfaceIPAddress?: {
                $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;
                };
            };
            stretchInterfaceIpAddress?: {
                $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;
                };
            };
            connectionReference?: string;
            stretchSubnetReference?: string;
            pcClusterReference?: string;
        };
        localSiteParams?: {
            $reserved: any;
            $objectType: string;
            $unknownFields: any;
            defaultGatewayIPAddress?: {
                $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;
                };
            };
            vpnInterfaceIPAddress?: {
                $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;
                };
            };
            stretchInterfaceIpAddress?: {
                $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;
                };
            };
            connectionReference?: string;
            stretchSubnetReference?: string;
            pcClusterReference?: string;
        };
        description?: string;
        name?: string;
    };
    #private;
}
import NetworkingBaseModel from "./NetworkingBaseModel";
import SiteParams from "./SiteParams";
import StretchConnectionType from "./StretchConnectionType";
import StretchStatus from "./StretchStatus";
import RemoteVtepStretchStatus from "./RemoteVtepStretchStatus";
