import { type SkFont } from "@shopify/react-native-skia"; import type { ReactNode } from "react"; import { type SharedValue } from "react-native-reanimated"; import { type ChartPadding } from "../draw/line"; import { type TooltipLayout } from "../hooks/crosshairShared"; import type { LiveChartPalette } from "../types"; import type { ResolvedSelectionDotConfig } from "../core/resolveConfig"; import type { ChartEngineLayout } from "../core/useLiveChartEngine"; type CrosshairOverlayProps = { scrubX: SharedValue; crosshairOpacity: SharedValue; tooltipLayout: SharedValue; engine: ChartEngineLayout; padding: ChartPadding; palette: LiveChartPalette; font: SkFont; showTooltip?: boolean; /** Optional custom tooltip body rendered in place of the default value/time * text (e.g. the multi-line candle stack). Passed as children so it composes * instead of being threaded through as a JSX-valued prop. */ children?: ReactNode; /** Public custom-tooltip hook for line mode: when provided (and no `children` * are passed), its result replaces the default value/time tooltip body. */ renderTooltip?: () => ReactNode; /** Canvas-Y at which the crosshair line should start, so it stops just below a * top-pinned custom tooltip instead of running up through it. -1 (or omitted) * → start at `padding.top`. Fed by {@link CustomTooltipOverlay}. */ lineTop?: SharedValue; /** Draw the vertical scrub guide. Default true. */ showLine?: boolean; /** Resolved selection-dot config; `null` hides it, a `component` renders the * consumer's dot, otherwise the built-in dot. */ selectionDot?: ResolvedSelectionDotConfig | null; /** Scrub intersection Y in canvas px (the value the dot marks); -1 hides it. */ selectionY?: SharedValue; /** Whether scrubbing is active (passed through to a custom dot). */ scrubActive: SharedValue | SharedValue; /** Fallback selection-dot color (accent / leading-series color), used when the * config's own `color` is unset. */ selectionColor?: string; /** Opacity of content right of the crosshair (dstOut fade). Default 0.3. */ dimOpacity?: number; /** How far the live dot (and its pulse ring) extends past the plot's right * edge. The dim region extends by this much so it fully covers the live * indicator — which is centered on that edge and would otherwise be only * half-dimmed — while stopping short of the Y-axis labels the gutter * reserves beyond it. Default 0. */ liveDotExtent?: number; crosshairLineColor?: string; /** Vertical crosshair line width in px. Default 1. */ crosshairStrokeWidth?: number; /** Resolved extension past the top and bottom plot edges in px. Default 0. */ crosshairOvershoot?: number; /** Fade the crosshair near the live edge. Default true. */ crosshairFade?: boolean; /** Visible-crosshair fade distance near the live edge in px. Default 4. */ crosshairFadeDistance?: number; /** Cap style for the vertical crosshair line. */ crosshairLineCap?: "butt" | "round" | "square"; /** Dash intervals `[on, off, …]` for the crosshair line; omit → solid. */ crosshairDash?: number[]; crosshairDimColor?: string; tooltipBackground?: string; tooltipColor?: string; tooltipBorderColor?: string; /** Tooltip pill corner radius in px. Default 5. */ tooltipBorderRadius?: number; /** Draw the value row of the default tooltip body. Default true. */ tooltipShowValue?: boolean; /** Draw the time row of the default tooltip body. Default true. */ tooltipShowTime?: boolean; /** Paint the owned background instead of erasing destination alpha. */ opaqueCanvas?: boolean; }; export declare function CrosshairOverlay({ scrubX, crosshairOpacity, tooltipLayout, engine, padding, palette, font, showTooltip, children, renderTooltip, lineTop, showLine, selectionDot, selectionY, scrubActive, selectionColor, dimOpacity, liveDotExtent, crosshairLineColor, crosshairStrokeWidth, crosshairOvershoot, crosshairFade, crosshairFadeDistance, crosshairLineCap, crosshairDash, crosshairDimColor, tooltipBackground, tooltipColor, tooltipBorderColor, tooltipBorderRadius, tooltipShowValue, tooltipShowTime, opaqueCanvas, }: CrosshairOverlayProps): import("react").JSX.Element; export {}; //# sourceMappingURL=CrosshairOverlay.d.ts.map