/**
 * The utility network associations model connectivity, containment, and structure relations between assets.
 * This function traverses the associations table and return associations and objects based on input parameters.
 *
 * @since 5.2
 * @see [Utility Network Associations](https://pro.arcgis.com/en/pro-app/latest/help/data/utility-network/associations.htm)
 * @see [REST Traverse Associations](https://developers.arcgis.com/rest/services-reference/enterprise/traverse-associations-utility-network-server/)
 */
import type TraverseAssociationsParameters from "./support/TraverseAssociationsParameters.js";
import type TraverseAssociationsResult from "./support/TraverseAssociationsResult.js";
import type { RequestOptions } from "../../request/types.js";

/**
 * Returns associations and objects traversed and filtered by the [TraverseAssociationsParameters](https://developers.arcgis.com/javascript/latest/references/core/rest/networks/support/TraverseAssociationsParameters/) in a utility network.
 *
 * @param url - URL to the ArcGIS Server REST resource that represents a utility network.
 * @param parameters - The list of parameters for the call.
 * @param requestOptions - Additional [options](https://developers.arcgis.com/javascript/latest/references/core/request/#request) to be used for the data request.
 * @returns {Promise<module:esri/rest/networks/support/TraverseAssociationsResult>} When resolved, returns the traverse results which could include associations and network objects.
 */
export function traverseAssociations(url: string, parameters: TraverseAssociationsParameters, requestOptions?: RequestOptions): Promise<TraverseAssociationsResult>;