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

/** Properties that can be used to construct a [VolumeMeasurementInputUnits](https://developers.arcgis.com/javascript/latest/api-reference/esri-analysis-VolumeMeasurement-VolumeMeasurementInputUnits.html) instance. */
export interface VolumeMeasurementInputUnitsProperties extends Partial<Pick<VolumeMeasurementInputUnits, "elevation">> {}

/**
 * Units used for interpreting input values for 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)
 */
export default class VolumeMeasurementInputUnits extends VolumeMeasurementInputUnitsSuperclass {
  constructor(properties?: VolumeMeasurementInputUnitsProperties);
  /** Unit used for the cut and fill target elevation. */
  accessor elevation: LengthUnit | null | undefined;
}
declare const VolumeMeasurementInputUnitsSuperclass: typeof Clonable & typeof JSONSupportMixin