import { AvatarEmits, AvatarProps } from './avatar';
import { SetupContext } from 'vue';
export declare const useAvatar: (props: AvatarProps, emit?: SetupContext<AvatarEmits>["emit"]) => {
    readonly ctx: {
        attrs: {
            [x: string]: unknown;
        };
        config: import('vue').ComputedRef<Partial<AvatarProps>>;
        _ref: import('vue').Ref<HTMLButtonElement, HTMLButtonElement>;
        _text: import('vue').ComputedRef<string>;
        text: import('vue').Ref<string, string>;
        _props: import('vue').ComputedRef<{
            [x: string]: unknown;
        }>;
        proxyProps: import('vue').ComputedRef<Partial<AvatarProps>>;
        _loadError: import('vue').Ref<boolean, boolean>;
        $slots: Readonly<{
            [name: string]: import('vue').Slot<any>;
        }>;
        _slots: import('vue').ComputedRef<Readonly<{
            [name: string]: import('vue').Slot<any>;
        }>>;
        loadErrors: import('vue').Ref<{}, {}>;
        src: import('vue').Ref<string, string>;
        errSrc: import('vue').Ref<string, string>;
    };
    readonly templates: {
        DefineAvatarSlotTemplate: import('@vueuse/core').DefineTemplateComponent<Partial<import('vue').ExtractPropTypes<{
            prefixCls: StringConstructor;
            shape: {
                type: import('vue').PropType<"circle" | "square">;
                default: string;
            };
            size: {
                type: import('vue').PropType<import('ant-design-vue/es/avatar').AvatarSize>;
                default: () => import('ant-design-vue/es/avatar').AvatarSize;
            };
            src: StringConstructor;
            srcset: StringConstructor;
            icon: import('vue-types').VueTypeValidableDef<any>;
            alt: StringConstructor;
            gap: NumberConstructor;
            draggable: {
                type: BooleanConstructor;
                default: any;
            };
            crossOrigin: import('vue').PropType<"" | "anonymous" | "use-credentials">;
            loadError: {
                type: import('vue').PropType<() => boolean>;
            };
        }>> & {
            loadSrc?: string;
        }, Record<string, import('vue').Slot>>;
        ReusableAvatarSlotTemplate: import('@vueuse/core').ReuseTemplateComponent<Partial<import('vue').ExtractPropTypes<{
            prefixCls: StringConstructor;
            shape: {
                type: import('vue').PropType<"circle" | "square">;
                default: string;
            };
            size: {
                type: import('vue').PropType<import('ant-design-vue/es/avatar').AvatarSize>;
                default: () => import('ant-design-vue/es/avatar').AvatarSize;
            };
            src: StringConstructor;
            srcset: StringConstructor;
            icon: import('vue-types').VueTypeValidableDef<any>;
            alt: StringConstructor;
            gap: NumberConstructor;
            draggable: {
                type: BooleanConstructor;
                default: any;
            };
            crossOrigin: import('vue').PropType<"" | "anonymous" | "use-credentials">;
            loadError: {
                type: import('vue').PropType<() => boolean>;
            };
        }>> & {
            loadSrc?: string;
        }, Record<string, import('vue').Slot>>;
    };
    readonly handleImageError: (key: string) => boolean;
    readonly isLoadSuccessfully: (key: string) => boolean;
};
