import { EChart2DModifierType } from "../../types/ChartModifierType";
import type { ModifierMouseArgs } from "./ModifierMouseArgs";
import type { IPinchZoomModifierOptions } from "./PinchZoomModifier";
import { PinchZoomModifier } from "./PinchZoomModifier";
/**
 * Options for passing to the constructor of {@link ZoomPanModifier} derived types
 */
export interface IZoomPanModifierOptions extends IPinchZoomModifierOptions {
    /**
     * Sets whether to enable pinch zoom behavior of {@link SciChartSurface} on touchscreen devices
     */
    enableZoom?: boolean;
}
/**
 * The ZoomPanModifier provides drag to pan behavior on a 2D {@link SciChartSurface}
 * as well as pinch zoom behavior on touchscreen devices
 * within SciChart - High Performance {@link https://www.scichart.com/javascript-chart-features | JavaScript Charts}
 * @remarks
 *
 * To apply the ZoomPanModifier to a {@link SciChartSurface} and add drag to pan behavior,
 * use the following code:
 *
 * ```ts
 * const sciChartSurface: SciChartSurface;
 * sciChartSurface.chartModifiers.add(new ZoomPanModifier());
 * ```
 *
 * ---
 * 📚 Docs: {@link https://www.scichart.com/documentation/js/v4/2d-charts/chart-modifier-api/zooming-and-panning/zoom-pan-modifier/}
 */
export declare class ZoomPanModifier extends PinchZoomModifier {
    readonly type: EChart2DModifierType;
    /**
     * Sets whether to enable pinch zoom behavior of {@link SciChartSurface} on touchscreen devices
     */
    enableZoom: boolean;
    /**
     * Creates an instance of a ZoomPanModifier
     * @param options optional parameters to pass to the ZoomPanModifier to configure it upon construction
     *
     * ---
     * 📚 Docs: {@link https://www.scichart.com/documentation/js/v4/2d-charts/chart-modifier-api/zooming-and-panning/zoom-pan-modifier/}
     */
    constructor(options?: IZoomPanModifierOptions);
    /** @inheritDoc */
    modifierMouseDown(args: ModifierMouseArgs): void;
    /** @inheritDoc */
    modifierMouseMove(args: ModifierMouseArgs): void;
    /** @inheritDoc */
    modifierMouseUp(args: ModifierMouseArgs): void;
    /** @inheritDoc */
    modifierPointerCancel(args: ModifierMouseArgs): void;
    toJSON(): {
        type: string;
        options: Required<Omit<import("./ChartModifierBase2D").IChartModifierBaseOptions, never>>;
    };
    protected performModifierAction(args: ModifierMouseArgs): void;
    protected getIsActionAllowed(args: ModifierMouseArgs): boolean;
    private performPan;
}
