/**
 * The utility network associations model connectivity, containment, and structure relations between assets.
 * Associations do not have a spatial presence, so this function synthesizes the associations by providing an extent, and returning all associations within the extent.
 *
 * @since 4.20
 * @see [Utility Network Associations](https://pro.arcgis.com/en/pro-app/latest/help/data/utility-network/associations.htm)
 */
import type AssociationGeometriesResult from "./support/AssociationGeometriesResult.js";
import type SynthesizeAssociationGeometriesParameters from "./support/SynthesizeAssociationGeometriesParameters.js";
import type { RequestOptions } from "../../request/types.js";

/**
 * Given an extent, returns all associations within this extent and their synthesized geometries.
 *
 * @param url - URL to the ArcGIS Server REST resource that represents a UttilityNetwork.
 * @param params - The parameters required by this functions include extent, what types of associations to return, spatial reference and more
 * @param requestOptions - Additional [options](https://developers.arcgis.com/javascript/latest/references/core/request/#request) to be used for the data request.
 * @returns When resolved, the association geomtries result.
 */
export function synthesizeAssociationGeometries(url: string, params: SynthesizeAssociationGeometriesParameters, requestOptions?: RequestOptions): Promise<AssociationGeometriesResult>;