import React from 'react';
import type { TNode } from '../common';
import type { ImageViewerProps } from './ImageViewer';
import type { ImageInfo, ImageScale, ImageViewerScale, TdImageViewerProps } from './type';
interface ImageModalItemProps {
    rotateZ: number;
    scale: number;
    mirror: number;
    src: string | File;
    preSrc?: string | File;
    errorText: string;
    imageReferrerpolicy?: TdImageViewerProps['imageReferrerpolicy'];
    isSvg: boolean;
    innerClassName: TdImageViewerProps['innerClassName'];
}
export declare const ImageModalItem: React.FC<ImageModalItemProps>;
interface ImageViewerUtilsProps {
    scale: number;
    currentImage: ImageInfo;
    tipText: {
        mirror: string;
        rotate: string;
        originalSize: string;
    };
    zIndex: number;
    onMirror: () => void;
    onRotate: (ROTATE_COUNT: number) => void;
    onZoom: () => void;
    onZoomOut: () => void;
    onReset: () => void;
    onDownload?: TdImageViewerProps['onDownload'];
}
export declare const ImageViewerUtils: React.FC<ImageViewerUtilsProps>;
export interface ImageModalProps {
    title?: TNode;
    visible: boolean;
    closeOnOverlay: boolean;
    showOverlay: boolean;
    index: number;
    defaultIndex?: number;
    images: ImageInfo[];
    imageScale: ImageScale;
    viewerScale: ImageViewerScale;
    zIndex: number;
    isMini: boolean;
    draggable: boolean;
    closeBtn: boolean | TNode;
    closeOnEscKeydown?: boolean;
    imageReferrerpolicy?: ImageViewerProps['imageReferrerpolicy'];
    className?: string;
    style?: React.CSSProperties;
    onClose: (context: {
        trigger: 'close-btn' | 'overlay' | 'esc';
        e: React.MouseEvent<HTMLElement> | React.KeyboardEvent;
    }) => void;
    onOpen: () => void;
    onDownload?: TdImageViewerProps['onDownload'];
    onIndexChange?: (index: number, context: {
        trigger: 'prev' | 'next' | 'current';
    }) => void;
    innerClassName?: TdImageViewerProps['innerClassName'];
}
export declare const ImageModal: React.FC<ImageModalProps>;
export {};
