import type Polyline from "../../../../geometry/Polyline.js";
import type { JSONSupport } from "../../../../core/JSONSupport.js";
import type { ServiceError } from "../../../../versionManagement/support/jsonTypes.js";
import type { PolylineProperties } from "../../../../geometry/Polyline.js";

export interface CircuitVerifyResultProperties extends Partial<Pick<CircuitVerifyResult, "error" | "name">> {
  /** The synthesized geometry for the verified circuit. */
  geometry?: PolylineProperties | null;
}

/**
 * The result of a circuit [CircuitManager.verify()](https://developers.arcgis.com/javascript/latest/references/core/networks/CircuitManager/#verify) operation on a particular circuit
 * 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/)
 */
export default class CircuitVerifyResult extends JSONSupport {
  constructor(properties?: CircuitVerifyResultProperties);
  /** The error which occurred during the verify operation, if any. */
  accessor error: ServiceError | null | undefined;
  /** The synthesized geometry for the verified circuit. */
  get geometry(): Polyline | null | undefined;
  set geometry(value: PolylineProperties | null | undefined);
  /** The name of the verified circuit. */
  accessor name: string;
}