import { Point } from "../../../Core/Point";
import { EChart2DModifierType } from "../../../types/ChartModifierType";
import { EModifierType } from "../../../types/ModifierType";
import type { ModifierMouseArgs } from "../ModifierMouseArgs";
import type { IZoomExtentsModifierOptions } from "../ZoomExtentsModifier";
import { ZoomExtentsModifier } from "../ZoomExtentsModifier";
/**
 * Optional parameters used to configure a {@link PolarZoomExtentsModifier} at construct time
 */
export interface IPolarZoomExtentsModifierOptions extends IZoomExtentsModifierOptions {
    /**
     * Sets start angle for X axis. By default the initial start angle is used.
     */
    xStartAngle?: number;
    /**
     * Sets start angle for Y axis. By default the initial start angle is used.
     */
    yStartAngle?: number;
    /**
     * Sets total angle for angular axis. By default the initial total angle is used.
     */
    totalAngle?: number;
    /**
     * Sets lengthScale for radian axis. By default the initial length scale is used.
     */
    lengthScale?: number;
    /**
     * Sets the center point for both axes. By default the initial center point for X axis is used.
     */
    centerPoint?: Point;
    /**
     * Sets inner radius for the radial axis. By default the initial inner radius is used.
     */
    innerRadius?: number;
    /**
     * Sets flag to reset start angles for X and Y axes
     */
    resetStartAngles?: boolean;
    /**
     * Sets flag to reset total angle for the angular axis
     */
    resetTotalAngle?: boolean;
    /**
     * Sets flag to reset X and Y visible ranges
     */
    resetRanges?: boolean;
    /**
     * Sets flag to reset length scale for radial axis
     */
    resetLengthScale?: boolean;
    /**
     * Sets flag to reset center point for X and Y axes
     */
    resetCenterPoint?: boolean;
    /**
     * Sets flag to reset inner radius for the radial axis
     */
    resetInnerRadius?: boolean;
}
/**
 * The PolarZoomExtentsModifier provides double-tap or double-click to zoom-to-fit (Zoom Extents) behavior
 * on a 2D {@link SciChartPolarSurface} within SciChart - High Performance {@link https://www.scichart.com/javascript-chart-features | JavaScript Charts}
 * @remarks
 *
 * To apply the PolarZoomExtentsModifier to a {@link SciChartPolarSurface} and add drag to zoom behavior,
 * use the following code:
 *
 * ```ts
 * const sciChartSurface: SciChartPolarSurface;
 * sciChartSurface.chartModifiers.add(new PolarZoomExtentsModifier());
 * ```
 *
 * Animation of the zoom extents be controlled via the {@link PolarZoomExtentsModifier.isAnimated},
 * {@link PolarZoomExtentsModifier.animationDuration} and {@link PolarZoomExtentsModifier.easingFunction} properties.
 *
 * ---
 * 📚 Docs: {@link https://www.scichart.com/documentation/js/v4/2d-charts/chart-modifier-api/polar-modifiers/polar-zoom-extents-modifier/}
 */
export declare class PolarZoomExtentsModifier extends ZoomExtentsModifier {
    readonly type: EChart2DModifierType;
    /**
     * Gets or sets start angle for X axis. By default the initial start angle is used.
     */
    xStartAngle: number;
    /**
     * Gets or sets start angle for Y axis. By default the initial start angle is used.
     */
    yStartAngle: number;
    /**
     * Gets or sets total angle for angular axis. By default the initial total angle is used.
     */
    totalAngle: number;
    /**
     * Get or sets lengthScale for radian axis. By default the initial total angle is used.
     */
    lengthScale: number;
    /**
     * Get or sets the center point for both axes. By default the initial center point for X axis is used.
     */
    centerPoint: Point;
    /**
     * Get or sets inner radius for the radial axis. By default the initial inner radius is used.
     */
    innerRadius: number;
    /**
     * Get or sets flag to reset X and Y visible ranges
     */
    resetRanges: boolean;
    /**
     * Get or sets flag to reset start angles for X and Y axes
     */
    resetStartAngles: boolean;
    /**
     * Get or sets flag to reset total angle for the angular axis
     */
    resetTotalAngle: boolean;
    /**
     * Gets of sets flag to reset length scale for radial axis
     */
    resetLengthScale: boolean;
    /**
     * Gets of sets flag to reset center point for X and Y axes
     */
    resetCenterPoint: boolean;
    /**
     * Gets of sets flag to reset inner radius for the radial axis
     */
    resetInnerRadius: boolean;
    /**
     * Creates an instance of PolarZoomExtentsModifier
     * @param options Optional parameters to configure the modifier via {@link IPolarZoomExtentsModifierOptions}
     *
     * ---
     * 📚 Docs: {@link https://www.scichart.com/documentation/js/v4/2d-charts/chart-modifier-api/polar-modifiers/polar-zoom-extents-modifier/}
     */
    constructor(options?: IPolarZoomExtentsModifierOptions);
    /** @inheritDoc */
    get modifierType(): EModifierType;
    private getAngularAxis;
    private getRadialAxis;
    /** @inheritDoc */
    onAttach(): void;
    /** @inheritDoc */
    modifierDoubleClick(args: ModifierMouseArgs): void;
    toJSON(): {
        type: string;
        options: Required<Omit<import("../ChartModifierBase2D").IChartModifierBaseOptions, never>>;
    };
}
