import type { RefObject } from "react"; import type { ProductMedia } from "../Commerce/commerceTypes"; /** Every string the lightbox renders or announces, merged over `defaultMediaLightboxLabels`. */ export interface MediaLightboxLabels { /** Accessible name of the dialog. */ dialog: string; /** Accessible name of the close button. */ close: string; /** Accessible name of the previous-frame arrow. */ previous: string; /** Accessible name of the next-frame arrow. */ next: string; /** Visible and live-announced counter, "2 / 5". */ counter: (position: number, total: number) => string; /** Accessible name of the thumbnail row. */ thumbnails: string; /** Accessible name of one thumbnail. */ frame: (position: number, total: number, alt?: string) => string; /** Alt text for a frame that has no `alt` of its own. */ image: (position: number, total: number) => string; /** Accessible name of the play button over a video frame. */ playVideo: string; /** Shown in place of an image that fails to load. */ imageUnavailable: string; } export declare const defaultMediaLightboxLabels: MediaLightboxLabels; /** Full-screen viewer for product media on an opaque dark surface. */ export interface MediaLightboxProps { /** Mounts and shows the viewer. */ isOpen: boolean; /** Fires from the close button, Esc and a click on the backdrop. */ onClose: () => void; /** Frames in order; navigation stops at both ends. */ items: ProductMedia[]; /** Controlled position; pair with `onIndexChange`. */ index?: number; /** Starting position when uncontrolled. */ defaultIndex?: number; /** Fires on every navigation with the new position. */ onIndexChange?: (index: number) => void; /** Element that regains focus on close; defaults to whatever held focus before opening. */ finalFocusRef?: RefObject; /** Overrides for any of `defaultMediaLightboxLabels`. */ labels?: Partial; }