///
import type Polygon from "@arcgis/core/geometry/Polygon.js";
import type Geometry from "@arcgis/core/geometry/Geometry.js";
import type { DistanceUnit, IValueChange } from "../../utils/interfaces.js";
import type { PublicLitElement as LitElement } from "@arcgis/lumina";
import type { T9nMeta } from "@arcgis/lumina/controllers";
export abstract class BufferTools extends LitElement {
/**
* Contains the translations for this component.
* All UI strings should be defined here.
*
* @internal
*/
protected _translations: {
feet: string;
meters: string;
miles: string;
kilometers: string;
unit: string;
} & T9nMeta<{
feet: string;
meters: string;
miles: string;
kilometers: string;
unit: string;
}>;
/**
* string: The appearance of display. Can be a 'slider' or 'text' inputs for distance/value
*
* @default 'text'
*/
accessor appearance: "slider" | "text";
/**
* boolean: When `true`, interaction is prevented and the component is displayed with lower opacity.
*
* @default false
*/
accessor disabled: boolean;
/**
* number: The distance used for buffer
*
* @default 0
*/
accessor distance: number;
/** esri/geometry/Geometry: https://developers.arcgis.com/javascript/latest/api-reference/esri-geometry-Geometry.html */
accessor geometries: Geometry[];
/**
* number: The component's maximum selectable value.
*
* @default 0
*/
accessor max: number;
/**
* number: The component's minimum selectable value.
*
* @default 0
*/
accessor min: number;
/**
* number: Displays tick marks on the number line at a specified interval.
*
* @default 10
*/
accessor sliderTicks: number;
/**
* boolean: option to control if buffer results should be unioned
*
* @default true
*/
accessor unionResults: boolean;
/**
* DistanceUnit: 'feet'|'meters'|'miles'|'kilometers'
*
* @default 'meters'
*/
accessor unit: DistanceUnit;
/**
* Get the translated unit for display
*
* @param unit
* @returns Promise resolving with the translated unit
*/
getTranslatedUnit(unit: string): Promise;
/** Emitted on demand when a buffer is generated. */
readonly bufferComplete: import("@arcgis/lumina").TargetedEvent;
/** Emitted on demand when the distance value changes */
readonly distanceChanged: import("@arcgis/lumina").TargetedEvent;
/** Emitted on demand when the unit changes */
readonly unitChanged: import("@arcgis/lumina").TargetedEvent;
readonly "@eventTypes": {
bufferComplete: BufferTools["bufferComplete"]["detail"];
distanceChanged: BufferTools["distanceChanged"]["detail"];
unitChanged: BufferTools["unitChanged"]["detail"];
};
}