import { IActivityHandler, Deferrable } from "../../IActivityHandler";
/** Defines inputs to the Offset activity. This activity relies on the geometry engine. */
export interface OffsetEngineTaskInputs {
    /** The geometries to offset. */
    geometry: __esri.Geometry;
    /** The offset distance for the geometry. If offsetDistance > 0, then the offset geometry is constructed to the right of the oriented input geometry; if offsetDistance = 0, then there is no change to the geometry; otherwise the geometry is constructed to the left. For a simple polygon, the orientation of outer rings is clockwise and for inner rings is counterclockwise, so the "right side" of a simple polygon is always its inside. */
    distance: number;
    /** The join type. */
    joinType: "round" | "bevel" | "miter" | "square" | string;
    /** Measurement unit of the offset distance. Defaults to the units of the input geometry. Known values: meters | feet | kilometers | miles | nautical-miles | yards. */
    unit?: string | number;
    /** Applicable when joinType = 'miter'; bevelRatio is multiplied by the offset distance and the result determines how far a mitered offset intersection can be located before it is beveled. */
    bevelRatio?: number;
    /** Applicable when joinType = 'round'; flattenError determines the maximum distance of the resulting segments compared to the true circular arc. The algorithem never produces more than around 180 vertices for each round join. */
    flattenError?: number;
}
/** Defines outputs to the Offset activity. */
export interface OffsetEngineTaskOutputs {
    geometry: __esri.Geometry;
}
export declare class OffsetEngineTask implements IActivityHandler {
    static action: string;
    static suite: string;
    execute(inputs: OffsetEngineTaskInputs): Deferrable<OffsetEngineTaskOutputs>;
}
