import { IconName } from '@fortawesome/fontawesome-svg-core'; import React, { PureComponent } from 'react'; import { PickDefaultProps } from '../utils-typescript'; import { ButtonHoverStyle, ButtonSize, ButtonStyle, HTMLButtonElementAttributesExceptStyle } from '../Button/button'; import Icon from '../Icon'; interface IconButtonTheme { readonly 'iconButton': string; readonly 'iconButton--disabled': string; } export interface IconButtonProps extends HTMLButtonElementAttributesExceptStyle { /** * The icon key which gets passed to the Icon Component. */ readonly icon: string | IconName; /** * Additional props passed to the icon */ readonly iconProps?: React.ComponentProps; /** * An optional `className` to attach to the wrapper. */ readonly className?: string; /** * Defines the size of the icon button. */ readonly size?: ButtonSize; /** * An optional css theme to be injected. */ readonly theme?: IconButtonTheme; /** * Optional disabled flag */ readonly disabled?: boolean; /** * This prop controls the visual active state of the `Button`. */ readonly isActive?: boolean; readonly style?: ButtonStyle; readonly hoverStyle?: ButtonHoverStyle; } declare type DefaultProps = PickDefaultProps; export declare const defaultProps: DefaultProps; declare class IconButton extends PureComponent { static readonly defaultProps: Readonly>>; render(): JSX.Element; } export default IconButton;