import { LayoutChangeEvent } from 'react-native'; import { useElementOffset } from './useElementOffset'; import { NormalizedPointerEvent, WheelGesture } from './pointerNormalize'; import { ActiveTarget, HitTester } from '../core/hittest/types'; export interface UseChartPointerOptions { padding: { top: number; right: number; bottom: number; left: number; }; plotWidth: number; plotHeight: number; enabled?: boolean; /** Track hover/move → pointer + active target. Default true. */ hover?: boolean; /** Emit press/tap. Default true. */ press?: boolean; /** Handle web wheel. Default false. */ wheel?: boolean; /** Hit-tester used to resolve the active target on move/press. */ tester?: HitTester | null; /** Max hit distance in px. */ maxDistance?: number; /** Push pointer + active target into the interaction store. Default true. */ feedStore?: boolean; onPointer?: (e: NormalizedPointerEvent, target: ActiveTarget | null) => void; onPress?: (e: NormalizedPointerEvent, target: ActiveTarget | null) => void; onLeave?: (e: NormalizedPointerEvent) => void; onWheel?: (g: WheelGesture, e: NormalizedPointerEvent) => void; } export interface ChartPointerHandlers { handlers: Record; ref: ReturnType['ref']; onLayout: (e: LayoutChangeEvent) => void; } export declare function useChartPointer(opts: UseChartPointerOptions): ChartPointerHandlers;