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

export interface CreateToolVisibilityMapProperties extends Partial<Pick<CreateToolVisibilityMap, "circle" | "freehandPolygon" | "freehandPolyline" | "multipoint" | "point" | "polygon" | "polyline" | "rectangle" | "text">> {}

export default abstract class CreateToolVisibilityMap extends Accessor {
  /**
   * Indicates whether to display the circle sketch tool. Default is `true`.
   *
   * @default true
   */
  accessor circle: boolean;
  /**
   * _since 4.32_ Indicates whether to display the freehandPolygon tool. Default is `false`.
   *
   * @default false
   */
  accessor freehandPolygon: boolean;
  /**
   * _since 4.32_ Indicates whether to display the freehandPolyline tool. Default is `false`.
   *
   * @default false
   */
  accessor freehandPolyline: boolean;
  /**
   * _since 4.32_ Indicates whether to display the multipoint tool. Regardless of setting, multipoint is not available when working with a [SceneView](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-SceneView.html). Default is `false`.
   *
   * @default true
   */
  accessor multipoint: boolean;
  /**
   * Indicates whether to display the point sketch tool. Default is `true`.
   *
   * @default true
   */
  accessor point: boolean;
  /**
   * Indicates whether to display the polygon sketch tool. Default is `true`.
   *
   * @default true
   */
  accessor polygon: boolean;
  /**
   * Indicates whether to display the polyline sketch tool. Default is `true`.
   *
   * @default true
   */
  accessor polyline: boolean;
  /**
   * Indicates whether to display the rectangle sketch tool. Default is `true`.
   *
   * @default true
   */
  accessor rectangle: boolean;
  /**
   * _since 4.34_ Indicates whether to display the text sketch tool. Default is `false`.
   *
   * @default false
   */
  accessor text: boolean;
}