import { PropType } from 'vue';
import PhotoView from '../PhotoView/index.vue';
import { ItemType, ShowAnimateEnum, TouchTypeEnum, EdgeTypeEnum } from '../types';
declare const _default: import("vue").DefineComponent<{
    /**
     * 图片列表
     */
    items: {
        type: PropType<ItemType[]>;
        required: true;
    };
    /**
     * 图片当前索引
     */
    index: {
        type: NumberConstructor;
        required: true;
    };
    /**
     * 是否显示模态框
     */
    visible: {
        type: BooleanConstructor;
        required: true;
    };
    /**
     * 箭头切换是否需要过渡
     */
    shouldTransition: {
        type: BooleanConstructor;
        default: boolean;
    };
    /**
     * 是否切换显隐覆盖物
     */
    toggleOverlay: {
        type: BooleanConstructor;
        default: boolean;
    };
    /**
     * 默认背景透明度
     */
    defaultBackdropOpacity: {
        type: NumberConstructor;
        default: number;
    };
    /**
     * 是否循环显示预览图
     */
    loop: {
        type: BooleanConstructor;
        default: boolean;
    };
    /**
     * 下载图片方法，不传使用内置的下载方法
     */
    downloadMethod: {
        type: PropType<(item: ItemType) => void | null>;
        default: null;
    };
}, {
    innerWidth: import("vue").Ref<number>;
    currentItem: import("vue").ComputedRef<ItemType>;
    photoVisible: import("vue").Ref<boolean>;
    showAnimateType: import("vue").Ref<ShowAnimateEnum>;
    originRect: import("vue").Ref<import("../types").OriginRectType>;
    onShowAnimateEnd: () => void;
}, {
    horizontalOffset: number;
    ShowAnimateEnum: typeof ShowAnimateEnum;
    isTouchDevice: boolean;
    touched: boolean;
    hasMove: boolean;
    needTransition: boolean;
    clientX: number;
    clientY: number;
    touchMoveX: number;
    backdropOpacity: number;
    overlayVisible: boolean;
    virtualIndex: number;
    photoViewRefs: {
        [key: string]: any;
    };
}, {
    showItems(): ItemType[];
}, {
    defaultDownloadMethod(item: ItemType): void;
    handleDownload(): void;
    toggleFlipHorizontal(): void;
    toggleFlipVertical(): void;
    handleRotateLeft(): void;
    handleRotateRight(): void;
    setPhotoViewRef(key: string, ref: InstanceType<typeof PhotoView>): void;
    handleKeyDown(e: KeyboardEvent): void;
    handleSingleTap(_clientX: number, _clientY: number, e: MouseEvent | TouchEvent): void;
    handleTouchStart(clientX: number, clientY: number): void;
    handleTouchMove(touchType: TouchTypeEnum, clientX: number, clientY: number, lastScale: number, edgeTypes: EdgeTypeEnum[]): void;
    handleTouchScaleMove(clientX: number, edgeTypes: EdgeTypeEnum[]): void;
    handleTouchHorizontalMove(clientX: number): void;
    handleTouchVerticalMove(clientX: number, clientY: number): void;
    handleTouchEnd(touchType: TouchTypeEnum, clientX: number, clientY: number, lastScale: number, edgeTypes: EdgeTypeEnum[]): void;
    handleTouchScaleEnd(clientX: number, edgeTypes: EdgeTypeEnum[]): void;
    handleTouchHorizontalEnd(clientX: number): void;
    handleTouchVerticalEnd(clientY: number): void;
    resetBackdropOpacity(): void;
    resetNeedTransition(): void;
    handlePrevious(): void;
    handleNext(): void;
    handleClickMask(e: MouseEvent | TouchEvent): void;
    handleClickClose(): void;
    getItemLeft(currentIndex: number): string;
    getItemTransition(): "transform 0.6s cubic-bezier(0.25, 0.8, 0.25, 1)" | undefined;
    getItemTransform(): string;
}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("clickPhoto" | "clickMask" | "changeIndex" | "closeModal")[], "clickPhoto" | "clickMask" | "changeIndex" | "closeModal", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
    /**
     * 图片列表
     */
    items: {
        type: PropType<ItemType[]>;
        required: true;
    };
    /**
     * 图片当前索引
     */
    index: {
        type: NumberConstructor;
        required: true;
    };
    /**
     * 是否显示模态框
     */
    visible: {
        type: BooleanConstructor;
        required: true;
    };
    /**
     * 箭头切换是否需要过渡
     */
    shouldTransition: {
        type: BooleanConstructor;
        default: boolean;
    };
    /**
     * 是否切换显隐覆盖物
     */
    toggleOverlay: {
        type: BooleanConstructor;
        default: boolean;
    };
    /**
     * 默认背景透明度
     */
    defaultBackdropOpacity: {
        type: NumberConstructor;
        default: number;
    };
    /**
     * 是否循环显示预览图
     */
    loop: {
        type: BooleanConstructor;
        default: boolean;
    };
    /**
     * 下载图片方法，不传使用内置的下载方法
     */
    downloadMethod: {
        type: PropType<(item: ItemType) => void | null>;
        default: null;
    };
}>> & {
    onClickPhoto?: ((...args: any[]) => any) | undefined;
    onClickMask?: ((...args: any[]) => any) | undefined;
    onChangeIndex?: ((...args: any[]) => any) | undefined;
    onCloseModal?: ((...args: any[]) => any) | undefined;
}, {
    shouldTransition: boolean;
    toggleOverlay: boolean;
    defaultBackdropOpacity: number;
    loop: boolean;
    downloadMethod: (item: ItemType) => void | null;
}>;
export default _default;
