/**
 * Options for the useWheelPicker hook
 */
export interface UseWheelPickerOptions<T> {
    /** Array of options to display in the wheel */
    options: T[];
    /** Currently selected value */
    value: T;
    /** Callback when value changes */
    onChange: (value: T) => void;
    /** Height of each item in pixels */
    itemHeight?: number;
    /** Number of visible items (should be odd for center selection) */
    visibleItems?: number;
}
/**
 * Return type for the useWheelPicker hook
 */
export interface UseWheelPickerReturn {
    /** Ref to attach to the scrollable container */
    containerRef: React.RefObject<HTMLDivElement | null>;
    /** Scroll to a specific value programmatically */
    scrollToValue: (value: number | string, behavior?: ScrollBehavior) => void;
    /** Current scroll position index */
    currentIndex: number;
    /** Padding needed at top/bottom to center first/last items */
    paddingY: number;
    /** Whether the user is currently dragging */
    isDragging: boolean;
}
/**
 * Custom hook for iOS-style wheel picker scroll behavior
 *
 * Uses CSS scroll-snap for native snapping behavior and
 * detects scroll end to trigger onChange callback.
 */
export declare function useWheelPicker<T>({ options, value, onChange, itemHeight, visibleItems, }: UseWheelPickerOptions<T>): UseWheelPickerReturn;
