import type { Point } from 'framer-motion'; import type { AreaSeriesQueryResult, DotSeriesQueryResult, LineSeriesQueryResult, SeriesToQuadtree } from '../context/XYChartOverlayPerformance.context.js'; import type { AxisIdToScales } from '../context/XYChartScales.context.js'; import { type AnyLinearSeries, type AreaSeriesWithDatapoints, type AxisIdToScaleDomain, type DotSeriesWithDatapoints, type LineSeriesWithDatapoints, type SeriesToMetadata, type MapDatapoints } from '../types/xy-chart-internals.js'; /** * Build quadtrees for fast nearest-point queries for each linear series. * Filters out gap datapoints and points outside current x/y range. * * @param seriesWithDatapoints - Array of linear (dot/line/area) series. * @param axisIdToScales - Scale lookup keyed by axis id. * @param datapointToMetadata - Map with metadata (e.g., gap flags). * @param seriesToMetadata - Map from series to its metadata. * @param axisIdToScaleDomain - Domain lookup keyed by axis id. * @returns Map from series id to its quadtree. */ export declare function buildQuadtrees(seriesWithDatapoints: AnyLinearSeries[], axisIdToScales: AxisIdToScales, datapointToMetadata: MapDatapoints, seriesToMetadata: SeriesToMetadata, axisIdToScaleDomain: AxisIdToScaleDomain): SeriesToQuadtree; type DebouncedQuadtrees = (seriesWithDatapoints: AnyLinearSeries[], axisIdToScales: AxisIdToScales, datapointsMetadata: MapDatapoints, seriesToMetadata: SeriesToMetadata, axisIdToScaleDomain: AxisIdToScaleDomain, onDone: (trees: SeriesToQuadtree) => void) => void; export declare function getDebouncedQuadtrees(key: string): DebouncedQuadtrees; export declare function cancelDebouncedQuadtrees(key: string): void; /** * Euclidean distance between two (x,y) points. * * @param x0 - First point x. * @param x1 - Second point x. * @param y0 - First point y. * @param y1 - Second point y. * @returns Distance value. */ export declare function distanceBetweenTwoPoints(x0: number, x1: number, y0: number, y1: number): number; /** * Build a query function that returns the closest datapoint * among provided series to a given pixel position. * Stops early if within DEFAULT_DATA_POINT_RADIUS. * * @param seriesIdToQuadtree - Map of series id to quadtree. * @param axisIdToScales - Axis scale lookup. * @returns QueryClosest function implementation. */ export declare function buildQueryClosest(seriesIdToQuadtree: SeriesToQuadtree, axisIdToScales: AxisIdToScales, seriesToMetadata: SeriesToMetadata, axisIdToScaleDomain: AxisIdToScaleDomain, datapointToMetadata: MapDatapoints): { (arrayOfSeries: DotSeriesWithDatapoints[], position: Point): DotSeriesQueryResult | undefined; (arrayOfSeries: LineSeriesWithDatapoints[], position: Point): LineSeriesQueryResult | undefined; (arrayOfSeries: AreaSeriesWithDatapoints[], position: Point): AreaSeriesQueryResult | undefined; }; export {};