import type { ButtonInstance } from 'element-plus';
declare var __VLS_12: {}, __VLS_15: {}, __VLS_18: {};
type __VLS_Slots = {} & {
    loading?: (props: typeof __VLS_12) => any;
} & {
    default?: (props: typeof __VLS_15) => any;
} & {
    icon?: (props: typeof __VLS_18) => any;
};
declare const _default: __VLS_WithSlots<import("vue").DefineComponent<{
    loading: {
        type: BooleanConstructor;
        default: undefined;
    };
    eventName: {
        type: StringConstructor;
        default: undefined;
    };
    size: {
        readonly type: import("vue").PropType<"" | "small" | "default" | "large">;
        readonly required: false;
        readonly validator: ((val: unknown) => boolean) | undefined;
        __epPropKey: true;
    };
    disabled: BooleanConstructor;
    type: {
        readonly type: import("vue").PropType<"" | "default" | "primary" | "success" | "warning" | "info" | "text" | "danger">;
        readonly required: false;
        readonly validator: ((val: unknown) => boolean) | undefined;
        __epPropKey: true;
    } & {
        readonly default: "";
    };
    icon: {
        readonly type: import("vue").PropType<string | import("vue").Component>;
        readonly required: false;
        readonly validator: ((val: unknown) => boolean) | undefined;
        __epPropKey: true;
    };
    nativeType: {
        readonly type: import("vue").PropType<"button" | "reset" | "submit">;
        readonly required: false;
        readonly validator: ((val: unknown) => boolean) | undefined;
        __epPropKey: true;
    } & {
        readonly default: "button";
    };
    loadingIcon: {
        readonly type: import("vue").PropType<string | import("vue").Component>;
        readonly required: false;
        readonly validator: ((val: unknown) => boolean) | undefined;
        __epPropKey: true;
    } & {
        readonly default: () => any;
    };
    plain: {
        readonly type: import("vue").PropType<boolean>;
        readonly required: false;
        readonly validator: ((val: unknown) => boolean) | undefined;
        __epPropKey: true;
    } & {
        readonly default: undefined;
    };
    text: {
        readonly type: import("vue").PropType<boolean>;
        readonly required: false;
        readonly validator: ((val: unknown) => boolean) | undefined;
        __epPropKey: true;
    } & {
        readonly default: undefined;
    };
    link: BooleanConstructor;
    bg: BooleanConstructor;
    autofocus: BooleanConstructor;
    round: {
        readonly type: import("vue").PropType<boolean>;
        readonly required: false;
        readonly validator: ((val: unknown) => boolean) | undefined;
        __epPropKey: true;
    } & {
        readonly default: undefined;
    };
    circle: BooleanConstructor;
    color: StringConstructor;
    dark: BooleanConstructor;
    autoInsertSpace: {
        readonly type: import("vue").PropType<boolean>;
        readonly required: false;
        readonly validator: ((val: unknown) => boolean) | undefined;
        __epPropKey: true;
    } & {
        readonly default: undefined;
    };
    tag: {
        readonly type: import("vue").PropType<string | import("vue").Component>;
        readonly required: false;
        readonly validator: ((val: unknown) => boolean) | undefined;
        __epPropKey: true;
    } & {
        readonly default: "button";
    };
}, {
    elRef: import("vue").Ref<ButtonInstance | undefined>;
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
    loading: {
        type: BooleanConstructor;
        default: undefined;
    };
    eventName: {
        type: StringConstructor;
        default: undefined;
    };
    size: {
        readonly type: import("vue").PropType<"" | "small" | "default" | "large">;
        readonly required: false;
        readonly validator: ((val: unknown) => boolean) | undefined;
        __epPropKey: true;
    };
    disabled: BooleanConstructor;
    type: {
        readonly type: import("vue").PropType<"" | "default" | "primary" | "success" | "warning" | "info" | "text" | "danger">;
        readonly required: false;
        readonly validator: ((val: unknown) => boolean) | undefined;
        __epPropKey: true;
    } & {
        readonly default: "";
    };
    icon: {
        readonly type: import("vue").PropType<string | import("vue").Component>;
        readonly required: false;
        readonly validator: ((val: unknown) => boolean) | undefined;
        __epPropKey: true;
    };
    nativeType: {
        readonly type: import("vue").PropType<"button" | "reset" | "submit">;
        readonly required: false;
        readonly validator: ((val: unknown) => boolean) | undefined;
        __epPropKey: true;
    } & {
        readonly default: "button";
    };
    loadingIcon: {
        readonly type: import("vue").PropType<string | import("vue").Component>;
        readonly required: false;
        readonly validator: ((val: unknown) => boolean) | undefined;
        __epPropKey: true;
    } & {
        readonly default: () => any;
    };
    plain: {
        readonly type: import("vue").PropType<boolean>;
        readonly required: false;
        readonly validator: ((val: unknown) => boolean) | undefined;
        __epPropKey: true;
    } & {
        readonly default: undefined;
    };
    text: {
        readonly type: import("vue").PropType<boolean>;
        readonly required: false;
        readonly validator: ((val: unknown) => boolean) | undefined;
        __epPropKey: true;
    } & {
        readonly default: undefined;
    };
    link: BooleanConstructor;
    bg: BooleanConstructor;
    autofocus: BooleanConstructor;
    round: {
        readonly type: import("vue").PropType<boolean>;
        readonly required: false;
        readonly validator: ((val: unknown) => boolean) | undefined;
        __epPropKey: true;
    } & {
        readonly default: undefined;
    };
    circle: BooleanConstructor;
    color: StringConstructor;
    dark: BooleanConstructor;
    autoInsertSpace: {
        readonly type: import("vue").PropType<boolean>;
        readonly required: false;
        readonly validator: ((val: unknown) => boolean) | undefined;
        __epPropKey: true;
    } & {
        readonly default: undefined;
    };
    tag: {
        readonly type: import("vue").PropType<string | import("vue").Component>;
        readonly required: false;
        readonly validator: ((val: unknown) => boolean) | undefined;
        __epPropKey: true;
    } & {
        readonly default: "button";
    };
}>>, {
    link: boolean;
    type: "" | "default" | "primary" | "success" | "warning" | "info" | "text" | "danger";
    plain: boolean;
    text: boolean;
    round: boolean;
    dark: boolean;
    circle: boolean;
    disabled: boolean;
    autofocus: boolean;
    loading: boolean;
    eventName: string;
    nativeType: "button" | "reset" | "submit";
    loadingIcon: string | import("vue").Component;
    bg: boolean;
    autoInsertSpace: boolean;
    tag: string | import("vue").Component;
}, {}>, __VLS_Slots>;
export default _default;
type __VLS_WithSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};
