import { type CSSProperties, type HTMLAttributes, type ReactNode, type Ref } from 'react';
import { type CssLength } from '../../../utils/css';
import { type ScrollClockRailTimeFormat } from './ScrollClockRail.utils';
export type ScrollClockRailMarkerTone = 'day' | 'neutral' | 'night';
export type ScrollClockRailScrollTarget = 'page' | 'container';
export type ScrollClockRailMusicLabels = {
next: string;
pause: string;
play: string;
previous: string;
showControls: string;
};
export type ScrollClockRailThemeMarker = {
id: string | number;
icon?: ReactNode;
label: string;
active?: boolean;
tone?: ScrollClockRailMarkerTone;
};
export type ScrollClockRailMusic = {
title: ReactNode;
artist?: ReactNode;
coverSrc?: string;
coverAlt?: string;
labels?: Partial;
onNext?: () => void;
onPlayPause?: () => void;
onPrevious?: () => void;
playing?: boolean;
progress?: number;
};
export type ScrollClockRailStyle = CSSProperties & Record<`--scroll-clock-rail-${string}`, string | number | undefined>;
export type ScrollClockRailProps = Omit, 'children' | 'style'> & {
children?: ReactNode;
active?: boolean;
compactHeight?: CssLength;
compactWidth?: CssLength;
contentClassName?: string;
defaultMusicExpanded?: boolean;
enabled?: boolean;
endTime?: string;
expandedHeight?: CssLength;
expandedWidth?: CssLength;
hideNativeScrollbar?: boolean;
music?: ScrollClockRailMusic;
musicExpanded?: boolean;
nightAccentColor?: string;
nightThreshold?: number;
onMusicExpandedChange?: (expanded: boolean) => void;
railOffset?: CssLength;
ref?: Ref;
scrollTarget?: ScrollClockRailScrollTarget;
startTime?: string;
style?: ScrollClockRailStyle;
surface?: string;
textColor?: string;
themeMarkers?: readonly ScrollClockRailThemeMarker[];
timeFormat?: ScrollClockRailTimeFormat;
viewportClassName?: string;
viewportProps?: Omit, 'children'>;
viewportRef?: Ref;
};
declare const ScrollClockRail: ({ active, children, className, compactHeight, compactWidth, contentClassName, defaultMusicExpanded, enabled, endTime, expandedHeight, expandedWidth, hideNativeScrollbar, music, musicExpanded, nightAccentColor, nightThreshold, onBlur, onFocus, onMusicExpandedChange, onPointerEnter, onPointerLeave, railOffset, ref, scrollTarget, startTime, style, surface, textColor, themeMarkers, timeFormat, viewportClassName, viewportProps, viewportRef, ...props }: ScrollClockRailProps) => import("react/jsx-runtime").JSX.Element;
export { ScrollClockRail };