import React, { FC, ButtonHTMLAttributes, JSXElementConstructor, AnchorHTMLAttributes, PropsWithChildren, ForwardedRef } from 'react';
/**
* All the component types allowed by the Button component.
*/
export type ButtonComponentType = 'button' | 'a' | JSXElementConstructor;
/**
* Base props of the Button component.
*/
export interface ButtonProps {
href?: string;
className?: string;
variant?: 'primary' | 'secondary' | 'success' | 'white' | 'gray' | 'error' | 'none-variant';
size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'none';
startIcon?: React.ReactElement;
endIcon?: React.ReactElement;
circular?: boolean;
Component?: C;
loading?: boolean;
rounded?: 'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | 'full';
children?: React.ReactNode;
classes?: Partial>;
fullWidth?: boolean;
center?: boolean;
active?: boolean;
ref?: ForwardedRef;
disableElevation?: boolean;
}
interface IButtonGroupProps {
className?: string;
rounded?: 'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | 'full';
}
/**
* The HTML props allowed by the Button component. These
* props depend on the used component type (C).
*/
export type ButtonHTMLType = C extends 'a' ? AnchorHTMLAttributes : ButtonHTMLAttributes;
type ButtonFC = FC & ButtonProps>;
type ButtonType = (...args: Parameters>) => ReturnType>;
declare const ButtonGroup: FC>;
export { ButtonGroup };
declare const _default: ButtonType;
export default _default;
//# sourceMappingURL=index.d.ts.map