import { IActivityHandler, IActivityContext, Deferrable } from "../../IActivityHandler";
import { MapProvider } from "./MapProvider";
/** Defines inputs for the basic Service Area Task activity. This task is related to the Route and Service Area tasks. */
export interface ServiceAreaTaskInputs {
    /** The URL to the ArcGIS network analysis service. */
    url: string;
    /** The set of facilities loaded as network locations during analysis. These can be specified as either a DataLayer or a FeatureSet. Either the URL or the features should be specified, but not both. */
    facilities: __esri.DataLayer | __esri.FeatureSet;
    /** The list of network attribute names to be accumulated with the analysis; i.e., which attributes should be returned as part of the response. The defaulted is as defined in the specific routing network layer. See: http://resources.arcgis.com/en/help/main/10.2/index.html#//00470000000m000000 */
    accumulateAttributes?: string[];
    /** An array of parameter values. If present, an attribute name, parameter name, and value must be specified. */
    attributeParameterValues?: any[];
    /** An array of numbers defining the breaks. */
    defaultBreaks?: number[];
    /** If true, avoids network elements restricted by barriers or restrictions specified in restrictionAttributes. Default value: true. */
    doNotLocateOnRestrictedElements?: boolean;
    /** An array of network source names to NOT use when generating polygons. */
    excludeSourcesFromPolygons?: string[];
    /** The network attribute name to be used as the impedance attribute in the analysis. The default is as defined in the routing network layer. You can specify any attribute names listed in the Service Directory under Network Dataset -> Network Attributes as "Usage Type: esriNAUTCost". You can also specify a value of "none" to indicate that no network attributes should be used for impedance. For example, set impedanceAttribute to "Time" for the quickest route, or to "Length" for the shortest drive, assuming the service has those two esriNAUTCost attributes. */
    impedanceAttribute?: string;
    impedenceAttribute?: string;
    /** If true, similar ranges will be merged in the resulting polygons. Default Value: false. */
    mergeSimilarPolygonRanges?: boolean;
    /** The precision of the output geometry after generalization. If 0, no generalization of output geometry is performed. If present and positive, it represents the MaximumAllowableOffset parameter and generalization is performed according to IPolycurve.Generalize. */
    outputGeometryPrecision?: number;
    /** The units of the output geometry precision. Known Values: centimeters | decimal-degrees | decimeters | feet | inches | kilometers | meters | miles | millimeters | nautical-miles | points | yards. */
    outputGeometryPrecisionUnits?: string;
    /** The type of output lines to be generated in the result. Default Value: true-shape. Known Values: none | straight | true-shape | true-shape-with-measure. */
    outputLines?: string;
    /** The type of output polygons to be generated in the result. The default is as defined in the specific routing network layer used. Known Values: none | simplified | detailed. */
    outputPolygons?: string;
    /** The spatial reference (or well-known ID of same) for the geometries returned with the analysis results. If not specified, the geometries are returned in the spatial reference of the map. */
    outSpatialReference?: number | string | __esri.SpatialReference;
    /** Indicates if the lines should overlap from multiple facilities. The default is defined by the network analysis layer. Default Value: false */
    overlapLines?: boolean;
    /** Indicates if the polygons should overlap from multiple facilities. The default is defined by the network analysis layer. Default Value: false */
    overlapPolygons?: boolean;
    /** The set of point barriers loaded as network locations during analysis. Can be an instance of a DataLayer or FeatureSet. Either a URL or features should be supplied, but not both. */
    pointBarriers?: __esri.DataLayer | __esri.FeatureSet;
    /** The set of polygon barriers loaded as network locations during analysis. At ArcGIS Server 10.1, an optional url property was added. Use this property to specify a REST query request to a Feature, Map or GP Service that returns a JSON feature set. The url property can be specified using DataFile. Note that either the features or url property should be specified. */
    polygonBarriers?: __esri.DataLayer | __esri.FeatureSet;
    /** The set of polyline barriers loaded as network locations during analysis. At ArcGIS Server 10.1, an optional url property was added. Use this property to specify a REST query request to a Feature, Map or GP Service that returns a JSON feature set. The url property can be specified using DataFile. Note that either the features or url property should be specified. */
    polylineBarriers?: __esri.DataLayer | __esri.FeatureSet;
    /** The list of network attribute names to be used as restrictions with the analysis. The default is as defined in the specific routing network layer used in your ServiceAreaTask. Possible values are listed in the Service Directory under Network Dataset -> Network Attributes. You can also specify a value of none to indicate that no network attributes should be used as restrictions. If you specify an empty array, it will default to the default of the service. */
    restrictionAttributes?: string[];
    /** Specifies how U-Turns should be handled. The default is as defined in the specific routing network layer. Known Values: allow-backtrack | at-dead-ends-only | no-backtrack | at-dead-ends-and-intersections. */
    restrictUTurns?: string;
    /** If true, facilities will be returned with the analysis results. Default Value: false */
    returnFacilities?: boolean;
    /** If true, point barriers will be returned in the barriers property of the ServiceAreaSolveResult. Default value: false. */
    returnPointBarriers?: boolean;
    /** If true, polygon barriers are returned in the barriers property of the ServiceAreaSolveResult. Default value: false. */
    returnPolygonBarriers?: boolean;
    /** If true, polyline barriers are returned in the barriers property of the ServiceAreaSolveResult. Default value: false. */
    returnPolylineBarriers?: boolean;
    /** If true, lines will be split at breaks. Default Value: false. */
    splitLinesAtBreaks?: boolean;
    /** If true, polygons will be split at breaks. Default Value: false. */
    splitPolygonsAtBreaks?: boolean;
    /** The arrival or departure date and time. For example, if the travelDirection is set to TO_FACILITY and timeOfDayUsage is set to "end" and timeOfDay is set to 8:00 a.m., the returned route(s) will be setup to arrive at the facility at 8:00 a.m. local time. Requires ArcGIS Server service version 10.1 or greater. */
    timeOfDay?: Date;
    /** Options for traveling to or from the facility. Default values are defined by the network layer. Known Values: from-facility | to-facility. */
    travelDirection?: string;
    /** If true, the outermost polygon (at the maximum break value) will be trimmed. The default is defined in the network analysis layer. Default Value: false */
    trimOuterPolygon?: boolean;
    /** If polygons are being trimmed, provides the distance to trim. The default value is defined in the network analysis layer. */
    trimPolygonDistance?: number;
    /** If polygons are being trimmed, specifies the units of trimPolygonDistance. The default is defined in the network analysis layer. */
    trimPolygonDistanceUnits?: string;
    /** If true, the hierarchy attribute for the network should be used in analysis. The default is as defined in the specific routing network layer. */
    useHierarchy?: boolean;
}
/** defines outputs for the Service Area Task activity. */
export interface ServiceAreaTaskOutputs {
    facilities: __esri.Point[];
    messages: __esri.NAMessage[];
    pointBarriers: __esri.Point[];
    polygonBarriers: __esri.Polygon[];
    polylineBarriers: __esri.Polyline[];
    serviceAreaPolygons: __esri.Graphic[];
    serviceAreaPolylines: __esri.Graphic[];
}
export declare class ServiceAreaTask implements IActivityHandler {
    static action: string;
    static suite: string;
    execute(inputs: ServiceAreaTaskInputs, context: IActivityContext, type: typeof MapProvider): Deferrable<ServiceAreaTaskOutputs>;
}
