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

export interface ImageVolumeResultProperties {
  /** An array of image volume results returned in response to [ImageryLayer.calculateVolume()](https://developers.arcgis.com/javascript/latest/references/core/layers/ImageryLayer/#calculateVolume) method. */
  volumes?: ImageVolumeProperties[];
}

/**
 * The result from the [ImageryLayer.calculateVolume()](https://developers.arcgis.com/javascript/latest/references/core/layers/ImageryLayer/#calculateVolume)
 * method on [ImageryLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/ImageryLayer/) containing array of
 * [ImageVolume](https://developers.arcgis.com/javascript/latest/references/core/rest/support/ImageVolume/).
 *
 * @since 4.32
 * @see [ImageVolumeParameters](https://developers.arcgis.com/javascript/latest/references/core/rest/support/ImageVolumeParameters/)
 * @see [ImageryLayer.calculateVolume()](https://developers.arcgis.com/javascript/latest/references/core/layers/ImageryLayer/#calculateVolume)
 */
export default class ImageVolumeResult extends JSONSupport {
  constructor(properties?: ImageVolumeResultProperties);
  /** An array of image volume results returned in response to [ImageryLayer.calculateVolume()](https://developers.arcgis.com/javascript/latest/references/core/layers/ImageryLayer/#calculateVolume) method. */
  get volumes(): ImageVolume[];
  set volumes(value: ImageVolumeProperties[]);
}