import { IActivityHandler, IActivityContext } from "../../IActivityHandler";
import { Lookup } from "../../Collections";
import { MapProvider } from "./MapProvider";
/** Defines inputs to the Asynchronous Geoprocessor task. This task is suitable for geoprocessing services with an asynchronous execution type. */
export interface GeoprocessingAsyncInputs {
    /** The URL of the ArcGIS Server Geoprocessing service task. */
    url: string;
    /** The input arguments accepted by the task. */
    arguments: Lookup<any>;
    /** The spatial reference of the output geometries. If this is not specified, the output geometries are in the spatial reference of the input geometries. If processSpatialReference is specified and outputSpatialReference is not specified, the output geometries' spatial reference is processSpatialReference. */
    outSpatialReference?: number | string | __esri.SpatialReference;
    /** The spatial reference that the model uses to perform geometry operations. If processSpatialReference is specified while outputSpatialReference is not, the output geometries' spatial reference is processSpatialReference.  */
    processSpatialReference?: number | string | __esri.SpatialReference;
}
/** Defines outputs to the Asynchronous Geoprocessor task. */
export interface GeoprocessingAsyncOutputs {
    /** The ID of the geoprocessing job. */
    id?: string;
    /** The status of the geoprocessing job.. */
    status?: string;
    /** The messages from the geoprocessing job. */
    messages?: __esri.GPMessage[];
    /** The results of the geoprocessing job. */
    results?: Lookup<any>;
}
export declare class GeoprocessingAsync implements IActivityHandler {
    static action: string;
    static suite: string;
    execute(inputs: GeoprocessingAsyncInputs, context: IActivityContext, type: typeof MapProvider): Promise<GeoprocessingAsyncOutputs>;
    /**
     * Returns true if you need to call `waitForJobCompletion()` in order to get the promise for the completion of the job.
     * Returns false if `submitJob()` already returned that promise.
     * This represents a change in behaviour introduced in v4.13 of the ArcGIS API for JavaScript.
     */
    needToWaitForJobCompletion(): boolean;
    /**
     * This function returns as a workaround for cases where the job completes but the resulting `esri.JobInfo`
     * does not include the names of the results.
     * @param taskUrl The url for the task.
     * @param jobInfo Details of the current geoprocessing job.
     * @param requestOptions Options to be included in the request, such as an `AbortSignal`.
     */
    populateResults(taskUrl: string, jobInfo: __esri.JobInfo, requestOptions?: any): Promise<void>;
}
