import { IActivityHandler, IActivityContext, Deferrable } from "../../IActivityHandler";
import { MapProvider } from "./MapProvider";
/** Defines inputs for the Buffer activity. This activity relies on an ArcGIS Geometry Service REST endpoint. */
export interface BufferServiceTaskInputs {
    /** The URL of the ArcGIS geometry service. */
    url: string;
    /** The geometries to buffer. */
    geometry: __esri.Geometry | __esri.Geometry[];
    /** The distances the input geometries are buffered. */
    distance: number | number[];
    /** The units for calculating each buffer distance. If units are not specified, they are inferred from bufferSpatialReference. If bufferSpatialReference is not specified, units are derived from the features being buffered. */
    unit?: "meters" | "feet" | "kilometers" | "miles" | "nautical-miles" | "yards" | string;
    /** The spatial reference in which the geometries are buffered. If bufferSpatialReference is not specified, the geometries are buffered in the spatial reference specified by outSpatialReference. If outSpatialReference is also not specified, they are buffered in the spatial reference of the features. */
    bufferSpatialReference?: number | string | __esri.SpatialReference;
    /** The spatial reference for the returned geometries. If outSpatialReference is not specified, the geometries are output in the spatial reference specified by bufferSpatialReference. If bufferSpatialReference is also not specified, they are in the spatial reference of the features. */
    outSpatialReference?: number | string | __esri.SpatialReference;
    /** If the input geometries are in geographic coordinate system, set geodesic to true in order to generate a buffer polygon using a geodesic distance. Requires ArcGIS Server 10.1+ geometry service. */
    geodesic?: boolean;
    /** If true, all geometries buffered at a given distance are unioned into a single (possibly multipart) polygon, and the unioned geometry is placed in the output array. Defaults to false. */
    union?: boolean;
}
/** Defines outputs for the Buffer activity. */
export interface BufferServiceTaskOutputs {
    /** Indicates the first buffer or result (or the union result). */
    geometry?: __esri.Polygon;
    /** Indicates all buffer results. */
    results?: __esri.Polygon[];
}
export declare class BufferServiceTask implements IActivityHandler {
    static action: string;
    static suite: string;
    execute(inputs: BufferServiceTaskInputs, context: IActivityContext, type: typeof MapProvider): Deferrable<BufferServiceTaskOutputs>;
}
