import * as React from 'react';
import { BoxProps } from '../box';
export declare type ButtonSizes = 'sm' | 'md' | 'lg';
export declare type ButtonColorVariants = string;
export declare type ButtonVariants = 'outline' | 'unstyled' | 'link' | 'solid';
export declare type ButtonModes = 'primary' | 'secondary' | 'tertiary';
export declare type CustomStyles = {
    [key in ButtonModes]: BoxProps;
};
interface ButtonPropsBase {
    size?: ButtonSizes;
    isLoading?: boolean;
    variantColor?: ButtonColorVariants;
    variant?: ButtonVariants;
    mode?: ButtonModes;
    customStyles?: CustomStyles;
    isActive?: boolean;
    isDisabled?: boolean;
    loadingText?: string;
    isFullWidth?: boolean;
    type?: 'button' | 'reset' | 'submit';
    children: React.ReactNode;
}
export interface ButtonStyles {
    variant: ButtonVariants;
    mode: ButtonModes;
    size: ButtonSizes;
    customStyles?: CustomStyles;
}
export declare type ButtonProps = ButtonPropsBase & BoxProps & React.RefAttributes<HTMLButtonElement>;
export {};
