/// <reference path="../../index.d.ts" />
import type MapView from "@arcgis/core/views/MapView.js";
import type { PublicLitElement as LitElement } from "@arcgis/lumina";

export abstract class SelectionTool extends LitElement {
  /** esri/views/View: https://developers.arcgis.com/javascript/latest/api-reference/esri-views/MapView.html */
  accessor mapView: MapView | undefined;
  /**
   * string: Selected layer id
   *
   * @default ''
   */
  accessor selectedLayerId: string;
  /**
   * string: Tool for selecting the features
   *
   * @default 'rectangle'
   */
  accessor tool: "circle" | "freehandPolygon" | "polygon" | "rectangle";
  /**
   * Toggles the selection tool state
   *
   * @param tool - Tool for selecting the features
   * @param isActive
   */
  toggleSelectionTool(tool: "circle" | "freehandPolygon" | "polygon" | "rectangle", isActive: boolean): Promise<void>;
  /** Emitted when drawing is completed */
  readonly drawingComplete: import("@arcgis/lumina").TargetedEvent<this, void>;
  /** Emitted when feature are selected */
  readonly featuresSelected: import("@arcgis/lumina").TargetedEvent<this, (number | string)[] | undefined>;
  readonly "@eventTypes": {
    drawingComplete: SelectionTool["drawingComplete"]["detail"];
    featuresSelected: SelectionTool["featuresSelected"]["detail"];
  };
}