import type { CSSProperties, HTMLAttributes, IframeHTMLAttributes, ImgHTMLAttributes, MouseEvent } from 'react';
import { type CssLength } from '../../../utils/css';
type VideoGalleryLabel = string | ((item: VideoGalleryItem) => string);
type NativeIframeProps = Omit, 'children' | 'className' | 'height' | 'src' | 'style' | 'title' | 'width'>;
export type VideoGalleryTileLayout = {
column?: number;
row?: number;
columns?: number;
rows?: number;
};
export type VideoGalleryItem = {
id: string;
embedSrc: string;
thumbnailSrc: string;
title?: string;
thumbnailAlt?: string;
iframeTitle?: string;
objectPosition?: CSSProperties['objectPosition'];
loading?: ImgHTMLAttributes['loading'];
fetchPriority?: ImgHTMLAttributes['fetchPriority'];
iframeProps?: NativeIframeProps;
disabled?: boolean;
};
export type VideoGalleryProps = Omit, 'children' | 'onSelect'> & {
items: readonly VideoGalleryItem[];
selectedId?: string | null;
defaultSelectedId?: string | null;
onSelectedIdChange?: (selectedId: string | null) => void;
onItemSelect?: (item: VideoGalleryItem, event: MouseEvent) => void;
ariaLabel?: string;
selectLabel?: VideoGalleryLabel;
tileLayout?: readonly VideoGalleryTileLayout[];
tileWidth?: CssLength;
tileHeight?: CssLength;
gap?: CssLength;
height?: CssLength;
perspective?: CssLength;
angle?: string;
autoPlaySelected?: boolean;
showReflection?: boolean;
variant?: 'immersive' | 'plain';
iframeProps?: NativeIframeProps;
galleryClassName?: string;
itemClassName?: string;
thumbnailClassName?: string;
iframeClassName?: string;
};
export declare const VideoGallery: ({ items, selectedId, defaultSelectedId, onSelectedIdChange, onItemSelect, ariaLabel, selectLabel, tileLayout, tileWidth, tileHeight, gap, height, perspective, angle, autoPlaySelected, showReflection, variant, iframeProps, className, galleryClassName, itemClassName, thumbnailClassName, iframeClassName, style, ...rootProps }: VideoGalleryProps) => import("react/jsx-runtime").JSX.Element;
export {};