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 {};