import React, { ButtonHTMLAttributes, PureComponent, ReactNode } from 'react';
import { Override } from 'src/type';
declare const defaultProps: {
    styleType: string;
    size: string;
    type: string;
};
export interface ButtonProps {
    /** 按钮类型 */
    styleType?: 'primary' | 'border' | 'border-gray';
    /** 按钮尺寸 */
    size?: 'sm' | 'md' | 'lg';
    /** 形状 */
    shape?: 'circle' | 'square';
    /** 是否加载中 */
    loading?: boolean;
    /**
     * 伪装 disabled，配合 disabled 一起使用。
     *
     * 添加后 disabled 时除了 onClick 事件，其它的事件会正常触发，且生成的 button 上不会出现 disabled 属性。
     *
     * button 的 disabled 会将所有事件全部屏蔽，有时会导致一些问题，比如 tooltip 里嵌入 disabled button 时，无法获取事件导致无法正常显示。
     */
    fakeDisabled?: boolean;
    /** 图标，传入 string 时为图标类型，也可直接传入图标组件，需要图标位置等更多自定义请直接放在 children 中 */
    icon?: string | ReactNode;
    /** 设置原生的 button 上 type 属性 */
    type?: string;
    /** 展示设置为块元素 */
    block?: boolean;
    /**
     * @ignore
     * 内部使用，请勿使用，是否可选中，样式会有区别
     */
    checkAble?: boolean;
    /**
     * @ignore
     * 内部使用，请勿使用，选中状态
     */
    checked?: boolean;
    disabled?: boolean;
}
export default class Button extends PureComponent<ButtonProps & Override<ButtonHTMLAttributes<HTMLButtonElement>, ButtonProps & typeof defaultProps>> {
    static defaultProps: {
        styleType: string;
        size: string;
        type: string;
    };
    static StyleTypes: ["primary", "border", "border-gray"];
    static Sizes: ["sm", "md", "lg"];
    static Shapes: ["circle", "square"];
    renderIcon: () => {} | null | undefined;
    render(): React.JSX.Element;
}
export {};
