/**
* The Nexthop model module.
* @module Ntnx/Nexthop
* @version 4.4.1
* @class Nexthop
*
* @param { NexthopType } nexthopType
*/
export default class Nexthop {
/**
* Constructs a Nexthop from a plain JavaScript object, optionally creating a new instance.
* Copies all relevant properties from data to obj if supplied or a new instance if not.
* @param {Object} data The plain JavaScript object bearing properties of interest.
* @param {module:Ntnx/Nexthop} obj Optional instance to populate.
* @param callFromChild {Boolean} Flag to recognise calling instance
* @return {module:Ntnx/Nexthop} The populated Nexthop instance.
*/
static constructFromObject(data: any, obj?: any, callFromChild?: boolean): any;
/**
* Converts a given snake_case string to camelCase.
* @param {string} snakeStr - The input string in snake_case format.
* @returns {string} - The converted string in camelCase format.
*/
static snakeToCamel(snakeStr: string): string;
/**
* Constructs a new Nexthop.
* Nexthop for the route. Deprecated in favor of 'nexthops' to support multiple nexthops.
* @alias module:Ntnx/Nexthop
*
* @param { NexthopType } nexthopType
*/
constructor(nexthopType: NexthopType);
nexthopType: string;
$objectType: string;
/** @type {object} */
$reserved: object;
/** @type {object} */
$unknownFields: object;
/**
* @return {NexthopType}
*/
getNexthopType(): NexthopType;
/**
* @param {NexthopType} nexthopType
*/
setNexthopType(nexthopType: NexthopType): void;
/**
* Returns Reference to a link, such as a VPN connection or subnet.
* @return {string}
*/
getNexthopReference(): string;
/**
* Sets Reference to a link, such as a VPN connection or subnet.
* @param {string} nexthopReference Reference to a link, such as a VPN connection or subnet.
*/
setNexthopReference(nexthopReference: string): void;
nexthopReference: string;
/**
* @return {IPAddress}
*/
getNexthopIpAddress(): IPAddress;
/**
* @param {IPAddress} nexthopIpAddress
*/
setNexthopIpAddress(nexthopIpAddress: IPAddress): void;
nexthopIpAddress: IPAddress;
/**
* Returns Name of the nexthop, where nexthop is either an IP address, a VPN connection, or a subnet.
* @return {string}
*/
getNexthopName(): string;
/**
* Sets Name of the nexthop, where nexthop is either an IP address, a VPN connection, or a subnet.
* @param {string} nexthopName Name of the nexthop, where nexthop is either an IP address, a VPN connection, or a subnet.
*/
setNexthopName(nexthopName: string): void;
nexthopName: string;
get$Reserved(): any;
get$ObjectType(): string;
get$UnknownFields(): any;
toJson(forMutation: any): any;
validate(scope: any, properties: any, ...args: any[]): Promise;
validateProperty(scope: any, property: any): ValidationError;
#private;
}
import NexthopType from "./NexthopType";
import IPAddress from "../../../common/v1/config/IPAddress";
import ValidationError from "../../../validation/ValidationError";