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

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

/**
 * The result from the [ImageryLayer#calculateVolume()](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-ImageryLayer.html#calculateVolume)
 * method on [ImageryLayer](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-ImageryLayer.html) containing array of
 * [ImageVolume](https://developers.arcgis.com/javascript/latest/api-reference/esri-rest-support-ImageVolume.html).
 *
 * @since 4.32
 * @see [ImageVolumeParameters](https://developers.arcgis.com/javascript/latest/api-reference/esri-rest-support-ImageVolumeParameters.html)
 * @see [ImageryLayer#calculateVolume()](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-ImageryLayer.html#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/api-reference/esri-layers-ImageryLayer.html#calculateVolume) method. */
  get volumes(): ImageVolume[];
  set volumes(value: ImageVolumeProperties[]);
}