import * as react from 'react';
import { ReactNode } from 'react';
import { ButtonUnstyledProps } from '@mui/base/ButtonUnstyled';
import { O as OverridableStringUnion } from './types-5e5b88b2.js';

interface ButtonVariantOverrides {
}
interface ButtonSizeOverrides {
}
type ButtonVariant = "primary" | "secondary" | "ghost" | "stroke" | "destructive" | "destructiveGhost";
type ButtonSize = "large" | "medium" | "small";
interface ButtonProps extends ButtonUnstyledProps {
    asChild?: boolean;
    endIcon?: ReactNode;
    fullWidth?: boolean;
    noWrap?: boolean;
    size?: OverridableStringUnion<ButtonSize, ButtonSizeOverrides>;
    startIcon?: ReactNode;
    variant?: OverridableStringUnion<ButtonVariant, ButtonVariantOverrides>;
}
interface ButtonClasses {
    active: string;
    destructive: string;
    destructiveGhost: string;
    disabled: string;
    endIcon: string;
    focusVisible: string;
    fullWidth: string;
    ghost: string;
    iconOnly: string;
    iconSizeLarge: string;
    iconSizeMedium: string;
    iconSizeSmall: string;
    noWrap: string;
    primary: string;
    root: string;
    secondary: string;
    sizeLarge: string;
    sizeMedium: string;
    sizeSmall: string;
    startIcon: string;
    stroke: string;
}

declare const buttonClasses: ButtonClasses;

declare const Button: react.ForwardRefExoticComponent<Omit<ButtonProps, "ref"> & react.RefAttributes<HTMLButtonElement>>;

export { Button as B, ButtonVariantOverrides as a, buttonClasses as b, ButtonSizeOverrides as c, ButtonVariant as d, ButtonSize as e, ButtonProps as f, ButtonClasses as g };
