import type { ExtractPropTypes, PropType } from 'vue';
import type { ButtonShape } from 'ant-design-vue/lib/button';
export declare const buttonProps: {
    prefixCls: import("vue-types").VueTypeValidableDef<string> & {
        default: string;
    };
    type: import("vue-types").VueTypeDef<"default" | "link" | "text" | "primary" | "ghost" | "dashed">;
    htmlType: import("vue-types").VueTypeDef<"reset" | "submit" | "button"> & {
        default: "reset" | "submit" | "button";
    };
    shape: {
        type: PropType<ButtonShape>;
    };
    size: {
        type: PropType<"small" | "middle" | "large" | undefined>;
    };
    loading: {
        type: PropType<boolean | {
            delay?: number | undefined;
        }>;
        default: () => boolean | {
            delay?: number;
        };
    };
    ghost: import("vue-types").VueTypeValidableDef<boolean>;
    block: import("vue-types").VueTypeValidableDef<boolean>;
    danger: import("vue-types").VueTypeValidableDef<boolean>;
    icon: import("vue-types").VueTypeValidableDef<import("tav-ui/es/utils/propTypes").VueNode>;
    href: import("vue-types").VueTypeValidableDef<string> & {
        default: string;
    };
    target: import("vue-types").VueTypeValidableDef<string> & {
        default: string;
    };
    title: import("vue-types").VueTypeValidableDef<string> & {
        default: string;
    };
    color: {
        type: StringConstructor;
        validator: (v: any) => boolean;
    };
    disabled: {
        type: BooleanConstructor;
    };
    /**
     * Text before icon.
     */
    preIcon: {
        type: StringConstructor;
    };
    preIconColor: {
        type: StringConstructor;
    };
    /**
     * Text after icon.
     */
    postIcon: {
        type: StringConstructor;
    };
    postIconColor: {
        type: StringConstructor;
    };
    /**
     * preIcon and postIcon icon size.
     * @default: 14
     */
    iconSize: {
        type: NumberConstructor;
        default: number;
    };
    onClick: {
        type: PropType<(...args: any[]) => any>;
        default: null;
    };
    permission: {
        type: StringConstructor;
    };
    permissionCode: {
        type: NumberConstructor;
    };
    usePermission: {
        type: PropType<{
            code: string;
            ref: any;
            row?: any;
        }>;
    };
    ifShow: {
        type: BooleanConstructor;
        default: boolean;
    };
};
export declare type ButtonProps = Partial<ExtractPropTypes<typeof buttonProps>>;
