///
import type Graphic from "@arcgis/core/Graphic.js";
import type MapView from "@arcgis/core/views/MapView.js";
import type SimpleFillSymbol from "@arcgis/core/symbols/SimpleFillSymbol.js";
import type SimpleLineSymbol from "@arcgis/core/symbols/SimpleLineSymbol.js";
import type SimpleMarkerSymbol from "@arcgis/core/symbols/SimpleMarkerSymbol.js";
import type { ISketchGraphicsChange, EDrawMode } from "../../utils/interfaces.js";
import type { PublicLitElement as LitElement } from "@arcgis/lumina";
import type { T9nMeta } from "@arcgis/lumina/controllers";
export abstract class MapDrawTools extends LitElement {
/**
* Contains the translations for this component.
* All UI strings should be defined here.
*
* @internal
*/
protected _translations: {
sketchLayer: string;
undo: string;
redo: string;
} & T9nMeta<{
sketchLayer: string;
undo: string;
redo: string;
}>;
/**
* boolean: sketch is used by multiple components...need a way to know who should respond...
*
* @default false
*/
accessor active: boolean;
/**
* utils/interfaces: Controls how the draw tools are rendered
*
* SKETCH mode supports snapping
* REFINE mode supports undo/redo
*
* @default 'SKETCH'
*/
accessor drawMode: EDrawMode;
/**
* boolean: when true you will be able to make additional modifications to the sketched geometry
*
* @default true
*/
accessor editGraphicsEnabled: boolean;
/** esri/Graphic: https://developers.arcgis.com/javascript/latest/api-reference/esri-Graphic.html */
accessor graphics: Graphic[];
/** esri/views/View: https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html */
accessor mapView: MapView | undefined;
/** SimpleMarkerSymbol: Point symbol used for sketching and updating point graphics */
accessor pointSymbol: SimpleMarkerSymbol | undefined;
/** SimpleFillSymbol: Polygon symbol used for sketching and updating polygon graphics */
accessor polygonSymbol: SimpleFillSymbol | undefined;
/** SimpleLineSymbol: Polyline symbol used for sketching and updating polyline graphics */
accessor polylineSymbol: SimpleLineSymbol | undefined;
/**
* boolean: when enabled the user can redo the previous operation
*
* @default false
*/
accessor redoEnabled: boolean;
/**
* boolean: when enabled the user can undo the previous operation
*
* @default false
*/
accessor undoEnabled: boolean;
/**
* Clears the user drawn graphics
*
* @returns Promise that resolves when the operation is complete
*/
clear(): Promise;
/**
* Set the sketch widget to update mode with the current graphic
*
* @returns Promise that resolves when the operation is complete
*/
updateGraphics(): Promise;
/** Emitted on demand when the redo action is clicked. */
readonly drawRedo: import("@arcgis/lumina").TargetedEvent;
/** Emitted on demand when the undo action is clicked. */
readonly drawUndo: import("@arcgis/lumina").TargetedEvent;
/** Emitted on demand when selection starts or ends. */
readonly selectionLoadingChange: import("@arcgis/lumina").TargetedEvent;
/** Emitted on demand when the sketch graphics change. */
readonly sketchGraphicsChange: import("@arcgis/lumina").TargetedEvent;
readonly "@eventTypes": {
drawRedo: MapDrawTools["drawRedo"]["detail"];
drawUndo: MapDrawTools["drawUndo"]["detail"];
selectionLoadingChange: MapDrawTools["selectionLoadingChange"]["detail"];
sketchGraphicsChange: MapDrawTools["sketchGraphicsChange"]["detail"];
};
}