import React from 'react'; import { PickDefaultProps } from '../utils-typescript'; export declare type ButtonStyle = 'clean' | 'brand' | 'lighter' | 'neutral' | 'transparent' | 'success' | 'warn' | 'error'; export declare type ButtonHoverStyle = 'clean' | 'brand' | 'darken' | 'success' | 'warn' | 'error'; export declare type ButtonSize = 'small' | 'regular'; interface ButtonTheme { readonly 'btn': string; readonly 'btn--clean': string; readonly 'btn--lighter': string; readonly 'btn--transparent': string; readonly 'btn--brand': string; readonly 'btn--brandActive': string; readonly 'btn--brandHover': string; readonly 'btn--cleanHover': string; readonly 'btn--isPressed': string; readonly 'btn--darkenHover': string; } export declare type HTMLButtonElementAttributesExceptStyle = Omit, 'style'>; export interface ButtonProps extends HTMLButtonElementAttributesExceptStyle { /** * This prop controls the visual pressed state of the `Button`. */ readonly isPressed?: boolean; /** * This prop controls the visual focused state of the `Button`. * When `true`, the node gets focused via the DOM API. */ readonly isFocused?: boolean; /** * This prop controls the visual and interactive disabled state of the `Button`. * When `true`, the node gets rendered with a truthy `disabled` prop. */ readonly disabled?: boolean; /** * This prop controls the visual active state of the `Button`. */ readonly isActive?: boolean; /** * The `kind` prop defines the regular visual style of the `Button`. */ readonly style?: ButtonStyle; /** * As the `style` prop, this prop controls the visual :hover style of the `Button`. */ readonly hoverStyle?: ButtonHoverStyle; /** * Defines the size of the button. */ readonly size?: ButtonSize; /** * An optional `className` to attach to the wrapper. */ readonly className?: string; /** * The contents to be rendered within the `Bar`. */ readonly children: React.ReactNode; /** * An optional css theme to be injected. */ readonly theme?: ButtonTheme; /** * An interal prop for testing purposes, do not set this prop manually. */ readonly _refHandler?: (isFocused: boolean) => (node: any) => void; } declare type DefaultProps = PickDefaultProps; export declare const defaultProps: DefaultProps; declare class Button extends React.PureComponent { static readonly defaultProps: Readonly>>; private getDisabled; render(): JSX.Element; } export default Button;