import { App } from 'vue';
import { ComponentOptionsMixin } from 'vue';
import { ComponentProvideOptions } from 'vue';
import { CreateComponentPublicInstanceWithMixins } from 'vue';
import { DefineComponent } from 'vue';
import { ExtractPropTypes } from 'vue';
import { GlobalComponents } from 'vue';
import { GlobalDirectives } from 'vue';
import { PublicProps } from 'vue';
import { Ref } from 'vue';
import { ShallowRef } from 'vue';
import { ZoomImgCoreProps } from '../types';
import { ZoomImgProps } from '../types';

declare const __VLS_component: DefineComponent<ZoomImgProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
error: (...args: any[]) => void;
load: (...args: any[]) => void;
}, string, PublicProps, Readonly<ZoomImgProps> & Readonly<{
onError?: ((...args: any[]) => any) | undefined;
onLoad?: ((...args: any[]) => any) | undefined;
}>, {
zoomType: "move" | "drag";
}, {}, {}, {}, string, ComponentProvideOptions, false, {
zoomComponent: CreateComponentPublicInstanceWithMixins<Readonly<{
currentScale?: number;
zoomedImgOffset?: {
left: number;
top: number;
};
} & ZoomImgCoreProps> & Readonly<{
onError?: ((...args: any[]) => any) | undefined;
onLoad?: ((...args: any[]) => any) | undefined;
"onUpdate:currentScale"?: ((value: number) => any) | undefined;
"onUpdate:zoomedImgOffset"?: ((value: {
left: number;
top: number;
}) => any) | undefined;
}>, {
zoomDir: Ref<"IN" | "OUT", "IN" | "OUT">;
vzImgRef: Readonly<ShallowRef<HTMLImageElement | null>>;
multiZoom: () => void;
}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
error: (...args: any[]) => void;
load: (...args: any[]) => void;
"update:currentScale": (value: number) => void;
"update:zoomedImgOffset": (value: {
left: number;
top: number;
}) => void;
}, PublicProps, {
zoomScale: number;
trigger: "click" | "hover";
}, false, {}, {}, GlobalComponents, GlobalDirectives, string, {
container: HTMLDivElement;
vzImg: HTMLImageElement;
}, HTMLDivElement, ComponentProvideOptions, {
P: {};
B: {};
D: {};
C: {};
M: {};
Defaults: {};
}, Readonly<{
currentScale?: number;
zoomedImgOffset?: {
left: number;
top: number;
};
} & ZoomImgCoreProps> & Readonly<{
onError?: ((...args: any[]) => any) | undefined;
onLoad?: ((...args: any[]) => any) | undefined;
"onUpdate:currentScale"?: ((value: number) => any) | undefined;
"onUpdate:zoomedImgOffset"?: ((value: {
left: number;
top: number;
}) => any) | undefined;
}>, {
zoomDir: Ref<"IN" | "OUT", "IN" | "OUT">;
vzImgRef: Readonly<ShallowRef<HTMLImageElement | null>>;
multiZoom: () => void;
}, {}, {}, {}, {
zoomScale: number;
trigger: "click" | "hover";
}> | null;
}, HTMLDivElement>;

declare function __VLS_template(): {
    attrs: Partial<{}>;
    slots: {
        loading?(_: {}): any;
        error?(_: {}): any;
    };
    refs: {
        zoomComponent: CreateComponentPublicInstanceWithMixins<Readonly<{
        currentScale?: number;
        zoomedImgOffset?: {
        left: number;
        top: number;
        };
        } & ZoomImgCoreProps> & Readonly<{
        onError?: ((...args: any[]) => any) | undefined;
        onLoad?: ((...args: any[]) => any) | undefined;
        "onUpdate:currentScale"?: ((value: number) => any) | undefined;
        "onUpdate:zoomedImgOffset"?: ((value: {
        left: number;
        top: number;
        }) => any) | undefined;
        }>, {
        zoomDir: Ref<"IN" | "OUT", "IN" | "OUT">;
        vzImgRef: Readonly<ShallowRef<HTMLImageElement | null>>;
        multiZoom: () => void;
        }, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
        error: (...args: any[]) => void;
        load: (...args: any[]) => void;
        "update:currentScale": (value: number) => void;
        "update:zoomedImgOffset": (value: {
        left: number;
        top: number;
        }) => void;
        }, PublicProps, {
        zoomScale: number;
        trigger: "click" | "hover";
        }, false, {}, {}, GlobalComponents, GlobalDirectives, string, {
        container: HTMLDivElement;
        vzImg: HTMLImageElement;
        }, HTMLDivElement, ComponentProvideOptions, {
        P: {};
        B: {};
        D: {};
        C: {};
        M: {};
        Defaults: {};
        }, Readonly<{
        currentScale?: number;
        zoomedImgOffset?: {
        left: number;
        top: number;
        };
        } & ZoomImgCoreProps> & Readonly<{
        onError?: ((...args: any[]) => any) | undefined;
        onLoad?: ((...args: any[]) => any) | undefined;
        "onUpdate:currentScale"?: ((value: number) => any) | undefined;
        "onUpdate:zoomedImgOffset"?: ((value: {
        left: number;
        top: number;
        }) => any) | undefined;
        }>, {
        zoomDir: Ref<"IN" | "OUT", "IN" | "OUT">;
        vzImgRef: Readonly<ShallowRef<HTMLImageElement | null>>;
        multiZoom: () => void;
        }, {}, {}, {}, {
        zoomScale: number;
        trigger: "click" | "hover";
        }> | null;
    };
    rootEl: HTMLDivElement;
};

declare type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;

declare type __VLS_WithTemplateSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};

declare const _default: {
    install: (app: App) => void;
};
export default _default;

export declare const Magnifier: DefineComponent<ExtractPropTypes<    {
src: {
type: StringConstructor;
required: true;
};
alt: {
type: StringConstructor;
default: string;
};
zoomScale: {
type: NumberConstructor;
default: number;
};
size: {
type: NumberConstructor;
default: number;
};
}>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
error: (...args: any[]) => void;
load: (...args: any[]) => void;
}, string, PublicProps, Readonly<ExtractPropTypes<    {
src: {
type: StringConstructor;
required: true;
};
alt: {
type: StringConstructor;
default: string;
};
zoomScale: {
type: NumberConstructor;
default: number;
};
size: {
type: NumberConstructor;
default: number;
};
}>> & Readonly<{
onError?: ((...args: any[]) => any) | undefined;
onLoad?: ((...args: any[]) => any) | undefined;
}>, {
alt: string;
zoomScale: number;
size: number;
}, {}, {}, {}, string, ComponentProvideOptions, true, {
container: HTMLDivElement;
}, HTMLDivElement>;

export declare const ZoomImg: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;

export { }
