import React from 'react';
import type { JSX } from 'react';
export type ButtonSize = 'small' | 'medium' | 'large' | string;
export type ButtonVariant = 'primary' | 'secondary' | 'outlined' | 'text' | 'link' | 'ghost' | string;
type ButtonTone = 'default' | 'danger';
export interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
    children?: React.ReactNode;
    disabled?: boolean;
    blinking?: boolean;
    fullWidth?: boolean;
    variant?: ButtonVariant;
    tone?: ButtonTone;
    size?: ButtonSize;
    extraClass?: string;
    to?: string;
    external?: boolean;
    icon?: JSX.Element;
    iconPosition?: 'left' | 'right';
    title?: string;
    tabIndex?: number;
    onClick?: (e?: any) => void;
    ref?: React.Ref<HTMLButtonElement>;
}
export declare function generateClassName({ variant, tone, size, extraClass, }: ButtonProps): string;
export declare const Button: import("styled-components").StyledComponent<React.FC<ButtonProps>, any, ButtonProps, never>;
export {};
