import type UtilityNetwork from "./UtilityNetwork.js"; import type UnitQueryResult from "../rest/networks/unitIdentifiers/support/UnitQueryResult.js"; import type { JSONSupport } from "../core/JSONSupport.js"; import type { UnitIdentifier } from "./support/jsonTypes.js"; import type { UtilityNetworkProperties } from "./UtilityNetwork.js"; export interface UnitIdentifierManagerProperties { /** * The [UtilityNetwork](https://developers.arcgis.com/javascript/latest/references/core/networks/UtilityNetwork/) that contains the telecom * domain network being managed. */ utilityNetwork?: UtilityNetworkProperties; } /** * A UnitIdentifierManager provides access to unit identifier management capabilities for a * telecom domain network in a utility 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 [Telecom domain network](https://pro.arcgis.com/en/pro-app/latest/help/data/utility-network/telecom-domain-networks.htm) * @example * const utilityNetwork = new UtilityNetwork({ * layerUrl: "https://host.com/arcgis/rest/services/Test/FeatureServer/0", * }); * * await utilityNetwork.load(); * * const unitIdentifierManager = await utilityNetwork.getUnitIdentifierManager(); */ export default class UnitIdentifierManager extends JSONSupport { constructor(properties?: UnitIdentifierManagerProperties); /** * Returns the root feature service URL which the utility network is part of. * * @example `https://utilitynetwork.esri.com/server/rest/services/NapervilleElectric/FeatureServer/` */ get featureServiceUrl(): string; /** * The version of the geodatabase of the feature service data used by the utility network. * Read the [Overview of versioning](https://pro.arcgis.com/en/pro-app/latest/help/data/geodatabases/overview/overview-of-versioning-in-arcgis-pro.htm) * topic for more details about this capability. */ get gdbVersion(): string | null | undefined; /** * The utility network's historic moment to query. * If this property is not specified, queries will apply to the current features. */ get historicMoment(): Date | null | undefined; /** * The URL of the network server. * * @example `https://utilitynetwork.esri.com/server/rest/services/NapervilleElectric/UtilityNetworkServer/` */ get networkServiceUrl(): string; /** * The [UtilityNetwork](https://developers.arcgis.com/javascript/latest/references/core/networks/UtilityNetwork/) that contains the telecom * domain network being managed. */ get utilityNetwork(): UtilityNetwork; /** * Shifts existing records in the containment hierarchy of a unit container's NextUnitID sequence * to reserve a range of unit IDs in a telecom domain network. * * When a gap is inserted at the end of the sequence, the `NEXTUNITID` attribute value for the unit container increases. * If a gap is inserted into the middle of an existing sequence, the system will attempt to shift existing * records to accommodate the reserved space. The operation will fail and return an error if the reservation requires * regrouping an object or occurs in the middle of a connectivity assignment. * * @param container - The unit container to insert a gap into. * @param firstUnit - The first unit for the gap to be introduced. * @param numUnits - The number of units in the gap. * @returns Resolves when the gap is successfully inserted. */ insertGap(container: UnitIdentifier, firstUnit: number, numUnits: number): Promise; /** * Returns unit identifiers for, and existing gaps in, a unit container feature's containment hierarchy in a * telecom domain network. * * @param containers - The unit container features or objects to query. * @returns Resolves to an array of objects describing * the unit identifiers and gaps for the specified unit containers. */ query(containers: UnitIdentifier[]): Promise; /** * Resets the unit identifiers associated with one or more unit container features in a telecom domain network. * This is done to condense the unit identifier space or overcome unit identifier sequence exhaustion. * * @param containers - The unit container features or objects to be reset. * @returns Resolves when the containers are successfully reset. */ reset(containers: UnitIdentifier[]): Promise; /** * Alters the number of units associated with a unit identifier feature in a telecom domain network. * * @param content - The unit identifiable feature or object being resized. * @param numUnits - The number of units for the feature or object to be resized to. * @returns Resolves when the feature or object is successfully resized. */ resize(content: UnitIdentifier, numUnits: number): Promise; }