import { IActivityHandler, IActivityContext, Deferrable } from "../../IActivityHandler";
/** Defines inputs for the Relation task. This task requires a geometry service. The input arrays are assumed to be in the same spatial reference, and the relations are evaluate in 2D. Z-coordinates are not used. Geometry types cannot be mixed within an array. */
export interface RelationServiceTaskInputs {
    /** The URL of the ArcGIS geometry service. */
    url: string;
    /** The first array of geometries to compute the relation. */
    geometry1: __esri.Geometry | __esri.Geometry[];
    /** The second array of geometries to compute the relation. */
    geometry2: __esri.Geometry | __esri.Geometry[];
    /** The spatial relationship to be tested between the two input geometry arrays. */
    relation?: "cross" | "disjoint" | "in" | "interior-intersection" | "intersection" | "line-coincidence" | "line-touch" | "overlap" | "point-touch" | "touch" | "within" | string;
}
/** Defines the paired index object returned by the service task. */
export interface GeometryArrayIndexPair {
    geometry1Index: number;
    geometry2Index: number;
}
/** Defines outputs for the Relation task. */
export interface RelationServiceTaskOutputs {
    /** The array of geometries that meet the specified relation. */
    incident?: __esri.Geometry[];
    /** The array of geometries that meet the specified relation. */
    incidents?: __esri.Geometry[][];
}
export declare class RelationServiceTask implements IActivityHandler {
    static action: string;
    static suite: string;
    execute(inputs: RelationServiceTaskInputs, context: IActivityContext): Deferrable<RelationServiceTaskOutputs>;
    private getEsriGeometryRelation;
}
