import React, { ReactNode, DetailedHTMLProps, ButtonHTMLAttributes, AnchorHTMLAttributes } from 'react';
import { SystemProps } from "../../../lib";
declare const sizes: {
small: {
fontSize: number;
};
medium: {
fontSize: number;
lineHeight: string;
};
large: {
fontSize: number;
px: number;
lineHeight: string;
};
};
declare const variants: {
primary: {
px: number;
py: number;
bg: string;
color: string;
fontWeight: string;
fontSize: number;
lineHeight: string;
'&:hover': {
bg: string;
color: string;
opacity: number;
};
'&:active': {
bg: string;
boxShadow: string;
color: string;
};
'&:disabled': {
cursor: string;
opacity: number;
};
};
secondary: {
px: number;
py: number;
bg: string;
color: string;
fontWeight: string;
fontSize: number;
lineHeight: string;
'&:hover': {
bg: string;
color: string;
opacity: number;
};
'&:active': {
color: string;
bg: string;
boxShadow: string;
};
'&:disabled': {
cursor: string;
opacity: number;
};
};
link: {
color: string;
'&:hover, &:active': {
color: string;
opacity: number;
};
};
underline: {
color: string;
fontWeight: string;
userSelect: string;
'&::before': {
content: string;
position: string;
bottom: string;
left: string;
right: string;
height: string;
bg: string;
transition: string;
};
'&:hover, &:active': {
color: string;
opacity: number;
'&::before': {
left: number;
right: number;
};
};
};
};
declare type ButtonType = DetailedHTMLProps, HTMLButtonElement>;
declare type AnchorType = DetailedHTMLProps, HTMLAnchorElement>;
declare type CustomProps = {
isLoading?: boolean;
to?: string | undefined;
variant?: keyof typeof variants;
buttonSize?: keyof typeof sizes;
disabled?: boolean;
children: ReactNode;
} & SystemProps;
declare type ButtonProps = ({
as?: never;
} & ButtonType & CustomProps) | ({
as: 'a';
} & AnchorType & CustomProps);
export declare const Button: React.ForwardRefExoticComponent & React.RefAttributes>;
export {};