import * as React from 'react'; import { ClearIconProps } from '../icons/ClearIcon'; import { IconProps } from '../icons/Icon'; import './buttons.css'; import { TooltipProps } from './Tooltip'; declare type AllowedButtonAttributes = Pick, 'className' | 'disabled' | 'id' | 'style' | 'title'>; interface ButtonProps extends AllowedButtonAttributes { autoFocus?: boolean; children?: React.ReactNode; innerRef?: (node: HTMLElement | null) => void; name?: string; onClick?: () => void; preventDefault?: boolean; stopPropagation?: boolean; type?: 'button' | 'submit' | 'reset' | undefined; } export declare class Button extends React.PureComponent { handleClick: (event: React.MouseEvent) => void; render(): JSX.Element; } export declare function ButtonLink({ className, ...props }: ButtonProps): JSX.Element; export declare function SubmitButton(props: T.Omit): JSX.Element; export declare function ResetButtonLink(props: T.Omit): JSX.Element; export interface ButtonIconProps extends ButtonProps { 'aria-label'?: string; 'aria-labelledby'?: string; className?: string; color?: string; onClick?: () => void; tooltip?: React.ReactNode; tooltipProps?: Partial; } export declare function ButtonIcon(props: ButtonIconProps): JSX.Element; interface ClearButtonProps extends ButtonIconProps { className?: string; iconProps?: ClearIconProps; onClick?: () => void; } export declare function ClearButton({ color, iconProps, ...props }: ClearButtonProps): JSX.Element; interface ActionButtonProps extends ButtonIconProps { className?: string; iconProps?: IconProps; onClick?: () => void; } export declare function DeleteButton({ iconProps, ...props }: ActionButtonProps): JSX.Element; export declare function EditButton({ iconProps, ...props }: ActionButtonProps): JSX.Element; export declare function ListButton({ className, children, ...props }: ButtonProps): JSX.Element; export {};