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

export interface ImagePixelLocationResultProperties extends Partial<Pick<ImagePixelLocationResult, "geometries">> {}

/**
 * An array of objects containing pixel space x,y coordinates and the pixel's z values of the pixel location geometries.
 *
 * @see [geometries](https://developers.arcgis.com/javascript/latest/api-reference/esri-rest-support-ImagePixelLocationResult.html#geometries)
 */
export interface PixelSpaceLocation {
  x: number;
  y: number;
  z: number;
}

/**
 * The results from [computePixelSpaceLocations()](https://developers.arcgis.com/javascript/latest/api-reference/esri-rest-imageService.html#computePixelSpaceLocations) or
 * [ImageryLayer.computePixelSpaceLocations()](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-ImageryLayer.html#computePixelSpaceLocations) method.
 *
 * @since 4.22
 * @see [ImageryLayer.computePixelSpaceLocations()](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-ImageryLayer.html#computePixelSpaceLocations)
 * @see [computePixelSpaceLocations()](https://developers.arcgis.com/javascript/latest/api-reference/esri-rest-imageService.html#computePixelSpaceLocations)
 * @see [ImagePixelLocationParameters](https://developers.arcgis.com/javascript/latest/api-reference/esri-rest-support-ImagePixelLocationParameters.html)
 */
export default class ImagePixelLocationResult extends JSONSupport {
  constructor(properties?: ImagePixelLocationResultProperties);
  /** An array of objects containing pixel space x,y coordinates and the pixel's z values of the pixel location geometries. */
  accessor geometries: PixelSpaceLocation[] | null | undefined;
}