import { type CSSProperties, type HTMLAttributes, type InputHTMLAttributes, type ReactNode, type Ref } from 'react'; import { type CssLength } from '../../../utils/css'; type VinylMusicPlayerControlCallback = (track: VinylMusicPlayerTrack, index: number) => void; type ProgressInputProps = Omit, 'aria-label' | 'aria-valuetext' | 'className' | 'disabled' | 'id' | 'max' | 'min' | 'onChange' | 'step' | 'style' | 'type' | 'value'>; export type VinylMusicPlayerTrack = { id: string; title: string; artist: string; artworkUrl: string; artworkAlt?: string; backgroundUrl?: string; accent?: CSSProperties['background']; duration?: number; }; export type VinylMusicPlayerProps = Omit, 'children' | 'onChange'> & { tracks: readonly VinylMusicPlayerTrack[]; activeTrackId?: string; defaultActiveTrackId?: string; onActiveTrackIdChange?: (trackId: string, track: VinylMusicPlayerTrack, index: number) => void; playing?: boolean; defaultPlaying?: boolean; onPlayingChange?: (playing: boolean) => void; repeat?: boolean; defaultRepeat?: boolean; onRepeatChange?: (repeat: boolean) => void; progress?: number; defaultProgress?: number; onProgressChange?: (progress: number) => void; currentTime?: number; duration?: number; formatTime?: (seconds: number) => string; headerLabel?: ReactNode; progressLabel?: string; emptyLabel?: ReactNode; disabled?: boolean; animated?: boolean; width?: CssLength; height?: CssLength; minWidth?: CssLength; recordSize?: CssLength; artworkSize?: CssLength; vinylImageUrl?: string; vinylCoverImageUrl?: string; progressInputProps?: ProgressInputProps; onNext?: VinylMusicPlayerControlCallback; onPrevious?: VinylMusicPlayerControlCallback; onShuffle?: VinylMusicPlayerControlCallback; ref?: Ref; }; export declare const VinylMusicPlayer: ({ tracks, activeTrackId, defaultActiveTrackId, onActiveTrackIdChange, playing, defaultPlaying, onPlayingChange, repeat, defaultRepeat, onRepeatChange, progress, defaultProgress, onProgressChange, currentTime, duration, formatTime: formatTimeProp, headerLabel, progressLabel, emptyLabel, disabled, animated, width, height, minWidth, recordSize, artworkSize, vinylImageUrl, vinylCoverImageUrl, progressInputProps, onNext, onPrevious, onShuffle, className, style, ref, "aria-label": ariaLabel, ...rootProps }: VinylMusicPlayerProps) => import("react/jsx-runtime").JSX.Element; export {};