import type Accessor from "../../../core/Accessor.js";
import type { SystemOrAreaUnit, SystemOrLengthUnit } from "../../../core/units.js";

/** @since 5.0 */
export interface UnitsProperties extends Partial<Pick<Units, "area" | "length" | "verticalLength">> {}

/**
 * Units used for displaying or interpreting values in the UI.
 *
 * @since 5.0
 * @beta
 */
export default class Units extends Accessor {
  constructor(properties?: UnitsProperties);
  /**
   * Area units.
   *
   * @default null
   * @since 5.0
   * @beta
   */
  accessor area: SystemOrAreaUnit | null | undefined;
  /**
   * Length units.
   *
   * @default null
   * @since 5.0
   * @beta
   */
  accessor length: SystemOrLengthUnit | null | undefined;
  /**
   * Vertical length units.
   *
   * @default null
   * @since 5.0
   * @beta
   */
  accessor verticalLength: SystemOrLengthUnit | null | undefined;
}