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

export interface UnitsProperties extends Partial<Pick<Units, "area" | "length" | "verticalLength">> {}

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