import { ISrcObject } from './composable';
export declare const componentName = "CdsImage";
declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
    theme: {
        type: import('vue').PropType<import('../../composable').TTheme | string>;
        available: readonly ["cdsLight", "cdsDark", "b2bLight", "b2bDark", "promoLight", "promoDark"];
        default: undefined;
    };
    transition: {
        type: import('vue').PropType<string | boolean | (import('vue').TransitionProps & {
            component?: import('vue').Component;
        })>;
        default: string;
        validator: (value: unknown) => boolean;
    };
    height: {
        type: import('vue').PropType<number | string>;
        default: string;
    };
    width: {
        type: import('vue').PropType<number | string>;
        default: string;
    };
    maxHeight: {
        type: import('vue').PropType<number | string>;
        default: string;
    };
    maxWidth: {
        type: import('vue').PropType<number | string>;
        default: string;
    };
    minHeight: {
        type: import('vue').PropType<number | string>;
        default: string;
    };
    minWidth: {
        type: import('vue').PropType<number | string>;
        default: string;
    };
    aspectRatio: {
        type: import('vue').PropType<string | number>;
        default: undefined;
    };
    contentClass: {
        type: import('vue').PropType<string>;
        default: undefined;
    };
    inline: {
        type: import('vue').PropType<boolean>;
        default: undefined;
    };
    src: {
        type: import('vue').PropType<string | ISrcObject>;
        required: true;
        default: string;
    };
    srcset: {
        type: import('vue').PropType<string>;
        default: undefined;
    };
    lazySrc: {
        type: import('vue').PropType<string>;
        default: undefined;
    };
    sizes: {
        type: import('vue').PropType<string>;
        default: undefined;
    };
    crossorigin: {
        type: import('vue').PropType<"" | "anonymous" | "use-credentials">;
        default: undefined;
    };
    referrerpolicy: {
        type: import('vue').PropType<"no-referrer" | "no-referrer-when-downgrade" | "origin" | "origin-when-cross-origin" | "same-origin" | "strict-origin" | "strict-origin-when-cross-origin" | "unsafe-url">;
        default: undefined;
    };
    absolute: {
        type: import('vue').PropType<boolean>;
        default: boolean;
    };
    position: {
        type: import('vue').PropType<string>;
        default: undefined;
    };
    cover: {
        type: import('vue').PropType<boolean>;
        default: boolean;
    };
    alt: {
        type: import('vue').PropType<string>;
        default: undefined;
    };
    color: {
        type: import('vue').PropType<string>;
        default: undefined;
    };
    eager: {
        type: import('vue').PropType<boolean>;
        default: boolean;
    };
    gradient: {
        type: import('vue').PropType<string>;
        default: undefined;
    };
    draggable: {
        type: import('vue').PropType<boolean | "true" | "false">;
        default: undefined;
    };
    options: {
        type: import('vue').PropType<IntersectionObserverInit>;
        default: () => {
            root: undefined;
            rootMargin: undefined;
            threshold: undefined;
        };
    };
}>, {
    currentSrc: import('vue').ShallowRef<string, string>;
    image: import('vue').Ref<HTMLImageElement | undefined, HTMLImageElement | undefined>;
    state: import('vue').ShallowRef<"error" | "loading" | "idle" | "loaded", "error" | "loading" | "idle" | "loaded">;
    naturalWidth: import('vue').ShallowRef<number | undefined, number | undefined>;
    naturalHeight: import('vue').ShallowRef<number | undefined, number | undefined>;
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
    loadstart: (value: string | undefined) => true;
    load: (value: string | undefined) => true;
    error: (value: string | undefined) => true;
}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
    theme: {
        type: import('vue').PropType<import('../../composable').TTheme | string>;
        available: readonly ["cdsLight", "cdsDark", "b2bLight", "b2bDark", "promoLight", "promoDark"];
        default: undefined;
    };
    transition: {
        type: import('vue').PropType<string | boolean | (import('vue').TransitionProps & {
            component?: import('vue').Component;
        })>;
        default: string;
        validator: (value: unknown) => boolean;
    };
    height: {
        type: import('vue').PropType<number | string>;
        default: string;
    };
    width: {
        type: import('vue').PropType<number | string>;
        default: string;
    };
    maxHeight: {
        type: import('vue').PropType<number | string>;
        default: string;
    };
    maxWidth: {
        type: import('vue').PropType<number | string>;
        default: string;
    };
    minHeight: {
        type: import('vue').PropType<number | string>;
        default: string;
    };
    minWidth: {
        type: import('vue').PropType<number | string>;
        default: string;
    };
    aspectRatio: {
        type: import('vue').PropType<string | number>;
        default: undefined;
    };
    contentClass: {
        type: import('vue').PropType<string>;
        default: undefined;
    };
    inline: {
        type: import('vue').PropType<boolean>;
        default: undefined;
    };
    src: {
        type: import('vue').PropType<string | ISrcObject>;
        required: true;
        default: string;
    };
    srcset: {
        type: import('vue').PropType<string>;
        default: undefined;
    };
    lazySrc: {
        type: import('vue').PropType<string>;
        default: undefined;
    };
    sizes: {
        type: import('vue').PropType<string>;
        default: undefined;
    };
    crossorigin: {
        type: import('vue').PropType<"" | "anonymous" | "use-credentials">;
        default: undefined;
    };
    referrerpolicy: {
        type: import('vue').PropType<"no-referrer" | "no-referrer-when-downgrade" | "origin" | "origin-when-cross-origin" | "same-origin" | "strict-origin" | "strict-origin-when-cross-origin" | "unsafe-url">;
        default: undefined;
    };
    absolute: {
        type: import('vue').PropType<boolean>;
        default: boolean;
    };
    position: {
        type: import('vue').PropType<string>;
        default: undefined;
    };
    cover: {
        type: import('vue').PropType<boolean>;
        default: boolean;
    };
    alt: {
        type: import('vue').PropType<string>;
        default: undefined;
    };
    color: {
        type: import('vue').PropType<string>;
        default: undefined;
    };
    eager: {
        type: import('vue').PropType<boolean>;
        default: boolean;
    };
    gradient: {
        type: import('vue').PropType<string>;
        default: undefined;
    };
    draggable: {
        type: import('vue').PropType<boolean | "true" | "false">;
        default: undefined;
    };
    options: {
        type: import('vue').PropType<IntersectionObserverInit>;
        default: () => {
            root: undefined;
            rootMargin: undefined;
            threshold: undefined;
        };
    };
}>> & Readonly<{
    onError?: ((value: string | undefined) => any) | undefined;
    onLoad?: ((value: string | undefined) => any) | undefined;
    onLoadstart?: ((value: string | undefined) => any) | undefined;
}>, {
    draggable: boolean | "true" | "false";
    color: string;
    transition: string | boolean | (import('vue').TransitionProps & {
        component?: import('vue').Component;
    });
    eager: boolean;
    height: string | number;
    width: string | number;
    maxHeight: string | number;
    maxWidth: string | number;
    minHeight: string | number;
    minWidth: string | number;
    theme: string;
    absolute: boolean;
    position: string;
    options: IntersectionObserverInit;
    inline: boolean;
    cover: boolean;
    src: string | ISrcObject;
    srcset: string;
    lazySrc: string;
    sizes: string;
    crossorigin: "" | "anonymous" | "use-credentials";
    referrerpolicy: "origin" | "no-referrer" | "no-referrer-when-downgrade" | "origin-when-cross-origin" | "same-origin" | "strict-origin" | "strict-origin-when-cross-origin" | "unsafe-url";
    alt: string;
    gradient: string;
    aspectRatio: string | number;
    contentClass: string;
}, {}, {}, {
    Intersect: {
        mounted: (el: HTMLElement, binding: import('../../directives/intersect').ObserverDirectiveBinding) => void;
        unmounted: (el: HTMLElement, binding: import('../../directives/intersect').ObserverDirectiveBinding) => void;
    };
}, string, import('vue').ComponentProvideOptions, true, {}, any>;
export default _default;
