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 {};