import React from "react";
import type { LightBoxNavigationProps, LightBoxProps, LightBoxThumbnailBarProps, LightBoxThumbnailImageProps, LightBoxThumbnailProps } from "./LightBox.types";
import { LightBoxProvider } from "./LightBoxContext";
export declare function LightBoxContent(): React.JSX.Element;
/**
* Blurred, desaturated copy of the current image rendered as a full-bleed
* background behind the lightbox. Pass `className` to apply additional styles.
*/
declare function LightBoxBackground({ className }: {
readonly className?: string;
}): React.JSX.Element;
/**
* Semi-transparent blur backdrop. Clicking it calls `onRequestClose`.
* Pass `className` to apply additional styles.
*/
declare function LightBoxOverlay({ className }: {
readonly className?: string;
}): React.JSX.Element;
/**
* Top bar showing an open-in-new-tab action, the current image counter (`1/3`),
* and a close button. Styled for dark backgrounds.
*/
declare function LightBoxToolbar(): React.JSX.Element;
/**
* Opens the current image in a new browser tab. Included in the default
* `LightBox.Toolbar`. Returns `null` if the current image has no `url`.
*/
declare function LightBoxOpenInNewTabAction({ ariaLabel, }: {
/**
* Accessible label for the action, also used as the tooltip message.
* @default "Open image in new tab"
*/
readonly ariaLabel?: string;
}): React.JSX.Element | null;
/**
* The animated hero image with swipe-to-navigate and slide animation.
*
* Pass `className` to add styles to the image wrapper. Supports
* swipe-to-navigate (drag). Keyboard arrow navigation is handled by
* `LightBox.Provider`.
*
* @example
* ```tsx
*
*
* ```
*/
declare function LightBoxSlides({ className }: {
readonly className?: string;
}): React.JSX.Element;
/**
* Previous and next navigation buttons. Returns `null` when the image set
* has only one image.
*
* Use `prevButtonClassName` and `nextButtonClassName` to override the styles
* on each button's wrapper for custom layouts.
*
* @example
* ```tsx
*
* ```
*/
declare function LightBoxNavigation({ prevButtonClassName, nextButtonClassName, }: LightBoxNavigationProps): React.JSX.Element | null;
/**
* Title and caption text for the current image. Only renders when the current
* image has a `title` or `caption`. Styled for dark backgrounds.
*/
declare function LightBoxCaption(): React.JSX.Element | null;
/**
* Scrollable thumbnail strip. Only renders when there are two or more images.
*/
declare function LightBoxThumbnails(): React.JSX.Element;
/**
* Scrollable container for the thumbnail strip. Owns the scroll chrome and
* box-sizing, and only renders when there are two or more images.
*
* Pass one `LightBox.Thumbnail` per image as `children` to own the thumbnail
* loop.
*/
declare function LightBoxThumbnailBar({ children, className, }: LightBoxThumbnailBarProps): React.JSX.Element | null;
/**
* A selectable thumbnail cell identified by its `index`. Owns the selected
* styling, click-to-navigate behaviour, and renders consumer-provided
* `children` (typically a `LightBox.ThumbnailImage`).
*/
declare function LightBoxThumbnail({ index, children, className, }: LightBoxThumbnailProps): React.JSX.Element;
/**
* A thumbnail using our default styling.
*/
declare function LightBoxThumbnailImage({ src, alt, className, }: LightBoxThumbnailImageProps): React.JSX.Element;
/**
* LightBox displays images in a fullscreen overlay.
*
* **Self-contained (legacy) usage:**
* ```tsx
* { setIsOpen(false); }}
* />
* ```
*
* **Full composable (fullscreen) usage:**
* ```tsx
*
*
*
* ```
*
* **Inline gallery usage (no overlay, no close):**
* ```tsx
*
*
*
*
*
*
*
*
* ```
*/
declare function LightBox(props: LightBoxProps): React.JSX.Element;
declare namespace LightBox {
var Provider: typeof LightBoxProvider;
var Content: typeof LightBoxContent;
var Background: typeof LightBoxBackground;
var Overlay: typeof LightBoxOverlay;
var Toolbar: typeof LightBoxToolbar;
var OpenInNewTabAction: typeof LightBoxOpenInNewTabAction;
var Slides: typeof LightBoxSlides;
var Navigation: typeof LightBoxNavigation;
var Caption: typeof LightBoxCaption;
var Thumbnails: typeof LightBoxThumbnails;
var ThumbnailBar: typeof LightBoxThumbnailBar;
var Thumbnail: typeof LightBoxThumbnail;
var ThumbnailImage: typeof LightBoxThumbnailImage;
}
export { LightBox };