import { type LucideIcon } from 'lucide-react'; import { type CSSProperties, type HTMLAttributes, type InputHTMLAttributes, type ReactNode, type Ref } from 'react'; import { type GlassOpticsPreset } from '../../shared/glassOptics'; import { type CssLength } from '../../../utils/css'; type VisionProMusicPlayerControlCallback = (track: VisionProMusicPlayerTrack, index: number) => void; type ProgressInputProps = Omit, 'aria-label' | 'aria-valuetext' | 'className' | 'disabled' | 'id' | 'max' | 'min' | 'onChange' | 'step' | 'style' | 'type' | 'value'>; export type VisionProMusicPlayerTrack = { id: string; title: string; artist: string; artworkUrl: string; artworkAlt?: string; backgroundUrl?: string; accent?: CSSProperties['background']; duration?: number; }; export type VisionProMusicPlayerAction = { id: string; label: string; ariaLabel?: string; icon?: LucideIcon; disabled?: boolean; pressed?: boolean; onSelect?: (action: VisionProMusicPlayerAction, track: VisionProMusicPlayerTrack, index: number) => void; }; export type VisionProMusicPlayerProps = Omit, 'children' | 'onChange'> & { tracks: readonly VisionProMusicPlayerTrack[]; activeTrackId?: string; defaultActiveTrackId?: string; onActiveTrackIdChange?: (trackId: string, track: VisionProMusicPlayerTrack, index: number) => void; playing?: boolean; defaultPlaying?: boolean; onPlayingChange?: (playing: boolean) => void; progress?: number; defaultProgress?: number; onProgressChange?: (progress: number) => void; currentTime?: number; duration?: number; formatTime?: (seconds: number) => string; disabled?: boolean; animated?: boolean; emptyLabel?: ReactNode; brandLabel?: ReactNode; brandIcon?: ReactNode; hideBrand?: boolean; actions?: readonly VisionProMusicPlayerAction[]; width?: CssLength; height?: CssLength; coverSize?: CssLength; glassPreset?: GlassOpticsPreset; clarity?: number; frost?: number; bgBlur?: number; dispersion?: number; depth?: number; progressLabel?: string; progressInputProps?: ProgressInputProps; onNext?: VisionProMusicPlayerControlCallback; onPrevious?: VisionProMusicPlayerControlCallback; onActionSelect?: (action: VisionProMusicPlayerAction, track: VisionProMusicPlayerTrack, index: number) => void; ref?: Ref; }; export declare const VisionProMusicPlayer: ({ tracks, activeTrackId, defaultActiveTrackId, onActiveTrackIdChange, playing, defaultPlaying, onPlayingChange, progress, defaultProgress, onProgressChange, currentTime, duration, formatTime: formatTimeProp, disabled, animated, emptyLabel, brandLabel, brandIcon, hideBrand, actions, width, height, coverSize, glassPreset, clarity, frost, bgBlur, dispersion, depth, progressLabel, progressInputProps, onNext, onPrevious, onActionSelect, className, style, ref, "aria-label": ariaLabel, ...rootProps }: VisionProMusicPlayerProps) => import("react/jsx-runtime").JSX.Element; export {};