import { type CSSProperties, type HTMLAttributes, type ImgHTMLAttributes, type Ref } from 'react';
import { type CssLength, type CssTime } from '../../../utils/css';
export type CubeGallerySide = 'left' | 'right';
export type CubeGalleryItem = string | {
name: string;
src: string;
alt?: string;
id?: string | number;
objectPosition?: CSSProperties['objectPosition'];
loading?: ImgHTMLAttributes['loading'];
fetchPriority?: ImgHTMLAttributes['fetchPriority'];
};
export type NormalizedCubeGalleryItem = {
id: string;
name: string;
src: string;
alt: string;
objectPosition?: CSSProperties['objectPosition'];
loading?: ImgHTMLAttributes['loading'];
fetchPriority?: ImgHTMLAttributes['fetchPriority'];
};
export type CubeGalleryProps = Omit, 'children' | 'onSelect'> & {
leftItems?: readonly CubeGalleryItem[];
rightItems?: readonly CubeGalleryItem[];
ariaLabel?: string;
leftMenuAriaLabel?: string;
rightMenuAriaLabel?: string;
width?: CssLength;
mobileWidth?: CssLength;
depth?: CssLength;
mobileDepth?: CssLength;
aspectRatio?: CSSProperties['aspectRatio'];
compactAspectRatio?: CSSProperties['aspectRatio'];
menuGap?: CssLength;
transitionDuration?: CssTime;
background?: CSSProperties['background'];
color?: CSSProperties['color'];
disabled?: boolean;
respectReducedMotion?: boolean;
onSelect?: (item: NormalizedCubeGalleryItem, side: CubeGallerySide) => void;
ref?: Ref;
};
export declare const CubeGallery: ({ ariaLabel, aspectRatio, background, className, color, compactAspectRatio, depth, disabled, leftItems, leftMenuAriaLabel, menuGap, mobileDepth, mobileWidth, onSelect, ref, respectReducedMotion, rightItems, rightMenuAriaLabel, style, transitionDuration, width, ...props }: CubeGalleryProps) => import("react/jsx-runtime").JSX.Element;