import type { IRolloverModifierOptions } from "./RolloverModifier";
import { RolloverModifier } from "./RolloverModifier";
import type { ModifierMouseArgs } from "./ModifierMouseArgs";
import { RolloverModifierRenderableSeriesProps } from "../Visuals/RenderableSeries/RolloverModifier/RolloverModifierRenderableSeriesProps";
import type { IRenderableSeries } from "../Visuals/RenderableSeries/IRenderableSeries";
import { ECoordinateMode } from "../Visuals/Annotations/types/ECoordinateMode";
import type { ILineAnnotation } from "../Visuals/Annotations/LineAnnotation";
/**
 * Optional parameters used to configure a {@link RolloverModifier} at construct time
 */
export interface IVerticalSliceOptions extends IRolloverModifierOptions {
    /**
     * @description the X1 coordinate of the modifier
     * @remarks The X1 coordinate obeys {@link xCoordinateMode} which defines whether the X1 coordinate is a pixel, data-value or relative coordinate
     */
    x1?: number;
    /**
     * The X-Coordinate mode. See {@link ECoordinateMode} for a list of values
     * @remarks Want to display an annotation stretching across the entire width (or height) or the {@link SciChartSurface}?
     * The {@link ECoordinateMode} enum has options which allow for relative, absolute or pixel coordinates which define annotation
     * placement.
     */
    xCoordinateMode?: ECoordinateMode;
    /** Whether the annotation is draggable by the user.  Default false */
    isDraggable?: boolean;
    /** If set and isDraggable is true, a selection box of this color will be shown around the line when it is clicked. */
    lineSelectionColor?: string;
}
/**
 * The VerticalSliceModifier provides a vertical line which can be dragged across the chart area, with optional series tooltips.
 *
 * ---
 * 📚 Docs: {@link https://www.scichart.com/documentation/js/v4/2d-charts/chart-modifier-api/vertical-slice-modifier/vertical-slice-modifier-overview/}
 */
export declare class VerticalSliceModifier extends RolloverModifier {
    /** @inheritDoc */
    get x1(): number;
    /** @inheritDoc */
    set x1(value: number);
    /** @inheritDoc */
    get xCoordinateMode(): ECoordinateMode;
    /** @inheritDoc */
    set xCoordinateMode(value: ECoordinateMode);
    /** @inheritDoc */
    get verticalLine(): ILineAnnotation;
    /** @inheritDoc */
    get isDraggable(): boolean;
    /** @inheritDoc */
    set isDraggable(value: boolean);
    /** @inheritDoc */
    get lineSelectionColor(): string;
    /** @inheritDoc */
    set lineSelectionColor(value: string);
    private x1Property;
    private xCoordinateModeProperty;
    private isDraggableProperty;
    private lineSelectionColorProperty;
    private rmrsProps;
    private rmrsProps1;
    /**
     * Creates an instance of a VerticalSliceModifier
     * @param options Optional parameters used to configure the modifier via {@link IVerticalSliceOptions}
     *
     * ---
     * 📚 Docs: {@link https://www.scichart.com/documentation/js/v4/2d-charts/chart-modifier-api/vertical-slice-modifier/vertical-slice-modifier-overview/}
     */
    constructor(options?: IVerticalSliceOptions);
    modifierMouseMove(args: ModifierMouseArgs): void;
    /**
     * @inheritDoc
     */
    modifierMouseLeave(args: ModifierMouseArgs): void;
    toJSON(): {
        type: string;
        options: Required<Omit<import("./ChartModifierBase2D").IChartModifierBaseOptions, never>>;
    };
    protected getRolloverProps(rs: IRenderableSeries): RolloverModifierRenderableSeriesProps;
    protected getRolloverProps1(rs: IRenderableSeries): RolloverModifierRenderableSeriesProps;
    protected removeSeriesAnnotationsFromParentSurface(rs: IRenderableSeries): void;
    /**
     * @param rs
     */
    protected addSeriesAnnotationsToParentSurface(rs: IRenderableSeries): void;
    protected createLine(options?: IRolloverModifierOptions): import("../Visuals/Annotations/LineAnnotation").LineAnnotation | import("../..").SvgLineAnnotation;
    protected update(): void;
    /** @inheritDoc */
    protected notifyPropertyChanged(propertyName: string): void;
    private calculateXPosition;
}
