import * as _emotion_styled from '@emotion/styled';
import * as react from 'react';
import * as _emotion_react_jsx_runtime from '@emotion/react/jsx-runtime';
import { Theme } from '@emotion/react';
import { RouteParams } from '../router.js';
import 'react-router-dom';

declare const ButtonSizes: readonly ["sm", "md", "lg"];
type ButtonSize = (typeof ButtonSizes)[number];
type IconSide = "left" | "right";
type ButtonProps<RoutesType extends string> = {
    backgroundColor?: string;
    color?: string;
    hoverColor?: string;
    text?: string;
    disabled?: boolean | undefined;
    to?: RoutesType | undefined;
    hash?: string;
    href?: string;
    toParams?: RouteParams | undefined;
    primary?: boolean | undefined;
    ghost?: boolean | undefined;
    size?: ButtonSize;
    icon?: string;
    iconSide?: IconSide;
    loading?: boolean | undefined;
    onClick?: (() => void) | undefined;
    mt?: number;
    ml?: number;
    fullWidth?: boolean | undefined;
    type?: "button" | "submit";
    blue?: boolean;
    newTab?: boolean;
    tooltipText?: string;
    zIndex?: number;
};
declare function Button<RoutesType extends string>({ backgroundColor, color, hoverColor, primary, ghost, text, to, hash, href, toParams, onClick, icon, iconSide, loading, fullWidth, disabled, size, mt, ml, type, blue, newTab, zIndex, tooltipText, }: ButtonProps<RoutesType>): _emotion_react_jsx_runtime.JSX.Element;
type StyledButtonProps = {
    backgroundColor?: string | undefined;
    color?: string | undefined;
    hoverColor?: string | undefined;
    primary: boolean;
    ghost: boolean;
    size: ButtonSize;
    disabled: boolean;
    fullWidth: boolean;
    isLoading: boolean;
    blue: boolean;
    iconWidth: number;
    newTab: boolean;
    text?: string | undefined;
    zIndex?: number | undefined;
    iconSide?: IconSide | undefined;
    isRound: boolean;
};
declare const StyledButton: _emotion_styled.StyledComponent<{
    theme?: Theme;
    as?: react.ElementType<any>;
} & react.ClassAttributes<HTMLButtonElement> & react.ButtonHTMLAttributes<HTMLButtonElement> & {
    theme?: Theme;
} & StyledButtonProps, {}, {}>;
declare const ButtonSelector: (prepend?: string, append?: string) => string;

export { Button, ButtonProps, ButtonSelector, StyledButton };
