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

export interface CircuitPathConnectivityElementProperties extends JSONSupportMixinProperties {
  /** 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/api-reference/esri-networks-support-CircuitPath.html) in the telecom domain network.
 *
 * @beta
 * @since 4.34
 */
export default abstract class CircuitPathConnectivityElement extends JSONSupport {
  /** 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);
}