import type Point from "../../geometry/Point.js";
import type { JSONSupport } from "../../core/JSONSupport.js";
import type { PointProperties } from "../../geometry/Point.js";

export interface ImagePixelLocationParametersProperties extends Partial<Pick<ImagePixelLocationParameters, "rasterId">> {
  /** An array of [points](https://developers.arcgis.com/javascript/latest/references/core/geometry/Point/) that defines pixel locations. */
  geometries?: PointProperties[];
}

/**
 * Input parameters for the [ImageryLayer.computePixelSpaceLocations()](https://developers.arcgis.com/javascript/latest/references/core/layers/ImageryLayer/#computePixelSpaceLocations)
 * or [computePixelSpaceLocations()](https://developers.arcgis.com/javascript/latest/references/core/rest/imageService/#computePixelSpaceLocations) methods.
 *
 * @since 4.22
 * @see [ImageryLayer.computePixelSpaceLocations()](https://developers.arcgis.com/javascript/latest/references/core/layers/ImageryLayer/#computePixelSpaceLocations)
 * @see [computePixelSpaceLocations()](https://developers.arcgis.com/javascript/latest/references/core/rest/imageService/#computePixelSpaceLocations)
 * @see [ArcGIS REST API - Compute Pixel Location](https://developers.arcgis.com/rest/services-reference/enterprise/compute-pixel-location.htm)
 */
export default class ImagePixelLocationParameters extends JSONSupport {
  constructor(properties?: ImagePixelLocationParametersProperties);
  /** An array of [points](https://developers.arcgis.com/javascript/latest/references/core/geometry/Point/) that defines pixel locations. */
  get geometries(): Point[];
  set geometries(value: PointProperties[]);
  /** The rasterId of a raster catalog in the image service. */
  accessor rasterId: number | null | undefined;
}