import { SwiperToOptions } from '../swiper';
import type { TNode } from '../common';
export interface TdImageViewerProps {
    closeBtn?: boolean | TNode;
    cover?: TNode;
    deleteBtn?: boolean | TNode;
    image?: TNode<ImageSlotParams>;
    images?: Array<string | ImageInfo>;
    index?: number;
    defaultIndex?: number;
    loop?: boolean;
    maxZoom?: number;
    showIndex?: boolean;
    visible?: boolean;
    defaultVisible?: boolean;
    modelValue?: boolean;
    onClose?: (context: {
        trigger: ImageViewerCloseTrigger;
        visible: boolean;
        index: number;
    }) => void;
    onDelete?: (index: number) => void;
    onIndexChange?: (index: number, context: {
        trigger: 'prev' | 'next';
    }) => void;
}
export interface ImageViewerInstanceFunctions {
    swipeTo?: (index: number, options?: SwiperToOptions) => void;
}
export interface ImageSlotParams {
    src: string;
    index?: number;
    extra?: Record<string, any>;
    className?: string;
    style?: string;
    onLoad?: (e: Event) => void;
    onTransitionstart?: (e: TransitionEvent) => void;
    onTransitionend?: (e: TransitionEvent) => void;
}
export interface ImageInfo {
    url: string;
    align: 'start' | 'center' | 'end';
    extra?: Record<string, any>;
}
export type ImageViewerCloseTrigger = 'image' | 'overlay' | 'close-btn';
