import { type CSSProperties, type HTMLAttributes, type ImgHTMLAttributes, type ReactNode, type Ref } from 'react'; import { type CssLength } from '../../../utils/css'; export type SixFacesBoxTheme = 'dark' | 'light'; export type SixFacesBoxAlign = 'start' | 'end' | 'center'; export type SixFacesBoxFace = 'top' | 'front' | 'right' | 'back' | 'left' | 'bottom'; export type SixFacesBoxStat = { value: ReactNode; label: ReactNode; }; export type SixFacesBoxItem = string | { id?: string | number; name?: string; src?: string; darkSrc?: string; alt?: string; placeholder?: string; eyebrow?: ReactNode; title?: ReactNode; body?: ReactNode; align?: SixFacesBoxAlign; stats?: readonly SixFacesBoxStat[]; nextLabel?: ReactNode; previousLabel?: ReactNode; objectFit?: CSSProperties['objectFit']; objectPosition?: CSSProperties['objectPosition']; loading?: ImgHTMLAttributes['loading']; decoding?: ImgHTMLAttributes['decoding']; fetchPriority?: ImgHTMLAttributes['fetchPriority']; }; export type NormalizedSixFacesBoxItem = { id: string; index: number; face: SixFacesBoxFace; name: string; src?: string; darkSrc?: string; alt: string; placeholder: string; eyebrow?: ReactNode; title: ReactNode; body?: ReactNode; align: SixFacesBoxAlign; stats: readonly SixFacesBoxStat[]; nextLabel?: ReactNode; previousLabel?: ReactNode; objectFit?: CSSProperties['objectFit']; objectPosition?: CSSProperties['objectPosition']; loading?: ImgHTMLAttributes['loading']; decoding?: ImgHTMLAttributes['decoding']; fetchPriority?: ImgHTMLAttributes['fetchPriority']; }; export type SixFacesBoxRenderContext = { activeIndex: number; index: number; isActive: boolean; item: NormalizedSixFacesBoxItem; items: readonly NormalizedSixFacesBoxItem[]; theme: SixFacesBoxTheme; }; export type SixFacesBoxProps = Omit, 'children' | 'onChange'> & { items?: readonly SixFacesBoxItem[]; ariaLabel?: string; height?: CssLength; cubeSize?: CssLength; perspective?: CssLength; theme?: SixFacesBoxTheme; defaultTheme?: SixFacesBoxTheme; onThemeChange?: (theme: SixFacesBoxTheme) => void; background?: CSSProperties['background']; color?: CSSProperties['color']; accentColor?: CSSProperties['color']; mutedColor?: CSSProperties['color']; cardBackground?: CSSProperties['background']; cardBorderColor?: CSSProperties['borderColor']; showCaption?: boolean; showControls?: boolean; showCredit?: boolean; showNavigation?: boolean; showProgress?: boolean; showThemeToggle?: boolean; credit?: ReactNode; renderFace?: (context: SixFacesBoxRenderContext) => ReactNode; renderPanel?: (context: SixFacesBoxRenderContext) => ReactNode; respectReducedMotion?: boolean; onActiveIndexChange?: (index: number, item: NormalizedSixFacesBoxItem) => void; ref?: Ref; }; export declare const SixFacesBox: ({ ariaLabel, background, cardBackground, cardBorderColor, className, color, accentColor, credit, cubeSize, defaultTheme, height, items, mutedColor, onActiveIndexChange, onThemeChange, perspective, ref, renderFace, renderPanel, respectReducedMotion, showCaption, showControls, showCredit, showNavigation, showProgress, showThemeToggle, style, theme, ...props }: SixFacesBoxProps) => import("react/jsx-runtime").JSX.Element;