import React from 'react'; import { S as SnapPhysicsConfig } from '../index-xKJw1Yz2.js'; /** * Shared utilities for generating and normalizing picker options. * Used by both CollapsiblePicker and Picker to eliminate duplication. */ interface PickerOption { value: string | number; label?: string; accentColor?: string; } interface NormalizedPickerOption { value: string | number; label: string; key: string; accentColor?: string; } /** * Props for Picker component * * Clean, focused interface following Interface Segregation Principle */ interface PickerProps { value: string | number; onChange: (value: string | number) => void; options?: PickerOption[]; min?: number; max?: number; step?: number; unit?: string; visibleItems?: number; itemHeight?: number; className?: string; accentColor?: string; highlightColor?: string; enableSnapPhysics?: boolean; snapPhysicsConfig?: Partial; wheelSensitivity?: number; wheelDeltaCap?: number; renderItem?: (option: NormalizedPickerOption, state: { selected: boolean; visuallySelected: boolean; }) => React.ReactNode; /** Enable haptic feedback on value changes (requires device support) */ enableHaptics?: boolean; /** Enable audio feedback on value commit (requires user interaction) */ enableAudioFeedback?: boolean; /** Override default feedback patterns and adapters */ feedbackOverrides?: { haptics?: { pattern?: number | number[]; settlePattern?: number | number[]; }; audio?: { frequency?: number; waveform?: OscillatorType; attackMs?: number; decayMs?: number; durationMs?: number; peakGain?: number; }; }; } /** * Picker - Always-visible wheel picker with momentum scrolling * * Primary picker component for most use cases. Use this when you want an always-visible * picker without auto-collapse behavior. Supports both option arrays and numeric ranges. * * Features: * - Momentum scrolling with physics * - Haptic & audio feedback * - Snap-to-item physics (optional) * - Custom item rendering * - Numeric ranges or custom options * * For interactive open/close behavior, see CollapsiblePicker. * For multi-column pickers (time, date), see Picker.Group. * * @example * ```tsx * // Numeric range with haptics * * * // Custom options * * ``` */ declare const Picker: React.FC; export { type NormalizedPickerOption, Picker, type PickerOption, type PickerOption as PickerOptionType, type PickerProps, Picker as default };