import type { MediaItem } from "../mediaItems"; /** All copy shown in the image stage, merged over `defaultMediaImageViewerLabels`. */ export interface MediaImageViewerLabels { /** Shown instead of the image when it fails to load. */ imageError: string; /** Accessible name of the `role="toolbar"` control group. */ imageControls: string; /** Zoom-out button, hint "-"; disabled at `MIN_ZOOM`. */ zoomOut: string; /** Accessible name of the live zoom-percent readout. */ zoomLevel: string; /** Zoom-in button, hint "+"; disabled at `MAX_ZOOM`. */ zoomIn: string; /** Tooltip/title for the reset-to-100% button, e.g. "Fit to screen (0)". */ fitLabel: string; /** Visible text on the reset button. */ fit: string; /** Rotate-90°-clockwise button, hint "R". */ rotate: string; /** Fullscreen toggle label shown while already fullscreen. */ exitFullscreen: string; /** Fullscreen toggle label shown while not fullscreen; only rendered when supported. */ fullscreen: string; /** Download button's accessible name on the error/unsupported panels. */ download: string; /** Shown for a format the browser can't decode inline (HEIC/HEIF), instead of a broken image. */ unsupportedFormat: string; /** Hint text under `unsupportedFormat`, prompting a download instead. */ unsupportedFormatHint: string; } export declare const defaultMediaImageViewerLabels: MediaImageViewerLabels; /** Props for the pan/zoom image stage. */ export interface MediaImageViewerProps { /** The image to display; changing `item.key` resets zoom/rotation/pan. */ item: MediaItem; /** Accessible name (`alt`) for the rendered image. */ label: string; /** Fires whenever zoom changes (keyboard, buttons, wheel); also gates swipe nav in the parent viewer. */ onZoomChange?: (zoom: number) => void; /** Reports the loaded image's intrinsic pixel size. */ onNaturalSize?: (size: { width: number; height: number; }) => void; /** Overrides for any of `defaultMediaImageViewerLabels`, merged over the defaults. */ labels?: Partial; }