import { Axes } from '../Axes/axes.js';
import { CartesianAxes, Chart } from '../index.js';
import { Visitor } from './visitor.js';
type CrossSectionSelectOptions = {
    x?: {
        axisIndex: number;
    };
    draggable?: boolean;
};
export declare class CrossSectionSelect<V extends number | Date> implements Visitor {
    private trace;
    private group;
    private backGroup;
    private frontGroup;
    private pointRadius;
    private simulation;
    private axis;
    value: V;
    currentData: any;
    callback: (value: V) => void;
    format: (n: number | {
        valueOf(): number;
    } | Date) => string;
    private options;
    private visible;
    constructor(value: V, callback: (value: V) => void, options: CrossSectionSelectOptions, trace?: string[]);
    setTrace(trace: string[]): void;
    visit(axis: Axes): void;
    create(axis: CartesianAxes): void;
    redraw(): void;
    start(event: any): void;
    drag(event: any): void;
    end(): void;
    styleForChart(id: any): CSSStyleDeclaration;
    updateLine(xPos: number): void;
    updateDataPoints(points: any, styles: any): void;
    updateLabels(points: any, styles: any): void;
    limitValue(): boolean;
    findNearestPoint(chart: Chart, xPos: any): {
        id: string;
        x: number;
        y: number;
        value?: string;
        d: any;
    };
    determineLabel(yExtent: any[], yValue: any): any;
}
export {};
