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/references/core/rest/support/ImagePixelLocationResult/#geometries)
 */
export interface PixelSpaceLocation {
  x: number;
  y: number;
  z: number;
}

/**
 * The results from [computePixelSpaceLocations()](https://developers.arcgis.com/javascript/latest/references/core/rest/imageService/#computePixelSpaceLocations) or
 * [ImageryLayer.computePixelSpaceLocations()](https://developers.arcgis.com/javascript/latest/references/core/layers/ImageryLayer/#computePixelSpaceLocations) method.
 *
 * @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 [ImagePixelLocationParameters](https://developers.arcgis.com/javascript/latest/references/core/rest/support/ImagePixelLocationParameters/)
 */
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;
}