import type LengthDimension from "../../analysis/LengthDimension.js";
import type Accessor from "../../core/Accessor.js";
import type { Length } from "../../core/quantity.js";

/**
 * Represents the result of a LengthDimension.
 *
 * @since 4.25
 * @see [LengthDimension](https://developers.arcgis.com/javascript/latest/api-reference/esri-analysis-LengthDimension.html)
 * @see [DimensionLayer](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-DimensionLayer.html)
 * @see [DimensionLayerView](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-layers-DimensionLayerView.html)
 * @see [DimensionAnalysis](https://developers.arcgis.com/javascript/latest/api-reference/esri-analysis-DimensionAnalysis.html)
 * @see [DimensionAnalysisView3D](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-3d-analysis-DimensionAnalysisView3D.html)
 */
export default abstract class LengthDimensionResult extends Accessor {
  /** The [LengthDimension](https://developers.arcgis.com/javascript/latest/api-reference/esri-analysis-LengthDimension.html) that this result corresponds to. */
  get dimension(): LengthDimension;
  /** The length currently being measured by the [dimension](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-analysis-LengthDimensionResult.html#dimension). */
  get length(): Length | null | undefined;
}