import React, { ButtonHTMLAttributes } from 'react'; import { ButtonColor } from '../base'; import { IGlyph } from '../icon'; /** @deprecated use secondary instead */ declare type LegacyButtonType = 'outline'; export interface IButtonProps extends Pick, 'id' | 'style' | 'className' | 'tabIndex' | 'children' | 'onFocus' | 'onBlur' | 'onMouseEnter' | 'onMouseLeave' | 'onDoubleClick' | 'onKeyDown'> { /** Type of button, 'outline' is deprecated, it equals to secondary */ buttonType?: 'primary' | 'secondary' | 'text' | LegacyButtonType; /** Color theme * default to 'blue', secondary default to 'black' * primary/secondary button only support 'red','blue','black', text buttons support all */ color?: ButtonColor; /** * forcing mask to a specific color. * This is a very special case used in delete, where the text color is grey, but hovering effect is red * so the color is grey, but maskColor is red */ maskColor?: ButtonColor; /** mark button as disabled */ isDisabled?: boolean; /** Optional icon, could be placed in leading or trailing position */ icon?: IGlyph; /** Icon is default to place in leading position */ iconPosition?: 'leading' | 'trailing'; /** Size variation, default is medium */ itemSize?: 'small' | 'medium' | 'large'; /** loading state on button */ isLoading?: boolean; /** An extra button in trailing position, this can only be an icon, and it is different from trailing icon. * Text button can not have extra button * */ groupButton?: { icon: IGlyph; onClick?: React.ButtonHTMLAttributes['onClick']; }; /** @deprecated use isLoading */ isLoadingClick?: boolean; /** @deprecated use isDisabled */ disabled?: ButtonHTMLAttributes['disabled']; /** @deprecated, use ref instead */ passedRef?: any; /** @deprecated, use color instead */ colorTheme?: ButtonColor; onClick?: React.ButtonHTMLAttributes['onClick']; } export declare const Button: React.ForwardRefExoticComponent>; export {};