import type { ScatterItemIdentifier } from "../../../../models/seriesType/index.mjs"; import type { ChartSeriesType } from "../../../../models/seriesType/config.mjs"; import type { UseChartSeriesSignature } from "../../corePlugins/useChartSeries/index.mjs"; import type { ChartPluginSignature } from "../../models/index.mjs"; import type { UseChartCartesianAxisSignature } from "../useChartCartesianAxis/index.mjs"; import type { UseChartHighlightSignature } from "../useChartHighlight/index.mjs"; import type { UseChartInteractionSignature } from "../useChartInteraction/index.mjs"; import type { UseChartTooltipSignature } from "../useChartTooltip/index.mjs"; import type { UseChartZAxisSignature } from "../useChartZAxis/index.mjs"; import type { UseChartKeyboardNavigationSignature } from "../useChartKeyboardNavigation/index.mjs"; import type { ChartsActivationEvent } from "../../../../models/events.mjs"; export interface UseChartVoronoiInstance { /** * Enable the voronoi computation. */ enableVoronoi: () => void; /** * Disable the voronoi computation. */ disableVoronoi: () => void; } export interface UseChartVoronoiState { voronoi: { /** * Set to `true` when `VoronoiHandler` is active. * Used to prevent collision with mouseEnter events. */ isVoronoiEnabled?: boolean; }; } export interface UseChartVoronoiParameters { /** * If true, the hit area interaction is disabled and falls back to hover events. */ disableHitArea?: boolean; /** * Defines the maximum distance between a scatter point and the pointer that triggers the interaction. * If set to `'item'`, the radius is the `markerSize`. * If `undefined`, the radius is assumed to be infinite. */ hitAreaRadius?: 'item' | number | undefined; /** * Callback fired when clicking close to an item. * This is only available for scatter plot for now. * @param {ChartsActivationEvent} event Event caught at the svg level * @param {ScatterItemIdentifier} scatterItemIdentifier Identify which item got clicked */ onItemClick?: (event: ChartsActivationEvent, scatterItemIdentifier: ScatterItemIdentifier) => void; } export type UseChartVoronoiDefaultizedParameters = Pick; export type UseChartClosestPointSignature = ChartPluginSignature<{ instance: UseChartVoronoiInstance; state: UseChartVoronoiState; params: UseChartVoronoiParameters; defaultizedParams: UseChartVoronoiDefaultizedParameters; dependencies: [UseChartSeriesSignature, UseChartCartesianAxisSignature]; optionalDependencies: [UseChartInteractionSignature, UseChartHighlightSignature, UseChartTooltipSignature, UseChartZAxisSignature, UseChartKeyboardNavigationSignature]; }>;