import { ExtractPropTypes, PropType, DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
import { ScreenSizeMap } from '../_util/responsiveObserve';
import { CustomSlotsType, VueNode } from '../_util/type';
import { VueTypeValidableDef } from 'vue-types';
export type AvatarSize = 'large' | 'small' | 'default' | number | ScreenSizeMap;
export declare const avatarProps: () => {
    prefixCls: StringConstructor;
    shape: {
        type: PropType<"circle" | "square">;
        default: string;
    };
    size: {
        type: PropType<AvatarSize>;
        default: () => AvatarSize;
    };
    src: StringConstructor;
    /** Srcset of image avatar */
    srcset: StringConstructor;
    icon: VueTypeValidableDef<any>;
    alt: StringConstructor;
    gap: NumberConstructor;
    draggable: {
        type: BooleanConstructor;
        default: undefined;
    };
    crossOrigin: PropType<"" | "anonymous" | "use-credentials">;
    loadError: {
        type: PropType<() => boolean>;
    };
};
export type AvatarProps = Partial<ExtractPropTypes<ReturnType<typeof avatarProps>>>;
declare const Avatar: DefineComponent<ExtractPropTypes<{
    prefixCls: StringConstructor;
    shape: {
        type: PropType<"circle" | "square">;
        default: string;
    };
    size: {
        type: PropType<AvatarSize>;
        default: () => AvatarSize;
    };
    src: StringConstructor;
    /** Srcset of image avatar */
    srcset: StringConstructor;
    icon: VueTypeValidableDef<any>;
    alt: StringConstructor;
    gap: NumberConstructor;
    draggable: {
        type: BooleanConstructor;
        default: undefined;
    };
    crossOrigin: PropType<"" | "anonymous" | "use-credentials">;
    loadError: {
        type: PropType<() => boolean>;
    };
}>, () => VueNode, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<ExtractPropTypes<{
    prefixCls: StringConstructor;
    shape: {
        type: PropType<"circle" | "square">;
        default: string;
    };
    size: {
        type: PropType<AvatarSize>;
        default: () => AvatarSize;
    };
    src: StringConstructor;
    /** Srcset of image avatar */
    srcset: StringConstructor;
    icon: VueTypeValidableDef<any>;
    alt: StringConstructor;
    gap: NumberConstructor;
    draggable: {
        type: BooleanConstructor;
        default: undefined;
    };
    crossOrigin: PropType<"" | "anonymous" | "use-credentials">;
    loadError: {
        type: PropType<() => boolean>;
    };
}>> & Readonly<{}>, {
    size: AvatarSize;
    draggable: boolean;
    shape: "circle" | "square";
}, CustomSlotsType<{
    icon: any;
    default: any;
}>, {}, {}, string, ComponentProvideOptions, true, {}, any>;
export default Avatar;
