import type Accessor from "../../../core/Accessor.js";

export interface SketchTooltipVisibleElementsProperties extends Partial<Pick<SketchTooltipVisibleElements, "area" | "coordinates" | "direction" | "distance" | "elevation" | "header" | "helpMessage" | "orientation" | "radius" | "rotation" | "scale" | "size" | "totalLength">> {}

/** The elements that are displayed within the tooltip while sketching and editing. */
export default abstract class SketchTooltipVisibleElements extends Accessor {
  /**
   * When set to `false`, the area is not shown in the tooltip.
   *
   * @default true
   */
  accessor area: boolean;
  /**
   * When set to `false`, the coordinate is not shown in the tooltip.
   *
   * @default true
   */
  accessor coordinates: boolean;
  /**
   * When set to `false`, the direction (or deflection angle) is not shown in the tooltip.
   *
   * @default true
   */
  accessor direction: boolean;
  /**
   * When set to `false`, the distance is not shown in the tooltip.
   *
   * @default true
   */
  accessor distance: boolean;
  /**
   * When set to `false`, the elevation is not shown in the tooltip.
   *
   * @default true
   */
  accessor elevation: boolean;
  /**
   * When set to `false`, the header at the top of the tooltip is not shown, when in input mode.
   *
   * @default true
   */
  accessor header: boolean;
  /**
   * When set to `false`, the help message at the bottom of the tooltip is not shown.
   *
   * @default false
   */
  accessor helpMessage: boolean;
  /**
   * When set to `false`, the orientation is not shown in the tooltip.
   *
   * @default true
   */
  accessor orientation: boolean;
  /**
   * When set to `false`, the radius is not shown in the tooltip.
   *
   * @default true
   */
  accessor radius: boolean;
  /**
   * When set to `false`, the rotation is not shown in the tooltip.
   *
   * @default true
   */
  accessor rotation: boolean;
  /**
   * When set to `false`, the scale is not shown in the tooltip.
   *
   * @default true
   */
  accessor scale: boolean;
  /**
   * When set to `false`, the size is not shown in the tooltip.
   *
   * @default true
   */
  accessor size: boolean;
  /**
   * When set to `false`, the total length is not shown in the tooltip.
   *
   * @default true
   */
  accessor totalLength: boolean;
}