import type { FC, ReactNode, RefObject } from 'react';
import React from 'react';
import { GetContainer } from '../../utils/render-to-container';
import { SlidesRef } from './slides';
export type ImageViewerProps = {
    image: string;
    maxZoom?: number | 'auto';
    getContainer?: GetContainer;
    visible?: boolean;
    onClose?: () => void;
    afterClose?: () => void;
    renderFooter?: (image: string) => ReactNode;
    imageRender?: (image: string, { ref, index }: {
        ref: RefObject<HTMLImageElement>;
        index: number;
    }) => ReactNode;
    classNames?: {
        mask?: string;
        body?: string;
    };
    mask?: {
        onClick?: (event: React.MouseEvent<HTMLDivElement, MouseEvent>) => void;
    };
};
export declare const ImageViewer: FC<ImageViewerProps>;
export type MultiImageViewerRef = SlidesRef;
export type MultiImageViewerProps = Omit<ImageViewerProps, 'image' | 'renderFooter' | 'imageRender'> & {
    images?: string[];
    defaultIndex?: number;
    onIndexChange?: (index: number) => void;
    renderFooter?: (image: string, index: number) => ReactNode;
    imageRender?: (image: string, { ref, index }: {
        ref: RefObject<HTMLImageElement>;
        index: number;
    }) => ReactNode;
};
export declare const MultiImageViewer: React.ForwardRefExoticComponent<Omit<ImageViewerProps, "image" | "imageRender" | "renderFooter"> & {
    images?: string[] | undefined;
    defaultIndex?: number | undefined;
    onIndexChange?: ((index: number) => void) | undefined;
    renderFooter?: ((image: string, index: number) => ReactNode) | undefined;
    imageRender?: ((image: string, { ref, index }: {
        ref: RefObject<HTMLImageElement>;
        index: number;
    }) => ReactNode) | undefined;
} & React.RefAttributes<SlidesRef>>;
