import { EColumnMode, EColumnYMode } from "../../../../types/ColumnMode";
import type { SCRTDoubleVector, TSciChart } from "../../../../types/TSciChart";
import type { CoordinateCalculatorBase } from "../../../Numerics/CoordinateCalculators/CoordinateCalculatorBase";
export type TRectangleSeriesHitTestResult = {
    isHit: boolean;
    nearestPointIndex: number;
    isWithinDataBounds: boolean;
    xValue?: number;
    yValue?: number;
    x1Value?: number;
    y1Value?: number;
};
/**
 * Hit-test function for BoxSeries or PolarColumnSeries
 * Only for sorted data without overlapping columns only for columnXMode = EColumnMode.Mid or EColumnMode.Start
 * Using binary search, time complexity O(log(N))
 */
declare function hitTestForBoxSorted(wasmContext: TSciChart, xCoordinateCalculator: CoordinateCalculatorBase, yCoordinateCalculator: CoordinateCalculatorBase, xValues: SCRTDoubleVector, yValues: SCRTDoubleVector, y1Values: SCRTDoubleVector | undefined, xHitCoord: number, yHitCoord: number, defaultY1: number, columnCoordWidth: number, columnXMode: EColumnMode, columnYMode: EColumnYMode, isPolar: boolean): TRectangleSeriesHitTestResult;
/**
 * Hit-test function for BoxSeries or PolarColumnSeries
 * Iterates over all data points, time complexity O(N)
 */
declare function hitTestForBoxUnsorted(wasmContext: TSciChart, xCoordinateCalculator: CoordinateCalculatorBase, yCoordinateCalculator: CoordinateCalculatorBase, xValues: SCRTDoubleVector, x1Values: SCRTDoubleVector | undefined, yValues: SCRTDoubleVector, y1Values: SCRTDoubleVector | undefined, xHitCoord: number, yHitCoord: number, defaultY1: number, columnCoordWidth: number, columnXMode: EColumnMode, columnYMode: EColumnYMode, isVertical: boolean, isPolar: boolean): TRectangleSeriesHitTestResult;
/**
 * Hit-tests BoxSeries and Polar Column Series
 */
declare function hitTestForBox(wasmContext: TSciChart, xCoordinateCalculator: CoordinateCalculatorBase, yCoordinateCalculator: CoordinateCalculatorBase, xValues: SCRTDoubleVector, x1Values: SCRTDoubleVector | undefined, yValues: SCRTDoubleVector, y1Values: SCRTDoubleVector | undefined, xHitCoord: number, yHitCoord: number, defaultY1: number, columnCoordWidth: number, columnXMode: EColumnMode, columnYMode: EColumnYMode, isVertical: boolean, isSorted: boolean, isPolar: boolean): TRectangleSeriesHitTestResult;
export declare const hitTestHelpersRectangleSeries: {
    hitTestForBoxSorted: typeof hitTestForBoxSorted;
    hitTestForBoxUnsorted: typeof hitTestForBoxUnsorted;
    hitTestForBox: typeof hitTestForBox;
};
export {};
