import React from "react";
import type { LightBoxNavigationProps, LightBoxProps } 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
 * <LightBox.Slides className={styles.imageArea} />
 * <LightBox.Navigation
 *   prevButtonClassName={styles.prev}
 *   nextButtonClassName={styles.next}
 * />
 * ```
 */
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
 * <LightBox.Navigation
 *   prevButtonClassName={styles.prev}
 *   nextButtonClassName={styles.next}
 * />
 * ```
 */
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 | null;
/**
 * LightBox displays images in a fullscreen overlay.
 *
 * **Self-contained (legacy) usage:**
 * ```tsx
 * <LightBox
 *   open={isOpen}
 *   images={images}
 *   imageIndex={imageIndex}
 *   onRequestClose={({ lastPosition }) => { setIsOpen(false); }}
 * />
 * ```
 *
 * **Full composable (fullscreen) usage:**
 * ```tsx
 * <LightBox.Provider open={isOpen} images={images} onRequestClose={onClose}>
 *   <LightBox.Content />
 * </LightBox.Provider>
 * ```
 *
 * **Inline gallery usage (no overlay, no close):**
 * ```tsx
 * <LightBox.Provider
 *   open={true}
 *   images={images}
 *   imageIndex={activeIndex}
 *   onImageChange={onImageChange}
 * >
 *   <div className={styles.lightboxWrapper} onMouseMove={handleMouseMove}>
 *     <LightBox.Background className={styles.backgroundImage} />
 *     <LightBox.Overlay className={styles.blurOverlay} />
 *     <LightBox.Slides className={styles.imageArea} />
 *     <LightBox.Navigation
 *       prevButtonClassName={styles.prev}
 *       nextButtonClassName={styles.next}
 *     />
 *   </div>
 * </LightBox.Provider>
 * ```
 */
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;
}
export { LightBox };
