import React from 'react';
import type { LocaleProps, ThemeProps } from 'jamis-core';
export declare enum ImageActionKey {
    /** 右旋转 */
    ROTATE_RIGHT = "rotateRight",
    /** 左旋转 */
    ROTATE_LEFT = "rotateLeft",
    /** 等比例放大 */
    ZOOM_IN = "zoomIn",
    /** 等比例缩小 */
    ZOOM_OUT = "zoomOut",
    /** 恢复原图缩放比例尺 */
    SCALE_ORIGIN = "scaleOrigin"
}
export interface ImageAction {
    key: ImageActionKey;
    label?: string;
    icon?: string | React.ReactNode;
    iconClassName?: string;
    disabled?: boolean;
    onClick?: (context: ImageGallery) => void;
}
interface ImageGalleryProps extends ThemeProps, LocaleProps {
    children: React.ReactNode;
    modalContainer?: () => HTMLElement;
    actions?: ImageAction[];
}
interface ImageGalleryState {
    isOpened: boolean;
    index: number;
    items: Array<{
        src: string;
        originalSrc: string;
        title?: string;
        caption?: string;
    }>;
    /** 图片缩放比例尺 */
    scale: number;
    /** 图片旋转角度 */
    rotate: number;
}
export declare class ImageGallery extends React.Component<ImageGalleryProps, ImageGalleryState> {
    static defaultProps: Pick<ImageGalleryProps, 'actions'>;
    state: ImageGalleryState;
    handleImageEnlarge(info: {
        src: string;
        originalSrc: string;
        list?: Array<{
            src: string;
            originalSrc: string;
            title?: string;
            caption?: string;
        }>;
        title?: string;
        caption?: string;
        index?: number;
    }): void;
    resetImageAction(): void;
    close(): void;
    prev(): void;
    next(): void;
    handleItemClick(e: React.MouseEvent<HTMLDivElement>): void;
    handleToolbarAction: any;
    renderToolbar(actions: ImageAction[]): JSX.Element;
    render(): JSX.Element;
}
export default ImageGallery;
