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

export interface LengthDimensionResultProperties {
  /** The [LengthDimension](https://developers.arcgis.com/javascript/latest/references/core/analysis/LengthDimension/) that this result corresponds to. */
  dimension?: LengthDimension;
}

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