import type TelecomNetworkElement from "../../rest/networks/support/TelecomNetworkElement.js";
import type { JSONSupport } from "../../core/JSONSupport.js";
import type { TelecomNetworkElementProperties } from "../../rest/networks/support/TelecomNetworkElement.js";

export interface CircuitPathConnectivityElementProperties {
  /** The edge element associated with the path. */
  edgeElement?: TelecomNetworkElementProperties;
  /** The junction element associated with the path. */
  junctionElement?: TelecomNetworkElementProperties;
}

/**
 * Represents the junction and edge that comprise one hop in a path.
 * Used for [paths](https://developers.arcgis.com/javascript/latest/references/core/networks/support/CircuitPath/) in the telecom domain network.
 *
 * @beta
 * @since 4.34
 */
export default class CircuitPathConnectivityElement extends JSONSupport {
  constructor(properties?: CircuitPathConnectivityElementProperties);
  /** The edge element associated with the path. */
  get edgeElement(): TelecomNetworkElement;
  set edgeElement(value: TelecomNetworkElementProperties);
  /** The junction element associated with the path. */
  get junctionElement(): TelecomNetworkElement;
  set junctionElement(value: TelecomNetworkElementProperties);
}