import { DirectiveBinding } from 'vue';
export interface VZoomImgOptions {
    disabled?: boolean;
    scale?: boolean;
    blur?: boolean;
}
interface VZoomImgBindingOptions extends VZoomImgOptions {
    src: string;
    alt?: string;
}
export type VZoomImgBindingValue = string | VZoomImgBindingOptions;
export type VZoomImgBinding = DirectiveBinding<VZoomImgBindingValue>;
export declare class ZoomImgHandler {
    private options;
    private loader;
    private wrapper;
    private img;
    private keydownHandler;
    private onImgLoadedCallback;
    private buttonsAdded;
    private defaultOptions;
    private mouseEnterListener;
    private mouseLeaveListener;
    private renderPreviewListener;
    constructor(binding: VZoomImgBinding);
    private buildOptions;
    get allInstances(): HTMLElement[];
    create(el: HTMLElement): void;
    update(binding: VZoomImgBinding): void;
    remove(el: HTMLElement): void;
    private renderPreview;
    private onImgLoaded;
    private getLoader;
    private mouseLeave;
    private mouseEnter;
    private keydownLister;
    private getButton;
    private closePreview;
    private getNewInstanceIndex;
    private nextPreviousImage;
    private useNextInstance;
    private addStyle;
    private keyboardEventHandler;
    private imgEventHandler;
}
export {};
