import type { JSONSupport } from "../../core/JSONSupport.js";

export interface CircuitLocationProperties extends Partial<Pick<CircuitLocation, "firstUnit" | "globalId" | "lastUnit" | "sourceId">> {}

/**
 * Represents a circuit start or stop location in a telecom domain network.
 *
 * @beta
 * @since 4.34
 * @see [UtilityNetwork](https://developers.arcgis.com/javascript/latest/references/core/networks/UtilityNetwork/)
 * @see [CircuitManager](https://developers.arcgis.com/javascript/latest/references/core/networks/CircuitManager/)
 * @see [Circuit](https://developers.arcgis.com/javascript/latest/references/core/networks/support/Circuit/)
 * @see [CircuitSection](https://developers.arcgis.com/javascript/latest/references/core/networks/support/CircuitSection/)
 * @see [Subcircuit](https://developers.arcgis.com/javascript/latest/references/core/networks/support/Subcircuit/)
 * @see [Telecom domain network](https://pro.arcgis.com/en/pro-app/latest/help/data/utility-network/telecom-domain-networks.htm)
 */
export default class CircuitLocation extends JSONSupport {
  constructor(properties?: CircuitLocationProperties);
  /**
   * The first unit of the group associated with the circuit location.
   *
   * @default 1
   */
  accessor firstUnit: number;
  /** The global ID of the feature or object associated with the circuit location. */
  accessor globalId: string;
  /**
   * The last unit of the group associated with the circuit location.
   *
   * @default 1
   */
  accessor lastUnit: number;
  /** The source ID of the feature or object associated with the circuit location. */
  accessor sourceId: number;
}