import { MediaGalleryServiceConfig } from '../../services/media-gallery-service.js'; export interface RootProps { children: React.ReactNode; mediaGalleryServiceConfig: MediaGalleryServiceConfig; } /** * Root component that provides the MediaGallery service context to its children. * This component sets up the necessary services for rendering and managing media gallery functionality. * * @order 1 * @component * @example * ```tsx * import { MediaGallery } from '@wix/media/components'; * * function ProductMediaGallery({ productMedia }) { * return ( * * * * {({ src, alt }) => ( * * )} * * * {({ items }) => ( * * {items.map((item, index) => ( * * {({ src, isActive, onSelect, alt }) => ( * * * * )} * * ))} * * )} * * * * ); * } * ``` */ export declare function Root(props: RootProps): React.ReactNode; /** * Props for Viewport headless component */ export interface ViewportProps { /** Render prop function that receives viewport data */ children: (props: ViewportRenderProps) => React.ReactNode; } /** * Render props for Viewport component */ export interface ViewportRenderProps { /** Media URL */ src: string | null; /** Alt text for media */ alt: string; } /** * Headless component for displaying the main viewport media * * @component * @example * ```tsx * import { MediaGallery } from '@wix/media/components'; * * function MediaViewer() { * return ( * * {({ src, alt }) => ( * * )} * * ); * } * ``` */ export declare const Viewport: (props: ViewportProps) => import("react").ReactNode; /** * Props for ThumbnailList headless component */ export interface ThumbnailListProps { /** Render prop function that receives thumbnail list data */ children: (props: ThumbnailListRenderProps) => React.ReactNode; } /** * Render props for ThumbnailList component */ export interface ThumbnailListRenderProps { /** Array of media items */ items: any[]; } /** * Headless component for managing a list of thumbnails * * @component * @example * ```tsx * import { MediaGallery } from '@wix/media/components'; * * function ThumbnailGrid() { * return ( * * {({ items }) => ( * * {items.map((item, index) => ( * * {({ src, isActive, onSelect, alt }) => ( * * * * )} * * ))} * * )} * * ); * } * ``` */ export declare const ThumbnailList: (props: ThumbnailListProps) => import("react").ReactNode; /** * Props for ThumbnailItem headless component */ export interface ThumbnailItemProps { /** Index of the media item */ index: number; /** Render prop function that receives thumbnail data */ children: (props: ThumbnailItemRenderProps) => React.ReactNode; } /** * Render props for ThumbnailItem component */ export interface ThumbnailItemRenderProps { /** Media item data */ item: any | null; /** Thumbnail image URL */ src: string | null; /** Whether this thumbnail is currently active */ isActive: boolean; /** Function to select this media */ select: () => void; /** Index of this thumbnail */ index: number; /** Alt text for thumbnail */ alt: string; } /** * Headless component for individual media thumbnail * * @component * @example * ```tsx * import { MediaGallery } from '@wix/media/components'; * * function ThumbnailButton({ index }) { * return ( * * {({ src, isActive, select, alt }) => ( * * * {isActive && } * * )} * * ); * } * ``` */ export declare const ThumbnailItem: (props: ThumbnailItemProps) => import("react").ReactNode; /** * Props for Next headless component */ export interface NextProps { /** Render prop function that receives next navigation data */ children: (props: NextRenderProps) => React.ReactNode; } /** * Render props for Next component */ export interface NextRenderProps { /** Function to go to next media */ next: () => void; /** Whether there is a next media available */ canGoNext: boolean; } /** * Headless component for next media navigation * * @component * @example * ```tsx * import { MediaGallery } from '@wix/media/components'; * * function NextButton() { * return ( * * {({ next, canGoNext }) => ( * * Next → * * )} * * ); * } * ``` */ export declare const Next: (props: NextProps) => import("react").ReactNode; /** * Props for Previous headless component */ export interface PreviousProps { /** Render prop function that receives previous navigation data */ children: (props: PreviousRenderProps) => React.ReactNode; } /** * Render props for Previous component */ export interface PreviousRenderProps { /** Function to go to previous media */ previous: () => void; /** Whether there is a previous media available */ canGoPrevious: boolean; } /** * Headless component for previous media navigation * * @component * @example * ```tsx * import { MediaGallery } from '@wix/media/components'; * * function PreviousButton() { * return ( * * {({ previous, canGoPrevious }) => ( * * ← Previous * * )} * * ); * } * ``` */ export declare const Previous: (props: PreviousProps) => import("react").ReactNode; /** * Props for Indicator headless component */ export interface IndicatorProps { /** Render prop function that receives indicator data */ children: (props: IndicatorRenderProps) => React.ReactNode; } /** * Render props for Indicator component */ export interface IndicatorRenderProps { /** Current media index (1-based for display) */ current: number; /** Total number of media */ total: number; } /** * Headless component for media gallery indicator/counter * * @component * @example * ```tsx * import { MediaGallery } from '@wix/media/components'; * * function MediaCounter() { * return ( * * {({ current, total }) => ( * * {current} of {total} * * )} * * ); * } * ``` */ export declare const Indicator: (props: IndicatorProps) => import("react").ReactNode;