import type { vLazyImgOptions } from './../modules/directives/v-lazy-img/types';
import type { Image } from './types';
import { type HTMLAttributes } from 'vue';
export type { Image };
export interface Props {
    /** The style of the component */
    style?: HTMLAttributes['style'];
    /** The class of the component */
    class?: HTMLAttributes['class'];
    /** @deprecated Use `src` instead */
    image?: Image | null;
    /**
     * The source of the image
     * @type {string | Image | null}
     */
    src?: Image | null;
    /** The alt of the image */
    alt?: string;
    /** Display the fallback image */
    noPhoto?: boolean;
    /** Remove the loader */
    noLoader?: boolean;
    /** Remove the observer once the image is loaded */
    noObserverOnce?: boolean;
    /** Remove the observer once the image is loaded */
    loadOnce?: boolean;
    /** Make the image height full */
    imageHeightFull?: boolean;
    /** The options of the observer */
    observerOptions?: vLazyImgOptions['observerOptions'];
    /** The fallback src to replace the src on loading error */
    fallbackSrc?: string;
    /** The classes of the image element */
    imgClass?: HTMLAttributes['class'];
    /** The image will be displayed in full width */
    block?: boolean;
}
declare function __VLS_template(): {
    attrs: Partial<{}>;
    slots: {
        default?(_: {}): any;
    };
    refs: {};
    rootEl: any;
};
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
declare const __VLS_component: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
    error: (el: Element) => any;
    loaded: (el: Element) => any;
    loading: (el: Element) => any;
    intersecting: (el: Element) => any;
}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{
    onError?: ((el: Element) => any) | undefined;
    onLoaded?: ((el: Element) => any) | undefined;
    onLoading?: ((el: Element) => any) | undefined;
    onIntersecting?: ((el: Element) => any) | undefined;
}>, {
    style: string | false | import("vue").CSSProperties | import("vue").StyleValue[] | null;
    image: Image | null;
    class: HTMLAttributes["class"];
    src: Image | null;
    alt: string;
    observerOptions: {
        root?: HTMLElement | null;
        threshold: number;
        rootMargin?: string;
    };
    fallbackSrc: string;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
export default _default;
type __VLS_WithTemplateSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};
