import Image from './Image.vue';
export declare const GmImage: import("../../../../utils").SFCWithInstall<{
    new (...args: any[]): import("vue").CreateComponentPublicInstance<Readonly<import("vue").ExtractPropTypes<{
        showProgress: {
            type: BooleanConstructor;
            default: boolean;
        };
        downloadMode: {
            type: import("vue").PropType<import("./image").GmImageDownloadMode>;
            default: string;
        };
        hideOnClickModal: BooleanConstructor;
        src: {
            readonly type: import("vue").PropType<string>;
            readonly required: false;
            readonly validator: ((val: unknown) => boolean) | undefined;
            __epPropKey: true;
        } & {
            readonly default: "";
        };
        fit: {
            readonly type: import("vue").PropType<"" | "fill" | "none" | "contain" | "cover" | "scale-down">;
            readonly required: false;
            readonly validator: ((val: unknown) => boolean) | undefined;
            __epPropKey: true;
        } & {
            readonly default: "";
        };
        loading: {
            readonly type: import("vue").PropType<"lazy" | "eager">;
            readonly required: false;
            readonly validator: ((val: unknown) => boolean) | undefined;
            __epPropKey: true;
        };
        lazy: BooleanConstructor;
        scrollContainer: {
            readonly type: import("vue").PropType<string | HTMLElement | undefined>;
            readonly required: false;
            readonly validator: ((val: unknown) => boolean) | undefined;
            __epPropKey: true;
        };
        previewSrcList: {
            readonly type: import("vue").PropType<string[]>;
            readonly required: false;
            readonly validator: ((val: unknown) => boolean) | undefined;
            __epPropKey: true;
        } & {
            readonly default: () => [];
        };
        previewTeleported: BooleanConstructor;
        zIndex: {
            readonly type: import("vue").PropType<number>;
            readonly required: false;
            readonly validator: ((val: unknown) => boolean) | undefined;
            __epPropKey: true;
        };
        initialIndex: {
            readonly type: import("vue").PropType<number>;
            readonly required: false;
            readonly validator: ((val: unknown) => boolean) | undefined;
            __epPropKey: true;
        } & {
            readonly default: 0;
        };
        infinite: {
            readonly type: import("vue").PropType<boolean>;
            readonly required: false;
            readonly validator: ((val: unknown) => boolean) | undefined;
            __epPropKey: true;
        } & {
            readonly default: true;
        };
        closeOnPressEscape: {
            readonly type: import("vue").PropType<boolean>;
            readonly required: false;
            readonly validator: ((val: unknown) => boolean) | undefined;
            __epPropKey: true;
        } & {
            readonly default: true;
        };
        zoomRate: {
            readonly type: import("vue").PropType<number>;
            readonly required: false;
            readonly validator: ((val: unknown) => boolean) | undefined;
            __epPropKey: true;
        } & {
            readonly default: 1.2;
        };
        scale: {
            readonly type: import("vue").PropType<number>;
            readonly required: false;
            readonly validator: ((val: unknown) => boolean) | undefined;
            __epPropKey: true;
        } & {
            readonly default: 1;
        };
        minScale: {
            readonly type: import("vue").PropType<number>;
            readonly required: false;
            readonly validator: ((val: unknown) => boolean) | undefined;
            __epPropKey: true;
        } & {
            readonly default: 0.2;
        };
        maxScale: {
            readonly type: import("vue").PropType<number>;
            readonly required: false;
            readonly validator: ((val: unknown) => boolean) | undefined;
            __epPropKey: true;
        } & {
            readonly default: 7;
        };
        crossorigin: {
            readonly type: import("vue").PropType<"" | "anonymous" | "use-credentials">;
            readonly required: false;
            readonly validator: ((val: unknown) => boolean) | undefined;
            __epPropKey: true;
        };
    }>> & {
        onError?: ((evt: Event) => any) | undefined;
        onClose?: (() => any) | undefined;
        onLoad?: ((evt: Event) => any) | undefined;
        onShow?: (() => any) | undefined;
        onSwitch?: ((val: number) => any) | undefined;
    }, {
        download: (urlOrIndex: string | number, filename?: string | undefined) => Promise<void>;
    }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
        error: (evt: Event) => void;
        show: () => void;
        switch: (val: number) => void;
        close: () => void;
        load: (evt: Event) => void;
    }, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & Readonly<import("vue").ExtractPropTypes<{
        showProgress: {
            type: BooleanConstructor;
            default: boolean;
        };
        downloadMode: {
            type: import("vue").PropType<import("./image").GmImageDownloadMode>;
            default: string;
        };
        hideOnClickModal: BooleanConstructor;
        src: {
            readonly type: import("vue").PropType<string>;
            readonly required: false;
            readonly validator: ((val: unknown) => boolean) | undefined;
            __epPropKey: true;
        } & {
            readonly default: "";
        };
        fit: {
            readonly type: import("vue").PropType<"" | "fill" | "none" | "contain" | "cover" | "scale-down">;
            readonly required: false;
            readonly validator: ((val: unknown) => boolean) | undefined;
            __epPropKey: true;
        } & {
            readonly default: "";
        };
        loading: {
            readonly type: import("vue").PropType<"lazy" | "eager">;
            readonly required: false;
            readonly validator: ((val: unknown) => boolean) | undefined;
            __epPropKey: true;
        };
        lazy: BooleanConstructor;
        scrollContainer: {
            readonly type: import("vue").PropType<string | HTMLElement | undefined>;
            readonly required: false;
            readonly validator: ((val: unknown) => boolean) | undefined;
            __epPropKey: true;
        };
        previewSrcList: {
            readonly type: import("vue").PropType<string[]>;
            readonly required: false;
            readonly validator: ((val: unknown) => boolean) | undefined;
            __epPropKey: true;
        } & {
            readonly default: () => [];
        };
        previewTeleported: BooleanConstructor;
        zIndex: {
            readonly type: import("vue").PropType<number>;
            readonly required: false;
            readonly validator: ((val: unknown) => boolean) | undefined;
            __epPropKey: true;
        };
        initialIndex: {
            readonly type: import("vue").PropType<number>;
            readonly required: false;
            readonly validator: ((val: unknown) => boolean) | undefined;
            __epPropKey: true;
        } & {
            readonly default: 0;
        };
        infinite: {
            readonly type: import("vue").PropType<boolean>;
            readonly required: false;
            readonly validator: ((val: unknown) => boolean) | undefined;
            __epPropKey: true;
        } & {
            readonly default: true;
        };
        closeOnPressEscape: {
            readonly type: import("vue").PropType<boolean>;
            readonly required: false;
            readonly validator: ((val: unknown) => boolean) | undefined;
            __epPropKey: true;
        } & {
            readonly default: true;
        };
        zoomRate: {
            readonly type: import("vue").PropType<number>;
            readonly required: false;
            readonly validator: ((val: unknown) => boolean) | undefined;
            __epPropKey: true;
        } & {
            readonly default: 1.2;
        };
        scale: {
            readonly type: import("vue").PropType<number>;
            readonly required: false;
            readonly validator: ((val: unknown) => boolean) | undefined;
            __epPropKey: true;
        } & {
            readonly default: 1;
        };
        minScale: {
            readonly type: import("vue").PropType<number>;
            readonly required: false;
            readonly validator: ((val: unknown) => boolean) | undefined;
            __epPropKey: true;
        } & {
            readonly default: 0.2;
        };
        maxScale: {
            readonly type: import("vue").PropType<number>;
            readonly required: false;
            readonly validator: ((val: unknown) => boolean) | undefined;
            __epPropKey: true;
        } & {
            readonly default: 7;
        };
        crossorigin: {
            readonly type: import("vue").PropType<"" | "anonymous" | "use-credentials">;
            readonly required: false;
            readonly validator: ((val: unknown) => boolean) | undefined;
            __epPropKey: true;
        };
    }>> & {
        onError?: ((evt: Event) => any) | undefined;
        onClose?: (() => any) | undefined;
        onLoad?: ((evt: Event) => any) | undefined;
        onShow?: (() => any) | undefined;
        onSwitch?: ((val: number) => any) | undefined;
    }, {
        infinite: boolean;
        scale: number;
        src: string;
        fit: "" | "fill" | "none" | "contain" | "cover" | "scale-down";
        initialIndex: number;
        closeOnPressEscape: boolean;
        showProgress: boolean;
        downloadMode: import("./image").GmImageDownloadMode;
        hideOnClickModal: boolean;
        lazy: boolean;
        previewSrcList: string[];
        previewTeleported: boolean;
        zoomRate: number;
        minScale: number;
        maxScale: number;
    }, true, {}, {}, {
        P: {};
        B: {};
        D: {};
        C: {};
        M: {};
        Defaults: {};
    }, Readonly<import("vue").ExtractPropTypes<{
        showProgress: {
            type: BooleanConstructor;
            default: boolean;
        };
        downloadMode: {
            type: import("vue").PropType<import("./image").GmImageDownloadMode>;
            default: string;
        };
        hideOnClickModal: BooleanConstructor;
        src: {
            readonly type: import("vue").PropType<string>;
            readonly required: false;
            readonly validator: ((val: unknown) => boolean) | undefined;
            __epPropKey: true;
        } & {
            readonly default: "";
        };
        fit: {
            readonly type: import("vue").PropType<"" | "fill" | "none" | "contain" | "cover" | "scale-down">;
            readonly required: false;
            readonly validator: ((val: unknown) => boolean) | undefined;
            __epPropKey: true;
        } & {
            readonly default: "";
        };
        loading: {
            readonly type: import("vue").PropType<"lazy" | "eager">;
            readonly required: false;
            readonly validator: ((val: unknown) => boolean) | undefined;
            __epPropKey: true;
        };
        lazy: BooleanConstructor;
        scrollContainer: {
            readonly type: import("vue").PropType<string | HTMLElement | undefined>;
            readonly required: false;
            readonly validator: ((val: unknown) => boolean) | undefined;
            __epPropKey: true;
        };
        previewSrcList: {
            readonly type: import("vue").PropType<string[]>;
            readonly required: false;
            readonly validator: ((val: unknown) => boolean) | undefined;
            __epPropKey: true;
        } & {
            readonly default: () => [];
        };
        previewTeleported: BooleanConstructor;
        zIndex: {
            readonly type: import("vue").PropType<number>;
            readonly required: false;
            readonly validator: ((val: unknown) => boolean) | undefined;
            __epPropKey: true;
        };
        initialIndex: {
            readonly type: import("vue").PropType<number>;
            readonly required: false;
            readonly validator: ((val: unknown) => boolean) | undefined;
            __epPropKey: true;
        } & {
            readonly default: 0;
        };
        infinite: {
            readonly type: import("vue").PropType<boolean>;
            readonly required: false;
            readonly validator: ((val: unknown) => boolean) | undefined;
            __epPropKey: true;
        } & {
            readonly default: true;
        };
        closeOnPressEscape: {
            readonly type: import("vue").PropType<boolean>;
            readonly required: false;
            readonly validator: ((val: unknown) => boolean) | undefined;
            __epPropKey: true;
        } & {
            readonly default: true;
        };
        zoomRate: {
            readonly type: import("vue").PropType<number>;
            readonly required: false;
            readonly validator: ((val: unknown) => boolean) | undefined;
            __epPropKey: true;
        } & {
            readonly default: 1.2;
        };
        scale: {
            readonly type: import("vue").PropType<number>;
            readonly required: false;
            readonly validator: ((val: unknown) => boolean) | undefined;
            __epPropKey: true;
        } & {
            readonly default: 1;
        };
        minScale: {
            readonly type: import("vue").PropType<number>;
            readonly required: false;
            readonly validator: ((val: unknown) => boolean) | undefined;
            __epPropKey: true;
        } & {
            readonly default: 0.2;
        };
        maxScale: {
            readonly type: import("vue").PropType<number>;
            readonly required: false;
            readonly validator: ((val: unknown) => boolean) | undefined;
            __epPropKey: true;
        } & {
            readonly default: 7;
        };
        crossorigin: {
            readonly type: import("vue").PropType<"" | "anonymous" | "use-credentials">;
            readonly required: false;
            readonly validator: ((val: unknown) => boolean) | undefined;
            __epPropKey: true;
        };
    }>> & {
        onError?: ((evt: Event) => any) | undefined;
        onClose?: (() => any) | undefined;
        onLoad?: ((evt: Event) => any) | undefined;
        onShow?: (() => any) | undefined;
        onSwitch?: ((val: number) => any) | undefined;
    }, {
        download: (urlOrIndex: string | number, filename?: string | undefined) => Promise<void>;
    }, {}, {}, {}, {
        infinite: boolean;
        scale: number;
        src: string;
        fit: "" | "fill" | "none" | "contain" | "cover" | "scale-down";
        initialIndex: number;
        closeOnPressEscape: boolean;
        showProgress: boolean;
        downloadMode: import("./image").GmImageDownloadMode;
        hideOnClickModal: boolean;
        lazy: boolean;
        previewSrcList: string[];
        previewTeleported: boolean;
        zoomRate: number;
        minScale: number;
        maxScale: number;
    }>;
    __isFragment?: undefined;
    __isTeleport?: undefined;
    __isSuspense?: undefined;
} & import("vue").ComponentOptionsBase<Readonly<import("vue").ExtractPropTypes<{
    showProgress: {
        type: BooleanConstructor;
        default: boolean;
    };
    downloadMode: {
        type: import("vue").PropType<import("./image").GmImageDownloadMode>;
        default: string;
    };
    hideOnClickModal: BooleanConstructor;
    src: {
        readonly type: import("vue").PropType<string>;
        readonly required: false;
        readonly validator: ((val: unknown) => boolean) | undefined;
        __epPropKey: true;
    } & {
        readonly default: "";
    };
    fit: {
        readonly type: import("vue").PropType<"" | "fill" | "none" | "contain" | "cover" | "scale-down">;
        readonly required: false;
        readonly validator: ((val: unknown) => boolean) | undefined;
        __epPropKey: true;
    } & {
        readonly default: "";
    };
    loading: {
        readonly type: import("vue").PropType<"lazy" | "eager">;
        readonly required: false;
        readonly validator: ((val: unknown) => boolean) | undefined;
        __epPropKey: true;
    };
    lazy: BooleanConstructor;
    scrollContainer: {
        readonly type: import("vue").PropType<string | HTMLElement | undefined>;
        readonly required: false;
        readonly validator: ((val: unknown) => boolean) | undefined;
        __epPropKey: true;
    };
    previewSrcList: {
        readonly type: import("vue").PropType<string[]>;
        readonly required: false;
        readonly validator: ((val: unknown) => boolean) | undefined;
        __epPropKey: true;
    } & {
        readonly default: () => [];
    };
    previewTeleported: BooleanConstructor;
    zIndex: {
        readonly type: import("vue").PropType<number>;
        readonly required: false;
        readonly validator: ((val: unknown) => boolean) | undefined;
        __epPropKey: true;
    };
    initialIndex: {
        readonly type: import("vue").PropType<number>;
        readonly required: false;
        readonly validator: ((val: unknown) => boolean) | undefined;
        __epPropKey: true;
    } & {
        readonly default: 0;
    };
    infinite: {
        readonly type: import("vue").PropType<boolean>;
        readonly required: false;
        readonly validator: ((val: unknown) => boolean) | undefined;
        __epPropKey: true;
    } & {
        readonly default: true;
    };
    closeOnPressEscape: {
        readonly type: import("vue").PropType<boolean>;
        readonly required: false;
        readonly validator: ((val: unknown) => boolean) | undefined;
        __epPropKey: true;
    } & {
        readonly default: true;
    };
    zoomRate: {
        readonly type: import("vue").PropType<number>;
        readonly required: false;
        readonly validator: ((val: unknown) => boolean) | undefined;
        __epPropKey: true;
    } & {
        readonly default: 1.2;
    };
    scale: {
        readonly type: import("vue").PropType<number>;
        readonly required: false;
        readonly validator: ((val: unknown) => boolean) | undefined;
        __epPropKey: true;
    } & {
        readonly default: 1;
    };
    minScale: {
        readonly type: import("vue").PropType<number>;
        readonly required: false;
        readonly validator: ((val: unknown) => boolean) | undefined;
        __epPropKey: true;
    } & {
        readonly default: 0.2;
    };
    maxScale: {
        readonly type: import("vue").PropType<number>;
        readonly required: false;
        readonly validator: ((val: unknown) => boolean) | undefined;
        __epPropKey: true;
    } & {
        readonly default: 7;
    };
    crossorigin: {
        readonly type: import("vue").PropType<"" | "anonymous" | "use-credentials">;
        readonly required: false;
        readonly validator: ((val: unknown) => boolean) | undefined;
        __epPropKey: true;
    };
}>> & {
    onError?: ((evt: Event) => any) | undefined;
    onClose?: (() => any) | undefined;
    onLoad?: ((evt: Event) => any) | undefined;
    onShow?: (() => any) | undefined;
    onSwitch?: ((val: number) => any) | undefined;
}, {
    download: (urlOrIndex: string | number, filename?: string | undefined) => Promise<void>;
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
    error: (evt: Event) => void;
    show: () => void;
    switch: (val: number) => void;
    close: () => void;
    load: (evt: Event) => void;
}, string, {
    infinite: boolean;
    scale: number;
    src: string;
    fit: "" | "fill" | "none" | "contain" | "cover" | "scale-down";
    initialIndex: number;
    closeOnPressEscape: boolean;
    showProgress: boolean;
    downloadMode: import("./image").GmImageDownloadMode;
    hideOnClickModal: boolean;
    lazy: boolean;
    previewSrcList: string[];
    previewTeleported: boolean;
    zoomRate: number;
    minScale: number;
    maxScale: number;
}, {}, string, {}> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & (new () => {
    $slots: {
        placeholder?: ((props: {}) => any) | undefined;
    } & {
        error?: ((props: {}) => any) | undefined;
    } & {
        viewer?: ((props: {}) => any) | undefined;
    } & {
        toolbar?: ((props: {
            download: (urlOrIndex: string | number, filename?: string | undefined) => Promise<void>;
            actions: (action: import("element-plus").ImageViewerAction, options?: {} | undefined) => void;
            prev: () => void;
            next: () => void;
            reset: () => void;
            activeIndex: number;
            setActiveItem: (index: number) => void;
        }) => any) | undefined;
    };
})> & Record<string, any>;
export type ImageInstance = InstanceType<typeof Image>;
export * from './image';
export default GmImage;
