import { DirectiveBinding } from 'vue';
export interface VFullscreenImgOptions {
    disabled?: boolean;
    scaleOnHover?: boolean;
    blurOnHover?: boolean;
    zoom?: boolean;
    offset?: number;
    animation?: {
        duration?: number;
        easing?: string;
    };
}
interface VFullscreenImgBindingOptions extends VFullscreenImgOptions {
    src: string;
    alt?: string | null;
}
export type VFullscreenImgBindingValue = string | VFullscreenImgBindingOptions | undefined;
export type VFullscreenImgBinding = DirectiveBinding<VFullscreenImgBindingValue>;
export declare class FullscreenImgHandler {
    private options;
    private defaultOptions;
    private mouseEnterListener;
    private mouseLeaveListener;
    private renderPreviewListener;
    private buildOptions;
    get allInstances(): HTMLElement[];
    private getImgSrc;
    private getImgAlt;
    create(el: HTMLElement, binding: VFullscreenImgBinding): void;
    update(el: HTMLElement, binding: VFullscreenImgBinding): void;
    remove(el: HTMLElement): void;
    private renderPreview;
    private mouseLeave;
    private mouseEnter;
}
export {};
