
/**
 * Units for linear measurements.
 * Use one of the string values below or a numerical value from
 * [here](https://resources.arcgis.com/en/help/arcobjects-cpp/componenthelp/index.html#/esriSRUnitType_Constants/000w00000042000000/)
 * or
 * [here](https://resources.arcgis.com/en/help/arcobjects-cpp/componenthelp/index.html#/esriSRUnit2Type_Constants/000w00000041000000/).
 *
 * @deprecated since version 4.32. Use [LengthUnit](https://developers.arcgis.com/javascript/latest/api-reference/esri-core-units.html#LengthUnit) instead.
 */
export type LinearUnit = "feet" | "kilometers" | "meters" | "miles" | "nautical-miles" | "yards";

/**
 * Units for area measurements.
 * Use one of the string values below or a numerical value from
 * [here](https://resources.arcgis.com/en/help/arcobjects-cpp/componenthelp/index.html#/esriSRUnitType_Constants/000w00000042000000/)
 * or
 * [here](https://resources.arcgis.com/en/help/arcobjects-cpp/componenthelp/index.html#/esriSRUnit2Type_Constants/000w00000041000000/).
 *
 * @deprecated since version 4.32. Use [AreaUnit](https://developers.arcgis.com/javascript/latest/api-reference/esri-core-units.html#AreaUnit) instead.
 */
export type AreaUnit = "acres" | "ares" | "hectares" | "square-feet" | "square-kilometers" | "square-meters" | "square-miles" | "square-yards";

/**
 * The return object of the
 * [extendedSpatialReferenceInfo()](https://developers.arcgis.com/javascript/latest/api-reference/esri-geometry-geometryEngine.html#extendedSpatialReferenceInfo)
 * method.
 *
 * @deprecated since version 4.32.
 * @see [extendedSpatialReferenceInfo()](https://developers.arcgis.com/javascript/latest/api-reference/esri-geometry-geometryEngine.html#extendedSpatialReferenceInfo)
 */
export interface ExtendedSpatialReferenceInfo {
  /** The XY tolerance of the spatial reference. */
  tolerance: number;
  /** Base factor. */
  unitBaseFactor: number;
  /** Unit ID. */
  unitID: number;
  /** Square derivative. */
  unitSquareDerivative: number;
  /** Unit type. */
  unitType: number;
}

/**
 * Object returned from the [nearestCoordinate()](https://developers.arcgis.com/javascript/latest/api-reference/esri-geometry-geometryEngine.html#nearestCoordinate), [nearestVertex()](https://developers.arcgis.com/javascript/latest/api-reference/esri-geometry-geometryEngine.html#nearestVertex), and [nearestVertices()](https://developers.arcgis.com/javascript/latest/api-reference/esri-geometry-geometryEngine.html#nearestVertices) methods.
 *
 * @deprecated since version 4.32. Use {@link geometry/operators/support/proximityResult!ProximityResult proximityOperator's ProximityResult} instead.
 */
export interface NearestPointResult<Point> {
  /** A vertex within the specified distance of the search. */
  coordinate: Point;
  /** The distance from the `inputPoint` in the units of the view's spatial reference. */
  distance: number;
  /** Indicates if it is an empty geometry. */
  isEmpty: boolean;
  /** The index of the vertex within the geometry's rings or paths. */
  vertexIndex: number;
}