import { IActivityHandler, IActivityContext, Deferrable } from "../../IActivityHandler";
import { MapProvider } from "./MapProvider";
/** Defines inputs for the basic Closest Facility Task activity. This task is related to the Route and Service Area tasks. */
export interface ClosestFacilityTaskInputs {
    /** 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 set of incidents 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. */
    incidents: __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?: __esri.ClosestFacilityParametersAttributeParameterValues[];
    /** The cutoff value used to determine when to stop traversing. */
    defaultCutoff?: number;
    /** The number of facilities to find. */
    defaultTargetFacilityCount?: number;
    /** The language used when generating driving directions. This parameter applies only when returnDirections parameter is set to true. If an unsupported language code is specified, the service returns the directions using the default language, English. */
    directionsLanguage?: string;
    /** The length unit to use when computing directions. The default is as defined in the specific routing network layer. Known values: centimeters | decimal-degrees | decimeters | feet | inches | kilometers | meters | miles | millimeters | nautical-miles | points | yards. */
    directionsLengthUnits?: string;
    /** Defines the amount of direction information returned. Default value: standard. Known values: complete | complete-no-events | instructions-only | standard | summary-only. */
    directionsOutputType?: string;
    /** The style to be used when returning directions. The default will be as defined in the network layer. View the REST layer description for your network service to see a list of supported styles. */
    directionsStyleName?: string;
    /** The name of network attribute to use for the drive time when computing directions. The default is as defined in the specific routing network layer. */
    directionsTimeAttribute?: string;
    /** If true, avoids network elements restricted by barriers or restrictions specified in restrictionAttributes. Default value: true. */
    doNotLocateOnRestrictedElements?: boolean;
    /** 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;
    /** 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 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;
    /** 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 ClosestFacilityTask. 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, barriers are returned in the directions property of each RouteResult. Default Value: false. */
    returnDirections?: boolean;
    /** If true, facilities will be returned with the analysis results. Default Value: false */
    returnFacilities?: boolean;
    /** If true, incidents will be returned with the analysis results. Default value: false. */
    returnIncidents?: boolean;
    /** If true, point barriers will be returned in the barriers property of the ClosestFacilitySolveResult. Default value: false. */
    returnPointBarriers?: boolean;
    /** If true, polygon barriers are returned in the barriers property of the ClosestFacilitySolveResult. Default value: false. */
    returnPolygonBarriers?: boolean;
    /** If true, polyline barriers are returned in the barriers property of the ClosestFacilitySolveResult. Default value: false. */
    returnPolylineBarriers?: boolean;
    /** If true, routes are generated and returned in the route property of each ClosestFacilitySolveResult. Default Value: true */
    returnRoutes?: 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;
    /** Defines the way the timeOfDay value is used. The default value is defined in the network layer. Requires ArcGIS Server service version 10.1 or greater. Known values: start | end. */
    timeOfDayUsage?: string;
    /** Options for traveling to or from the facility. Default values are defined by the network layer. See NATravelDirection for a list of valid values. */
    travelDirection?: 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 Closest Facility Task activity. */
export interface ClosestFacilityTaskOutputs {
    directions: __esri.DirectionsFeatureSet;
    facilities: __esri.Point[];
    incidents: __esri.Point[];
    messages: __esri.NAMessage[];
    pointBarriers: __esri.Point[];
    polygonBarriers: __esri.Polygon[];
    polylineBarriers: __esri.Polyline[];
    routes: __esri.Graphic[];
}
export declare class ClosestFacilityTask implements IActivityHandler {
    static action: string;
    static suite: string;
    execute(inputs: ClosestFacilityTaskInputs, context: IActivityContext, type: typeof MapProvider): Deferrable<ClosestFacilityTaskOutputs>;
}
