import type { Point } from '../../core/types/point.js'; import type { BarSeriesQueryResult, RectSeriesQueryResult, SeriesQueryResult } from '../context/XYChartOverlayPerformance.context.js'; import type { AxisIdToScales } from '../context/XYChartScales.context.js'; import { type AnyXYChartScale, type AxisIdToScaleDomain, type BarSeriesWithDatapoints, type RectDatapointInternal, type RectSeriesWithDatapoints, type SeriesToMetadata, type MapDatapoints, type XYChartAxisDirection } from '../types/xy-chart-internals.js'; import type { BarDatapoint } from '../types/xy-chart.js'; interface RectAccessors { xAccessor: (datapoint: RectDatapointInternal) => number; yAccessor: (datapoint: RectDatapointInternal) => number; widthAccessor: (datapoint: RectDatapointInternal) => number; heightAccessor: (datapoint: RectDatapointInternal) => number; } interface BarAccessors { xAccessor: (datapoint: BarDatapoint) => number; yAccessor: (datapoint: BarDatapoint) => number; widthAccessor: (datapoint: BarDatapoint) => number; heightAccessor: (datapoint: BarDatapoint) => number; } export declare function getAccessors(series: RectSeriesWithDatapoints | BarSeriesWithDatapoints, axisIdToScales: AxisIdToScales, datapointMetadataMap: MapDatapoints, xRelAccessor?: (d: number) => number, yRelAccessor?: (d: number) => number): { xAccessor: (datapoint: RectDatapointInternal) => number; yAccessor: (datapoint: RectDatapointInternal) => number; widthAccessor: (datapoint: RectDatapointInternal) => number; heightAccessor: (datapoint: RectDatapointInternal) => number; }; export declare const getPixelDimensionsForDatapoint: (datapoint: RectDatapointInternal | BarDatapoint, genAccessors: RectAccessors | BarAccessors) => { x: number; y: number; width: number; height: number; }; /** * Resolves a datapoint's pixel bounding box, expanded to `getBarHitBox`'s * minimum hit-target size for bar series. Shared between the linear-scan * and grid-based hover queries so they stay in sync. */ export declare function getHitBoxForDatapoint(datapoint: RectDatapointInternal | BarDatapoint, accessors: RectAccessors | BarAccessors, isBar: boolean, xScale: AnyXYChartScale, yScale: AnyXYChartScale, baseline: XYChartAxisDirection): { x: number; y: number; width: number; height: number; }; /** * Retrieves the datapoint that is currently being hovered over based on the given position. */ export declare function getHoveredDatapoint(position: Point, series: RectSeriesWithDatapoints | BarSeriesWithDatapoints, axisIdToScales: AxisIdToScales, datapointMetadataMap: MapDatapoints, seriesToMetadata: SeriesToMetadata, axisIdToScaleDomain: AxisIdToScaleDomain): BarDatapoint | undefined; export declare function buildQueryHovered(axisIdToScales: AxisIdToScales, datapointMetadataMap: MapDatapoints, seriesToMetadata: SeriesToMetadata, axisIdToScaleDomain: AxisIdToScaleDomain): { (arrayOfSeries: RectSeriesWithDatapoints[], position: Point): RectSeriesQueryResult | undefined; (arrayOfSeries: BarSeriesWithDatapoints[], position: Point): BarSeriesQueryResult | undefined; }; export type QueryAllHovered = (arrayOfSeries: (RectSeriesWithDatapoints | BarSeriesWithDatapoints)[], position: Point) => SeriesQueryResult[]; export declare function buildQueryAllHovered(axisIdToScales: AxisIdToScales, datapointMetadataMap: MapDatapoints, seriesToMetadata: SeriesToMetadata, axisIdToScaleDomain: AxisIdToScaleDomain): QueryAllHovered; export {}; //# sourceMappingURL=query-hovered.d.ts.map