import { SetCursor, TerraDrawCallbacks, TerraDrawChanges, TerraDrawStylingFunction } from "../common"; import { BaseAdapterConfig, TerraDrawBaseAdapter } from "./common/base.adapter"; import MapView from "@arcgis/core/views/MapView"; import Point from "@arcgis/core/geometry/Point"; import Polyline from "@arcgis/core/geometry/Polyline"; import Polygon from "@arcgis/core/geometry/Polygon"; import GraphicsLayer from "@arcgis/core/layers/GraphicsLayer"; import Graphic from "@arcgis/core/Graphic"; import SimpleMarkerSymbol from "@arcgis/core/symbols/SimpleMarkerSymbol"; import SimpleLineSymbol from "@arcgis/core/symbols/SimpleLineSymbol"; import SimpleFillSymbol from "@arcgis/core/symbols/SimpleFillSymbol"; import Color from "@arcgis/core/Color"; type InjectableArcGISMapsSDK = { GraphicsLayer: typeof GraphicsLayer; Point: typeof Point; Polyline: typeof Polyline; Polygon: typeof Polygon; SimpleLineSymbol: typeof SimpleLineSymbol; SimpleMarkerSymbol: typeof SimpleMarkerSymbol; SimpleFillSymbol: typeof SimpleFillSymbol; Graphic: typeof Graphic; Color: typeof Color; }; export declare class TerraDrawArcGISMapsSDKAdapter extends TerraDrawBaseAdapter { private readonly _lib; private readonly _mapView; private readonly _container; private readonly _featureIdAttributeName; private readonly _featureLayerName; private readonly _featureLayer; private _dragEnabled; private _zoomEnabled; private _dragHandler; private _doubleClickHandler; constructor(config: { map: MapView; lib: InjectableArcGISMapsSDK; } & BaseAdapterConfig); register(callbacks: TerraDrawCallbacks): void; unregister(): void; getCoordinatePrecision(): number; /** * Returns the longitude and latitude coordinates from a given PointerEvent on the map. * @param event The PointerEvent or MouseEvent containing the screen coordinates of the pointer. * @returns An object with 'lng' and 'lat' properties representing the longitude and latitude, or null if the conversion is not possible. */ getLngLatFromEvent(event: PointerEvent | MouseEvent): { lng: number; lat: number; }; /** * Retrieves the HTML element of the ArcGIS element that handles interaction events * @returns The HTMLElement representing the map container. */ getMapEventElement(): HTMLElement; /** * Enables or disables the draggable functionality of the map. * @param enabled Set to true to enable map dragging, or false to disable it. */ setDraggability(enabled: boolean): void; /** * Converts longitude and latitude coordinates to pixel coordinates in the map container. * @param lng The longitude coordinate to project. * @param lat The latitude coordinate to project. * @returns An object with 'x' and 'y' properties representing the pixel coordinates within the map container. */ project(lng: number, lat: number): { x: number; y: number; }; /** * Converts pixel coordinates in the map container to longitude and latitude coordinates. * @param x The x-coordinate in the map container to unproject. * @param y The y-coordinate in the map container to unproject. * @returns An object with 'lng' and 'lat' properties representing the longitude and latitude coordinates. */ unproject(x: number, y: number): { lng: number; lat: number; }; /** * Sets the cursor style for the map container. * @param cursor The CSS cursor style to apply, or 'unset' to remove any previously applied cursor style. */ setCursor(cursor: Parameters[0]): void; /** * Enables or disables the double-click to zoom functionality on the map. * @param enabled Set to true to enable double-click to zoom, or false to disable it. */ setDoubleClickToZoom(enabled: boolean): void; /** * Renders GeoJSON features on the map using the provided styling configuration. * @param changes An object containing arrays of created, updated, and unchanged features to render. * @param styling An object mapping draw modes to feature styling functions */ render(changes: TerraDrawChanges, styling: TerraDrawStylingFunction): void; /** * Clears the map and store of all rendered data layers * @returns void * */ clear(): void; private removeFeatureById; private addFeature; private getColorFromHex; } export {};