import { ReactElement, ReactNode, HTMLAttributes } from 'react';
import { ButtonProps as ButtonMUIProps } from '@material-ui/core/Button';
import { ThemeButtonSize, ThemeIconSize, ThemeTextSize } from '../../theme';
import { IconType } from '../../dataDisplay';
declare type Colors = 'primary' | 'secondary' | 'error';
declare type Variations = 'bordered' | 'contained' | 'outlined';
declare type CustomButtonMuiProps = Omit<ButtonMUIProps, 'size' | 'color' | 'variant'> & {
    to?: string;
    component?: ReactNode;
};
declare type LocalProps = {
    children?: ReactNode;
    color?: Colors;
    variant?: Variations;
    size: ThemeButtonSize;
    textSize?: ThemeTextSize;
    iconType?: keyof IconType;
    iconSize?: ThemeIconSize;
};
declare type Props = LocalProps & CustomButtonMuiProps & HTMLAttributes<HTMLButtonElement>;
export declare const Button: ({ children, color, variant, size, textSize, iconType, iconSize, ...buttonMuiProps }: Props) => ReactElement;
export {};
