import type { LNode } from '../../common.type';
export interface TypeImageViewerProps {
    closeBtn?: boolean | LNode;
    closeOnOverlay?: boolean;
    draggable?: boolean;
    imageScale?: ImageScale;
    images?: Array<string | ImageInfo>;
    index?: number;
    defaultIndex?: number;
    mode?: 'modal' | 'modeless';
    navigationArrow?: boolean | LNode;
    showOverlay?: boolean;
    title?: string | LNode;
    trigger?: string | LNode<{
        open: () => void;
    }>;
    viewerScale?: ImageViewerScale;
    visible?: boolean;
    defaultVisible?: boolean;
    zIndex?: number;
    onClose?: (context: {
        trigger: 'close-btn' | 'overlay' | 'esc';
        e: MouseEvent | KeyboardEvent;
    }) => void;
    onIndexChange?: (index: number, context: {
        trigger: 'prev' | 'next';
    }) => void;
}
export interface ImageScale {
    max: number;
    min: number;
    step: number;
}
export interface ImageInfo {
    mainImage: string;
    thumbnail?: string;
    download?: boolean;
}
export interface ImageViewerScale {
    minWidth: number;
    minHeight: number;
}
