import { IActivityHandler, IActivityContext, Deferrable } from "../../IActivityHandler";
import { Lookup } from "../../Collections";
import { MapProvider } from "./MapProvider";
/** Defines inputs for the Geocode activity. */
export interface GeocodeInputs {
    /** The URL of the geocoding service. */
    url: string;
    /** The various address fields accepted by the corresponding geocode service. These fields are listed in the addressFields property of the JSON representation of the associated geocode service. Example: Suppose that addressFields of a geocode service resource includes fields with the following names: Street, City, State, and Zone. If you want to perform the Geocode operation by providing values for the Street and Zone fields, you'd set the query parameters as Street: 380 New York St, Zone: 92373. */
    address?: string | Lookup<any>;
    /** The maximum number of locations to be returned by a search, up to the maximum number allowed by the geocode service. If not specified, the maximum number of candidates for which the service is configured will be returned. Note: This parameter was added at 10.3, and is only supported by geocode services published with ArcGIS 10.3 for Server and later versions. */
    maxLocations?: number;
    /** The list of fields to be included in the returned result set. This list is a comma-delimited list of field names. If you specify the shape field in the list of return fields, it is ignored. For non-intersection addresses, you can specify the candidate fields from the geocode service resource. For intersection addresses, you can specify the intersection candidate fields from the geocode service resource. Example: [StreetName,StreetType]. Note: outFields = [*] returns all fields. */
    outFields?: string | string[];
    /** The well-known ID (WKID) of the spatial reference or a Spatial Reference object for the returned address candidates. For a list of valid WKID values, see http://resources.arcgis.com/EN/HELP/REST/APIREF/PCS.HTML and http://resources.arcgis.com/EN/HELP/REST/APIREF/GCS.HTML. */
    outSpatialReference?: number | string | __esri.SpatialReference;
    /** The spatial extent (bounding box) to be used in geocoding. The response will return only the candidates that are within this spatial extent. Unless the spatialReference is included in the searchExtent, the coordinates are assumed to be in the spatial reference of the locator. Note: This optional parameter is supported only for services that use locators created using ArcGIS 10.0 or later. If comma-separated values are used, they must be in the following format: <XMin>,<YMin>,<XMax>,<YMax>. The searchExtent coordinates should always use a period as the decimal separator even in countries where a comma is traditionally used. */
    searchExtent?: number[] | __esri.Extent;
    /** Defines an origin point location that is used with the distance parameter to sort geocoding candidates based on their proximity to said location. The distance parameter specifies the radial distance from the location in meters. If a distance is not specified, it defaults to 2000 meters. The location parameter can be represented by a Point object or as a comma-separated list. The spatial reference can be specified if a Point is used; otherwise the spatial reference is assumed to be the same as that of the geocoding service. If comma-separated values are used, they must be in the following format: <XCoordinate>,<YCoordinate>. Note: This parameter was added at 10.3 and is only supported by geocode services published with ArcGIS 10.3 for Server and later versions. */
    location?: number[] | __esri.Point;
    /** Specifies the radius of an area around a point location that is used to boost the rank of geocoding candidates so that candidates closest to the location are returned first. The distance value is in meters. If the distance parameter is specified, the location parameter must be specified as well. */
    distance?: number;
    /** The time span in milliseconds to wait for the request's results. */
    timeout?: number;
}
/** Defines outputs for the Geocode activity. */
export interface GeocodeOutputs {
    /** Indicates the first candidate address. */
    candidate?: __esri.AddressCandidate;
    /** Indicates all the candidates. */
    candidates?: __esri.AddressCandidate[];
    /** Indicates the result spatial reference. */
    spatialReference?: __esri.SpatialReference;
}
export declare class Geocode implements IActivityHandler {
    static action: string;
    static suite: string;
    execute(inputs: GeocodeInputs, context: IActivityContext, type: typeof MapProvider): Deferrable<GeocodeOutputs>;
}
