/// <reference types="react" />
import { SmartOpenTypeProps, SmartBaseExternalClassName, SmartBaseLoadingExternalClassName, SmartComponent, SmartEventHandler, SmartTouchEvent } from '../base';
export interface SmartButtonProps extends SmartOpenTypeProps {
    /** 标识符 */
    id?: string;
    /**
     * 按钮类型
     *
     * @default 'default'
     */
    type?: 'default' | 'primary' | 'info' | 'warning' | 'danger';
    /**
     * 按钮尺寸
     *
     * @default 'normal'
     */
    size?: 'normal' | 'large' | 'small' | 'mini';
    /**
     * 按钮颜色，支持传入`linearGradient`渐变色
     */
    color?: string;
    /**
     * 左侧图标名称或图片链接
     *
     * 可选值见`Icon`组件
     */
    icon?: string;
    /**
     * 右侧图标名称或图片链接
     *
     * 可选值见`Icon`组件
     */
    rightIcon?: string;
    /**
     * 图标类名前缀，同`Icon`组件的`classPrefix`属性
     * @default 'smart-icon'
     */
    classPrefix?: string;
    /**
     * 是否为朴素按钮
     *
     * @default false
     */
    plain?: boolean;
    /**
     * 是否为块级元素
     *
     * @default false
     */
    block?: boolean;
    /**
     * 是否为圆形按钮
     *
     * @default false
     */
    round?: boolean;
    /**
     * 是否为方形按钮
     *
     * @default false
     */
    square?: boolean;
    /**
     * 是否禁用按钮
     *
     * @default false
     */
    disabled?: boolean;
    /**
     * 是否使用`0.5px`边框
     *
     * @default false
     */
    hairline?: boolean;
    /**
     * 是否显示为加载状态
     *
     * @default false
     */
    loading?: boolean;
    /**
     * 加载状态提示文字
     */
    loadingText?: string;
    /**
     * 加载状态图标类型
     *
     * @default 'circular'
     */
    loadingType?: 'spinner' | 'circular';
    /**
     * 加载图标大小
     *
     * @default 20px
     */
    loadingSize?: string;
    /**
     * 自定义样式
     */
    customStyle?: React.CSSProperties;
}
export interface SmartButtonEvents {
    /**
     * 点击按钮，且按钮状态不为加载或禁用时触发
     */
    onClick?: SmartEventHandler<SmartTouchEvent>;
}
export interface SmartButtonExternalClassName extends SmartBaseExternalClassName, SmartBaseLoadingExternalClassName {
}
export type SmartButton = SmartComponent<SmartButtonProps, SmartButtonEvents, SmartButtonExternalClassName>;
