import { type ButtonHTMLAttributes, type CSSProperties, type ElementType, type ReactNode, type Ref } from 'react';
import type { PolymorphicProps } from '../../shared/polymorphic';
type ButtonVariant = 'primary' | 'secondary' | 'ghost' | 'danger' | 'success' | 'unstyled';
type ButtonSize = 'sm' | 'md' | 'lg';
type ButtonBaseOwnProps = {
variant?: ButtonVariant;
size?: ButtonSize;
pending?: boolean;
disabled?: boolean;
style?: CSSProperties;
className?: string;
asChild?: boolean;
};
type ButtonBaseProps = ButtonBaseOwnProps & Omit, keyof ButtonBaseOwnProps>;
type ButtonBaseAsChildProps = ButtonBaseOwnProps & Omit, keyof ButtonBaseOwnProps> & {
children: ReactNode;
ref?: Ref;
};
type ButtonBaseRenderProps = (ButtonBaseProps | ButtonBaseAsChildProps) & {
as?: ElementType;
ref?: Ref;
};
declare const ButtonBase: (props: ButtonBaseRenderProps) => import("react/jsx-runtime").JSX.Element;
export { ButtonBase };
export type { ButtonBaseProps, ButtonBaseAsChildProps, ButtonVariant, ButtonSize, };