import React, { FC } from 'react';
import { MediaPropsType } from '../../util/externalClasses';
import { FormSizesType, IconColorType, SizeType, TextColorType } from '../../util/global-props';
import { iconMap } from '../icon/icon.library';
import './button.component.scss';
export declare type ButtonPropsType = {
    className?: string;
    children?: React.ReactNode;
    before?: React.ReactNode;
    after?: React.ReactNode;
    type?: 'button' | 'submit' | 'reset';
    icon?: keyof typeof iconMap;
    iconAfter?: boolean;
    iconColor?: IconColorType;
    iconMargin?: SizeType;
    iconSize?: number;
    align?: 'left' | 'center' | 'right';
    viewType?: 'primary' | 'primary-green' | 'primary-white' | 'secondary' | 'dark' | 'transparent-black' | 'transparent-grey' | 'transparent-white' | 'alert' | 'violet';
    size?: FormSizesType;
    color?: TextColorType;
    bold?: boolean;
    uppercase?: boolean;
    active?: boolean;
    loading?: boolean;
    fullWidth?: boolean;
    rounded?: boolean;
    disabled?: boolean;
    flex?: number | string;
    margin?: SizeType;
    style?: React.CSSProperties;
    hide?: MediaPropsType;
    disableBorderRadius?: boolean;
    squareBorderRadius?: boolean;
    data?: Record<string, string>;
    ref?: React.Ref<HTMLButtonElement>;
    onClick?: React.EventHandler<React.MouseEvent<HTMLButtonElement, PointerEvent>>;
    onFocus?: React.EventHandler<React.FocusEvent<HTMLButtonElement>>;
    onMouseLeave?: React.EventHandler<React.MouseEvent<HTMLButtonElement, PointerEvent>>;
    onMouseEnter?: React.EventHandler<React.MouseEvent<HTMLButtonElement, PointerEvent>>;
};
export declare const Button: FC<ButtonPropsType>;
