import type FeatureSet from "./FeatureSet.js";
import type { FeatureSetProperties } from "./FeatureSet.js";

export interface NetworkFeatureSetProperties extends FeatureSetProperties, Partial<Pick<NetworkFeatureSet, "doNotLocateOnRestrictedElements">> {}

/**
 * A subclass of FeaureSet that can be used as an input in the Route, Closest Facility, and Service Area solvers.
 *
 * @since 4.21
 * @see [closestFacility](https://developers.arcgis.com/javascript/latest/references/core/rest/closestFacility/)
 * @see [route](https://developers.arcgis.com/javascript/latest/references/core/rest/route/)
 * @see [serviceArea](https://developers.arcgis.com/javascript/latest/references/core/rest/serviceArea/)
 */
export default class NetworkFeatureSet extends FeatureSet {
  constructor(properties?: NetworkFeatureSetProperties);
  /** If true, restricted network elements should be considered when finding network locations. */
  accessor doNotLocateOnRestrictedElements: boolean | null | undefined;
}