import { ImageProps, ImageViewerErrorSlotProps, ImageViewerProgressSlotProps, ImageViewerToolbarSlotProps, ImageLoading, ImageFit } from './image.js';
import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
declare function openPreview(): void;
declare function closePreview(): void;
declare function __VLS_template(): {
    attrs: Partial<{}>;
    slots: Readonly<{
        placeholder?: () => unknown;
        error?: () => unknown;
        "viewer-error"?: (props: ImageViewerErrorSlotProps) => unknown;
        progress?: (props: ImageViewerProgressSlotProps) => unknown;
        toolbar?: (props: ImageViewerToolbarSlotProps) => unknown;
    }> & {
        placeholder?: () => unknown;
        error?: () => unknown;
        "viewer-error"?: (props: ImageViewerErrorSlotProps) => unknown;
        progress?: (props: ImageViewerProgressSlotProps) => unknown;
        toolbar?: (props: ImageViewerToolbarSlotProps) => unknown;
    };
    refs: {
        containerRef: HTMLDivElement;
    };
    rootEl: any;
};
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
declare const __VLS_component: DefineComponent<ImageProps, {
    showPreview: typeof openPreview;
    closePreview: typeof closePreview;
}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
    close: () => any;
    error: (event: Event) => any;
    load: (event: Event) => any;
    switch: (index: number) => any;
    show: () => any;
}, string, PublicProps, Readonly<ImageProps> & Readonly<{
    onClose?: (() => any) | undefined;
    onError?: ((event: Event) => any) | undefined;
    onLoad?: ((event: Event) => any) | undefined;
    onSwitch?: ((index: number) => any) | undefined;
    onShow?: (() => any) | undefined;
}>, {
    zIndex: number;
    loading: ImageLoading;
    scale: number;
    infinite: boolean;
    src: string;
    alt: string;
    fit: ImageFit;
    initialIndex: number;
    showProgress: boolean;
    lazy: boolean;
    closeOnPressEscape: boolean;
    scrollContainer: string | HTMLElement;
    previewSrcList: string[];
    previewTeleported: boolean;
    hideOnClickModal: boolean;
    zoomRate: number;
    minScale: number;
    maxScale: number;
    crossorigin: "anonymous" | "use-credentials" | "";
}, {}, {}, {}, string, ComponentProvideOptions, false, {
    containerRef: HTMLDivElement;
}, any>;
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
export default _default;
type __VLS_WithTemplateSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};
