import type { TdImageProps } from './type';
declare const _default: import("vue").ComponentOptions<import("vue").default, import("@vue/composition-api").ShallowUnwrapRef<{
    imageRef: import("@vue/composition-api").Ref<HTMLElement>;
    imageClasses: import("@vue/composition-api").ComputedRef<string[]>;
    handleLoadImage: () => void;
    classPrefix: import("@vue/composition-api").Ref<string>;
    globalConfig: import("@vue/composition-api").Ref<{
        errorText?: string;
        loadingText?: string;
        replaceImageSrc?: (params: TdImageProps) => string;
    }>;
    hasMouseEvent: boolean;
    handleToggleOverlay: () => void;
    shouldShowOverlay: import("@vue/composition-api").Ref<boolean>;
    imageSrc: import("@vue/composition-api").ComputedRef<string>;
    hasError: import("@vue/composition-api").Ref<boolean>;
    shouldLoad: import("@vue/composition-api").Ref<boolean>;
    handleError: (e: Event) => void;
    handleLoad: (e: Event) => void;
    isLoaded: import("@vue/composition-api").Ref<boolean>;
    rest: Partial<TdImageProps>;
}> & import("@vue/composition-api").Data, {
    renderPlaceholder(): JSX.Element;
    renderGalleryShadow(): JSX.Element;
    renderOverlay(): JSX.Element;
    renderImageSrcset(): JSX.Element;
    renderImage(url: string): JSX.Element;
}, {}, {
    alt: {
        type: StringConstructor;
        default: string;
    };
    error: {
        type: import("vue").PropType<string | ((h: import("vue").CreateElement) => import("vue/types/vnode").ScopedSlotReturnValue)>;
    };
    fit: {
        type: import("vue").PropType<"fill" | "none" | "contain" | "cover" | "scale-down">;
        default: "fill" | "none" | "contain" | "cover" | "scale-down";
        validator(val: "fill" | "none" | "contain" | "cover" | "scale-down"): boolean;
    };
    gallery: BooleanConstructor;
    lazy: BooleanConstructor;
    loading: {
        type: import("vue").PropType<string | ((h: import("vue").CreateElement) => import("vue/types/vnode").ScopedSlotReturnValue)>;
    };
    overlayContent: {
        type: import("vue").PropType<string | ((h: import("vue").CreateElement) => import("vue/types/vnode").ScopedSlotReturnValue)>;
    };
    overlayTrigger: {
        type: import("vue").PropType<"always" | "hover">;
        default: "always" | "hover";
        validator(val: "always" | "hover"): boolean;
    };
    placeholder: {
        type: import("vue").PropType<string | ((h: import("vue").CreateElement) => import("vue/types/vnode").ScopedSlotReturnValue)>;
    };
    position: {
        type: StringConstructor;
        default: string;
    };
    shape: {
        type: import("vue").PropType<"square" | "round" | "circle">;
        default: "square" | "round" | "circle";
        validator(val: "square" | "round" | "circle"): boolean;
    };
    src: {
        type: StringConstructor;
        default: string;
    };
    srcset: {
        type: import("vue").PropType<import("./type").ImageSrcset>;
    };
    onError: import("vue").PropType<(context: {
        e: Event;
    }) => void>;
    onLoad: import("vue").PropType<(context: {
        e: Event;
    }) => void>;
}, import("@vue/composition-api").ExtractPropTypes<{
    alt: {
        type: StringConstructor;
        default: string;
    };
    error: {
        type: import("vue").PropType<string | ((h: import("vue").CreateElement) => import("vue/types/vnode").ScopedSlotReturnValue)>;
    };
    fit: {
        type: import("vue").PropType<"fill" | "none" | "contain" | "cover" | "scale-down">;
        default: "fill" | "none" | "contain" | "cover" | "scale-down";
        validator(val: "fill" | "none" | "contain" | "cover" | "scale-down"): boolean;
    };
    gallery: BooleanConstructor;
    lazy: BooleanConstructor;
    loading: {
        type: import("vue").PropType<string | ((h: import("vue").CreateElement) => import("vue/types/vnode").ScopedSlotReturnValue)>;
    };
    overlayContent: {
        type: import("vue").PropType<string | ((h: import("vue").CreateElement) => import("vue/types/vnode").ScopedSlotReturnValue)>;
    };
    overlayTrigger: {
        type: import("vue").PropType<"always" | "hover">;
        default: "always" | "hover";
        validator(val: "always" | "hover"): boolean;
    };
    placeholder: {
        type: import("vue").PropType<string | ((h: import("vue").CreateElement) => import("vue/types/vnode").ScopedSlotReturnValue)>;
    };
    position: {
        type: StringConstructor;
        default: string;
    };
    shape: {
        type: import("vue").PropType<"square" | "round" | "circle">;
        default: "square" | "round" | "circle";
        validator(val: "square" | "round" | "circle"): boolean;
    };
    src: {
        type: StringConstructor;
        default: string;
    };
    srcset: {
        type: import("vue").PropType<import("./type").ImageSrcset>;
    };
    onError: import("vue").PropType<(context: {
        e: Event;
    }) => void>;
    onLoad: import("vue").PropType<(context: {
        e: Event;
    }) => void>;
}>> & Omit<import("vue").VueConstructor<import("vue").default>, never> & (new (...args: any[]) => import("@vue/composition-api").ComponentRenderProxy<{
    position: string;
    lazy: boolean;
    shape: "square" | "round" | "circle";
    fit: "fill" | "none" | "contain" | "cover" | "scale-down";
    overlayTrigger: "always" | "hover";
    alt: string;
    gallery: boolean;
    src: string;
} & {
    error?: string | ((h: import("vue").CreateElement) => import("vue/types/vnode").ScopedSlotReturnValue);
    loading?: string | ((h: import("vue").CreateElement) => import("vue/types/vnode").ScopedSlotReturnValue);
    placeholder?: string | ((h: import("vue").CreateElement) => import("vue/types/vnode").ScopedSlotReturnValue);
    overlayContent?: string | ((h: import("vue").CreateElement) => import("vue/types/vnode").ScopedSlotReturnValue);
    srcset?: import("./type").ImageSrcset;
    onError?: (context: {
        e: Event;
    }) => void;
    onLoad?: (context: {
        e: Event;
    }) => void;
}, import("@vue/composition-api").ShallowUnwrapRef<{
    imageRef: import("@vue/composition-api").Ref<HTMLElement>;
    imageClasses: import("@vue/composition-api").ComputedRef<string[]>;
    handleLoadImage: () => void;
    classPrefix: import("@vue/composition-api").Ref<string>;
    globalConfig: import("@vue/composition-api").Ref<{
        errorText?: string;
        loadingText?: string;
        replaceImageSrc?: (params: TdImageProps) => string;
    }>;
    hasMouseEvent: boolean;
    handleToggleOverlay: () => void;
    shouldShowOverlay: import("@vue/composition-api").Ref<boolean>;
    imageSrc: import("@vue/composition-api").ComputedRef<string>;
    hasError: import("@vue/composition-api").Ref<boolean>;
    shouldLoad: import("@vue/composition-api").Ref<boolean>;
    handleError: (e: Event) => void;
    handleLoad: (e: Event) => void;
    isLoaded: import("@vue/composition-api").Ref<boolean>;
    rest: Partial<TdImageProps>;
}>, import("@vue/composition-api").Data, {}, {
    renderPlaceholder(): JSX.Element;
    renderGalleryShadow(): JSX.Element;
    renderOverlay(): JSX.Element;
    renderImageSrcset(): JSX.Element;
    renderImage(url: string): JSX.Element;
}, {}, {}, {}, {
    position: string;
    lazy: boolean;
    shape: "square" | "round" | "circle";
    fit: "fill" | "none" | "contain" | "cover" | "scale-down";
    overlayTrigger: "always" | "hover";
    alt: string;
    gallery: boolean;
    src: string;
} & {
    error?: string | ((h: import("vue").CreateElement) => import("vue/types/vnode").ScopedSlotReturnValue);
    loading?: string | ((h: import("vue").CreateElement) => import("vue/types/vnode").ScopedSlotReturnValue);
    placeholder?: string | ((h: import("vue").CreateElement) => import("vue/types/vnode").ScopedSlotReturnValue);
    overlayContent?: string | ((h: import("vue").CreateElement) => import("vue/types/vnode").ScopedSlotReturnValue);
    srcset?: import("./type").ImageSrcset;
    onError?: (context: {
        e: Event;
    }) => void;
    onLoad?: (context: {
        e: Event;
    }) => void;
}, {
    position: string;
    lazy: boolean;
    shape: "square" | "round" | "circle";
    fit: "fill" | "none" | "contain" | "cover" | "scale-down";
    overlayTrigger: "always" | "hover";
    alt: string;
    gallery: boolean;
    src: string;
}, true>);
export default _default;
