import { type AnimatedRef } from 'react-native-reanimated'; import type Animated from 'react-native-reanimated'; /** * Configuration for useDragOverlay hook. */ export interface UseDragOverlayConfig { /** Ref to measure item container */ containerRef: AnimatedRef; } /** * Input for overlay setup (from gesture event). */ export interface OverlaySetupInput { /** Absolute Y position of the finger */ absoluteY: number; } /** * Return value from useDragOverlay hook. */ export interface UseDragOverlayResult { /** * Measure item and set up overlay positioning. * Call this in onStart of the pan gesture. * * @worklet - This function runs on the UI thread * @returns The measured item height, or 0 if measurement failed */ measureAndSetupOverlay: (input: OverlaySetupInput) => number; } /** * Hook that handles overlay measurement and positioning during drag start. * * This hook is responsible for: * - Measuring the dragged item's position using measure() * - Setting up overlay coordinates relative to the drag container * - Calculating the touch offset within the item for proper finger tracking * - Setting overlay ready/active flags * * NOTE: This measure() usage is safe per CLAUDE.md guidelines because: * 1. It's only used for INITIAL overlay positioning at drag START * 2. It's NOT used for ongoing calculations or drop positioning * 3. Drop calculations use index-based math (index * itemHeight) which is reliable * * @param config - Configuration with containerRef * @returns Function to measure and setup overlay */ export declare function useDragOverlay(config: UseDragOverlayConfig): UseDragOverlayResult; //# sourceMappingURL=useDragOverlay.d.ts.map