import type { PropType } from 'vue';
export declare const Image: import("vue").DefineComponent<{
    transition: {
        type: PropType<string | false | (import("vue").TransitionProps & {
            component?: import("vue").Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions> | undefined;
        })>;
        default: string;
        validator: (val: unknown) => boolean;
    };
    /**
     * @zh 纵横比
     */
    aspectRatio: (StringConstructor | NumberConstructor)[];
    /**
     * @zh alt
     */
    alt: StringConstructor;
    /**
     * @zh object-fit: cover
     */
    cover: BooleanConstructor;
    /**
     * @zh 立即加载
     */
    eager: BooleanConstructor;
    /**
     * @zh 渐变
     */
    gradient: StringConstructor;
    /**
     * @zh 懒加载 src
     */
    lazySrc: StringConstructor;
    /**
     * @zh IntersectionObserverInit
     */
    options: {
        type: PropType<IntersectionObserverInit>;
        default: () => {
            root: undefined;
            rootMargin: undefined;
            threshold: undefined;
        };
    };
    /**
     * @zh sizes
     */
    sizes: StringConstructor;
    /**
     * @zh src
     */
    src: StringConstructor;
    /**
     * @zh srcset
     */
    srcset: StringConstructor;
    /**
     * @zh 宽度
     */
    width: (StringConstructor | NumberConstructor)[];
}, {
    currentSrc: import("vue").Ref<string>;
    image: import("vue").Ref<HTMLImageElement | undefined>;
    state: import("vue").Ref<"error" | "loading" | "idle" | "loaded">;
    naturalWidth: import("vue").Ref<number | undefined>;
    naturalHeight: import("vue").Ref<number | undefined>;
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
    loadstart: (_src: string | undefined, _image: HTMLImageElement | undefined) => true;
    load: (_src: string | undefined, _image: HTMLImageElement | undefined) => true;
    error: (_src: string | undefined, _image: HTMLImageElement | undefined) => true;
}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
    transition: {
        type: PropType<string | false | (import("vue").TransitionProps & {
            component?: import("vue").Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions> | undefined;
        })>;
        default: string;
        validator: (val: unknown) => boolean;
    };
    /**
     * @zh 纵横比
     */
    aspectRatio: (StringConstructor | NumberConstructor)[];
    /**
     * @zh alt
     */
    alt: StringConstructor;
    /**
     * @zh object-fit: cover
     */
    cover: BooleanConstructor;
    /**
     * @zh 立即加载
     */
    eager: BooleanConstructor;
    /**
     * @zh 渐变
     */
    gradient: StringConstructor;
    /**
     * @zh 懒加载 src
     */
    lazySrc: StringConstructor;
    /**
     * @zh IntersectionObserverInit
     */
    options: {
        type: PropType<IntersectionObserverInit>;
        default: () => {
            root: undefined;
            rootMargin: undefined;
            threshold: undefined;
        };
    };
    /**
     * @zh sizes
     */
    sizes: StringConstructor;
    /**
     * @zh src
     */
    src: StringConstructor;
    /**
     * @zh srcset
     */
    srcset: StringConstructor;
    /**
     * @zh 宽度
     */
    width: (StringConstructor | NumberConstructor)[];
}>> & {
    onLoad?: ((_src: string | undefined, _image: HTMLImageElement | undefined) => any) | undefined;
    onError?: ((_src: string | undefined, _image: HTMLImageElement | undefined) => any) | undefined;
    onLoadstart?: ((_src: string | undefined, _image: HTMLImageElement | undefined) => any) | undefined;
}, {
    transition: string | false | (import("vue").TransitionProps & {
        component?: import("vue").Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions> | undefined;
    });
    cover: boolean;
    options: IntersectionObserverInit;
    eager: boolean;
}>;
export type Image = InstanceType<typeof Image>;
