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

export interface ImageSampleResultProperties {
  /** An array of image sample results returned in response to [ImageryLayer.getSamples()](https://developers.arcgis.com/javascript/latest/references/core/layers/ImageryLayer/#getSamples) method. */
  samples?: ImageSampleProperties[];
}

/**
 * The result from the [ImageryLayer.getSamples()](https://developers.arcgis.com/javascript/latest/references/core/layers/ImageryLayer/#getSamples)
 * method on [ImageryLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/ImageryLayer/) containing array of
 * [ImageSample](https://developers.arcgis.com/javascript/latest/references/core/rest/support/ImageSample/).
 *
 * @since 4.20
 * @see [ImageSampleParameters](https://developers.arcgis.com/javascript/latest/references/core/rest/support/ImageSampleParameters/)
 * @see [ImageryLayer.getSamples()](https://developers.arcgis.com/javascript/latest/references/core/layers/ImageryLayer/#getSamples)
 */
export default class ImageSampleResult extends JSONSupport {
  constructor(properties?: ImageSampleResultProperties);
  /** An array of image sample results returned in response to [ImageryLayer.getSamples()](https://developers.arcgis.com/javascript/latest/references/core/layers/ImageryLayer/#getSamples) method. */
  get samples(): ImageSample[];
  set samples(value: ImageSampleProperties[]);
}