import type { DefineComponent, TransitionProps, Component, ComputedOptions, MethodOptions, Ref, ComponentOptionsMixin, VNodeProps, AllowedComponentProps, ComponentCustomProps, ExtractPropTypes, PropType } from 'vue';
export declare const Image: DefineComponent<{
    transition: {
        type: PropType<string | false | (TransitionProps & {
            component?: Component<any, any, any, ComputedOptions, 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: Ref<string>;
    image: Ref<HTMLImageElement | undefined>;
    state: Ref<"error" | "loading" | "idle" | "loaded">;
    naturalWidth: Ref<number | undefined>;
    naturalHeight: Ref<number | undefined>;
}, unknown, {}, {}, ComponentOptionsMixin, 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, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<ExtractPropTypes<{
    transition: {
        type: PropType<string | false | (TransitionProps & {
            component?: Component<any, any, any, ComputedOptions, 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)[];
}>> & {
    onError?: ((_src: string | undefined, _image: HTMLImageElement | undefined) => any) | undefined;
    onLoadstart?: ((_src: string | undefined, _image: HTMLImageElement | undefined) => any) | undefined;
    onLoad?: ((_src: string | undefined, _image: HTMLImageElement | undefined) => any) | undefined;
}, {
    transition: string | false | (TransitionProps & {
        component?: Component<any, any, any, ComputedOptions, MethodOptions> | undefined;
    });
    cover: boolean;
    eager: boolean;
    options: IntersectionObserverInit;
}>;
export declare type Image = InstanceType<typeof Image>;
//# sourceMappingURL=image.d.ts.map