import type { Plugin } from 'vue-demi';
import ButtonGroup from './button-group';
import type { ButtonProps, ButtonShape, ButtonType } from './buttonTypes';
import type { ButtonGroupProps } from './button-group';
import type { SizeType as ButtonSize } from '../config-provider';
export type { ButtonProps, ButtonShape, ButtonType, ButtonGroupProps, ButtonSize };
export { ButtonGroup };
declare const _default: {
    new (...args: any[]): import("vue-demi").CreateComponentPublicInstance<Readonly<import("vue-demi").ExtractPropTypes<{
        prefixCls: StringConstructor;
        type: import("vue-demi").PropType<ButtonType>;
        htmlType: {
            type: import("vue-demi").PropType<import("./buttonTypes").ButtonHTMLType>;
            default: string;
        };
        shape: {
            type: import("vue-demi").PropType<ButtonShape>;
        };
        size: {
            type: import("vue-demi").PropType<ButtonSize>;
        };
        loading: {
            type: import("vue-demi").PropType<boolean | {
                delay?: number;
            }>;
            default: () => boolean | {
                delay?: number;
            };
        };
        disabled: {
            type: BooleanConstructor;
            default: any;
        };
        ghost: {
            type: BooleanConstructor;
            default: any;
        };
        block: {
            type: BooleanConstructor;
            default: any;
        };
        danger: {
            type: BooleanConstructor;
            default: any;
        };
        icon: import("vue-types").VueTypeValidableDef<any>;
        href: StringConstructor;
        target: StringConstructor;
        title: StringConstructor;
        onClick: {
            type: import("vue-demi").PropType<import("../_util/EventInterface").MouseEventHandler | import("../_util/EventInterface").MouseEventHandler[]>;
        };
        onMousedown: {
            type: import("vue-demi").PropType<import("../_util/EventInterface").MouseEventHandler | import("../_util/EventInterface").MouseEventHandler[]>;
        };
    }>>, () => import("../_util/type").VueNode, unknown, {}, {}, import("vue-demi").ComponentOptionsMixin, import("vue-demi").ComponentOptionsMixin, {}, import("vue-demi").VNodeProps & import("vue-demi").AllowedComponentProps & import("vue-demi").ComponentCustomProps & Readonly<import("vue-demi").ExtractPropTypes<{
        prefixCls: StringConstructor;
        type: import("vue-demi").PropType<ButtonType>;
        htmlType: {
            type: import("vue-demi").PropType<import("./buttonTypes").ButtonHTMLType>;
            default: string;
        };
        shape: {
            type: import("vue-demi").PropType<ButtonShape>;
        };
        size: {
            type: import("vue-demi").PropType<ButtonSize>;
        };
        loading: {
            type: import("vue-demi").PropType<boolean | {
                delay?: number;
            }>;
            default: () => boolean | {
                delay?: number;
            };
        };
        disabled: {
            type: BooleanConstructor;
            default: any;
        };
        ghost: {
            type: BooleanConstructor;
            default: any;
        };
        block: {
            type: BooleanConstructor;
            default: any;
        };
        danger: {
            type: BooleanConstructor;
            default: any;
        };
        icon: import("vue-types").VueTypeValidableDef<any>;
        href: StringConstructor;
        target: StringConstructor;
        title: StringConstructor;
        onClick: {
            type: import("vue-demi").PropType<import("../_util/EventInterface").MouseEventHandler | import("../_util/EventInterface").MouseEventHandler[]>;
        };
        onMousedown: {
            type: import("vue-demi").PropType<import("../_util/EventInterface").MouseEventHandler | import("../_util/EventInterface").MouseEventHandler[]>;
        };
    }>>, {
        block: boolean;
        disabled: boolean;
        danger: boolean;
        ghost: boolean;
        htmlType: import("./buttonTypes").ButtonHTMLType;
        loading: boolean | {
            delay?: number;
        };
    }, true, {}, import("../_util/type").CustomSlotsType<{
        icon: any;
        default: any;
    }>, {
        P: {};
        B: {};
        D: {};
        C: {};
        M: {};
        Defaults: {};
    }, Readonly<import("vue-demi").ExtractPropTypes<{
        prefixCls: StringConstructor;
        type: import("vue-demi").PropType<ButtonType>;
        htmlType: {
            type: import("vue-demi").PropType<import("./buttonTypes").ButtonHTMLType>;
            default: string;
        };
        shape: {
            type: import("vue-demi").PropType<ButtonShape>;
        };
        size: {
            type: import("vue-demi").PropType<ButtonSize>;
        };
        loading: {
            type: import("vue-demi").PropType<boolean | {
                delay?: number;
            }>;
            default: () => boolean | {
                delay?: number;
            };
        };
        disabled: {
            type: BooleanConstructor;
            default: any;
        };
        ghost: {
            type: BooleanConstructor;
            default: any;
        };
        block: {
            type: BooleanConstructor;
            default: any;
        };
        danger: {
            type: BooleanConstructor;
            default: any;
        };
        icon: import("vue-types").VueTypeValidableDef<any>;
        href: StringConstructor;
        target: StringConstructor;
        title: StringConstructor;
        onClick: {
            type: import("vue-demi").PropType<import("../_util/EventInterface").MouseEventHandler | import("../_util/EventInterface").MouseEventHandler[]>;
        };
        onMousedown: {
            type: import("vue-demi").PropType<import("../_util/EventInterface").MouseEventHandler | import("../_util/EventInterface").MouseEventHandler[]>;
        };
    }>>, () => import("../_util/type").VueNode, {}, {}, {}, {
        block: boolean;
        disabled: boolean;
        danger: boolean;
        ghost: boolean;
        htmlType: import("./buttonTypes").ButtonHTMLType;
        loading: boolean | {
            delay?: number;
        };
    }>;
    __isFragment?: never;
    __isTeleport?: never;
    __isSuspense?: never;
} & import("vue-demi").ComponentOptionsBase<Readonly<import("vue-demi").ExtractPropTypes<{
    prefixCls: StringConstructor;
    type: import("vue-demi").PropType<ButtonType>;
    htmlType: {
        type: import("vue-demi").PropType<import("./buttonTypes").ButtonHTMLType>;
        default: string;
    };
    shape: {
        type: import("vue-demi").PropType<ButtonShape>;
    };
    size: {
        type: import("vue-demi").PropType<ButtonSize>;
    };
    loading: {
        type: import("vue-demi").PropType<boolean | {
            delay?: number;
        }>;
        default: () => boolean | {
            delay?: number;
        };
    };
    disabled: {
        type: BooleanConstructor;
        default: any;
    };
    ghost: {
        type: BooleanConstructor;
        default: any;
    };
    block: {
        type: BooleanConstructor;
        default: any;
    };
    danger: {
        type: BooleanConstructor;
        default: any;
    };
    icon: import("vue-types").VueTypeValidableDef<any>;
    href: StringConstructor;
    target: StringConstructor;
    title: StringConstructor;
    onClick: {
        type: import("vue-demi").PropType<import("../_util/EventInterface").MouseEventHandler | import("../_util/EventInterface").MouseEventHandler[]>;
    };
    onMousedown: {
        type: import("vue-demi").PropType<import("../_util/EventInterface").MouseEventHandler | import("../_util/EventInterface").MouseEventHandler[]>;
    };
}>>, () => import("../_util/type").VueNode, unknown, {}, {}, import("vue-demi").ComponentOptionsMixin, import("vue-demi").ComponentOptionsMixin, {}, string, {
    block: boolean;
    disabled: boolean;
    danger: boolean;
    ghost: boolean;
    htmlType: import("./buttonTypes").ButtonHTMLType;
    loading: boolean | {
        delay?: number;
    };
}, {}, string, import("../_util/type").CustomSlotsType<{
    icon: any;
    default: any;
}>> & import("vue-demi").VNodeProps & import("vue-demi").AllowedComponentProps & import("vue-demi").ComponentCustomProps & Plugin<any[]> & {
    readonly Group: typeof ButtonGroup;
};
export default _default;
