import type { SkFont } from "@shopify/react-native-skia"; import { type DerivedValue, type SharedValue } from "react-native-reanimated"; import type { ResolvedPerSeriesTooltipConfig } from "../core/resolveConfig"; import type { MultiEngineState } from "../core/useLiveChartEngine"; import { type ChartPadding } from "../draw/line"; import type { ScrubPointMulti } from "../types"; import { type CrosshairState } from "./crosshairShared"; /** * LiveChartSeries crosshair + scrub. The optional per-series tooltip is * calculated on the UI thread alongside the callback payload. */ interface CrosshairSeriesTooltipOptions { config: ResolvedPerSeriesTooltipConfig; formatValue: (value: number) => string; formatTime: (time: number) => string; font: SkFont; colors: string[]; /** Current-time anchor used to clamp the live bucket's range end. */ maxTime: SharedValue | DerivedValue; } export declare function useCrosshairSeries(engine: MultiEngineState, padding: ChartPadding, enabled: boolean, onScrub?: (point: ScrubPointMulti | null) => void, /** Press-and-hold delay (ms) before scrubbing activates. 0 = immediate. */ panGestureDelay?: number, onGestureStart?: () => void, onGestureEnd?: () => void, /** * True while the time-scroll pan owns the touch. The hold-to-scrub pan refuses * to activate while set, so a drag that already started scrolling can never * mature into a scrub (see `delayedPanGuard.shouldStartDelayedPan`). */ scrollActive?: SharedValue, tooltip?: CrosshairSeriesTooltipOptions, /** * Reject scrub starts beyond either horizontal plot edge and clamp active * drags to those bounds. Default `false`. */ clampToPlot?: boolean): CrosshairState; export {}; //# sourceMappingURL=useCrosshairSeries.d.ts.map