import type { CSSProperties } from 'react'; export type FloatingDockThumbnail = { alt?: string; src: string; }; export type FloatingDockItem = { description?: string; eyebrow?: string; id: string; thumbnails: FloatingDockThumbnail[]; title: string; }; export type FloatingDockChangeMeta = { direction: 'previous' | 'next' | 'direct'; previousId: string | null; }; export type FloatingDockAvatarMode = 'single' | 'stack'; export type FloatingDockLoadingReveal = 'immediate' | 'staged'; export type FloatingDockCollection = { activeId?: string; avatarMode?: FloatingDockAvatarMode; defaultActiveId?: string; eyebrow?: string; id: string; items: FloatingDockItem[]; loop?: boolean; onActiveChange?: (item: FloatingDockItem, meta: FloatingDockChangeMeta) => void; }; export type FloatingDockPreviewItem = { ariaLabel?: string; eyebrow?: string; onActivate?: () => void; thumbnail?: FloatingDockThumbnail; title: string; }; export type FloatingDockMediaControl = { ariaLabel?: string; displayValue?: string; label?: string; max?: number; min?: number; onPlayToggle?: () => void; onValueChange?: (value: number) => void; playing?: boolean; step?: number; thumbnail?: FloatingDockThumbnail; value: number; }; export type FloatingDockSurface = { label?: string; reveal?: FloatingDockLoadingReveal; type: 'loading'; } | { collectionId?: string; type: 'idle'; } | { collectionId: string; dismissible?: boolean; dismissLabel?: string; type: 'active'; } | { ariaLabel?: string; eyebrow?: string; onActivate?: () => void; thumbnail?: FloatingDockThumbnail; title: string; type: 'preview'; } | { control: FloatingDockMediaControl; dismissible?: boolean; dismissLabel?: string; type: 'media'; }; export type FloatingDockProps = { activeId?: string; ariaLabel?: string; className?: string; collections?: FloatingDockCollection[]; defaultActiveId?: string; defaultOpen?: boolean; defaultOpenCollectionId?: string | null; items?: FloatingDockItem[]; loop?: boolean; mediaControl?: FloatingDockMediaControl | null; onDismiss?: () => void; onActiveChange?: (item: FloatingDockItem, meta: FloatingDockChangeMeta) => void; onOpenCollectionChange?: (collectionId: string | null) => void; onOpenChange?: (open: boolean) => void; open?: boolean; openCollectionId?: string | null; previewItem?: FloatingDockPreviewItem | null; selected?: boolean; selectedEyebrow?: string; surface?: FloatingDockSurface; style?: CSSProperties; }; export type FloatingDockDirection = FloatingDockChangeMeta['direction']; export type FloatingDockThumbnailStackItem = { item: FloatingDockItem; thumbnail: FloatingDockThumbnail; }; export type FloatingDockResolvedCollection = Required> & Omit & { activeId: string; activeIndex: number; activeItem: FloatingDockItem | null; loop: boolean; }; export declare const FLOATING_DOCK_DEFAULT_COLLECTION_ID = "categories";