import type { Component, ExtractPropTypes, PropType } from 'vue';
export declare const buttonIconPosition: readonly ["left", "right"];
export declare type ButtonIconPosition = typeof buttonIconPosition[number];
export declare const buttonNativeTypes: readonly ["button", "submit", "reset"];
export declare type ButtonNativeTypes = typeof buttonNativeTypes[number];
export declare const buttonProps: {
    /**
     * @description button type
     */
    type: {
        type: PropType<"success" | "info" | "warning" | "danger" | "link" | "primary">;
        validator: (val: string) => boolean;
    };
    /**
     * @description button size
     */
    size: {
        type: PropType<"xxxs" | "xxs" | "xs" | "sm" | "md" | "lg" | "xl" | "xxl" | "xxxl">;
        validator: (val: string) => boolean;
    };
    iconPosition: {
        type: PropType<"left" | "right">;
        default: string;
    };
    /**
     * @description native button type
     */
    nativeType: {
        type: PropType<"button" | "reset" | "submit">;
        default: string;
        validator: (val: ButtonNativeTypes) => boolean;
    };
    /**
     * @description determine whether it's loading
     */
    loading: BooleanConstructor;
    /**
     * @description disable the button
     */
    disabled: BooleanConstructor;
    /**
     * @description native button autofocus
     */
    autofocus: BooleanConstructor;
    /**
     * @description determine whether it's a round button
     */
    round: BooleanConstructor;
    equal: BooleanConstructor;
    effect: StringConstructor;
    noFill: BooleanConstructor;
    outline: BooleanConstructor;
    block: BooleanConstructor;
    rational: BooleanConstructor;
    dashed: BooleanConstructor;
    hover: (BooleanConstructor | StringConstructor)[];
    /**
     * @description custom element tag
     * 暂时未实现，与Button组件名字冲突，导致递归渲染Button组件
    */
    tag: {
        type: PropType<string | Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions>>;
        default: string;
    };
};
export declare const buttonEmits: {
    click: (evt: MouseEvent) => boolean;
};
export declare type ButtonProps = ExtractPropTypes<typeof buttonProps>;
export declare type ButtonEmits = typeof buttonEmits;
