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

export interface VolumeMeasurementCutFillOptionsProperties extends Partial<Pick<VolumeMeasurementCutFillOptions, "targetElevation">> {}

/**
 * Configuration for defining the horizontal surface used for cut and fill calculation
 * of the [VolumeMeasurementAnalysis](https://developers.arcgis.com/javascript/latest/api-reference/esri-analysis-VolumeMeasurementAnalysis.html).
 *
 * @since 4.34
 * @see [VolumeMeasurementAnalysis](https://developers.arcgis.com/javascript/latest/api-reference/esri-analysis-VolumeMeasurementAnalysis.html)
 * @see [VolumeMeasurementAnalysisView3D](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-3d-analysis-VolumeMeasurementAnalysisView3D.html)
 * @see [Sample - Volume measurement analysis object](https://developers.arcgis.com/javascript/latest/sample-code/analysis-volume-measurement/)
 */
export default class VolumeMeasurementCutFillOptions extends VolumeMeasurementCutFillOptionsSuperclass {
  constructor(properties?: VolumeMeasurementCutFillOptionsProperties);
  /**
   * Elevation of the target surface. If left blank, it is set to the average elevation of the polygon's control points.
   *
   * > [!WARNING]
   * >
   * > **Known Limitation**
   * >
   * > This property must be set within the range of -11 km and +9 km for the analysis to be valid.
   */
  accessor targetElevation: number | null | undefined;
}
declare const VolumeMeasurementCutFillOptionsSuperclass: typeof Clonable & typeof JSONSupportMixin