///
import { type IconProps } from '../icon/index.js';
import { LinkRouter, mpcTheme as mpcThemeType } from '@tmpc/types';
type themeType = 'primary' | 'white' | 'filter' | 'white-1' | 'secondary' | 'secondary-primary' | 'secondary-accent' | 'secondary-third' | 'accent' | 'third' | 'icon' | 'entity' | 'nav-link' | 'nav-link-active' | 'dropdown-item' | 'drawer-link' | 'drawer-link-active' | 'drawer-link-child' | 'drawer-link-child-active';
type ButtonType = 'default' | 'toggle';
type Size = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'none';
export interface ButtonProps {
children?: React.ReactElement | string | null;
theme?: themeType;
/** The button's size. Not applicable nav-link & filter themes */
size?: Size;
/** MP co theme for all states */
mpcTheme?: mpcThemeType;
/** When toggle is activ the active/inactive states will be automatically set based on the current `mpcTheme` */
buttonType?: ButtonType;
activeTheme?: themeType;
/** JSX element icon */
icon?: React.ElementType;
iconType?: IconProps['type'];
iconName?: IconProps['name'];
iconLibrary?: IconProps['library'];
/** JSX suffix element icon */
iconSuffix?: React.ElementType;
activeIcon?: React.ElementType;
/** Disables the shadow */
noShadow?: boolean;
/** Disables the button */
disabled?: boolean;
/** When present, clicking the button will route to this string */
href?: string;
/** When present with an href, clicking the button will route to this string in a new tab */
external?: boolean;
/** When theme = filter, apply the open styles */
filterOpen?: boolean;
/** When theme = filter, apply the active styles */
filterActive?: boolean;
active?: boolean;
activeChildren?: React.ReactElement | string;
router?: LinkRouter;
type?: React.ButtonHTMLAttributes['type'];
onClick?: React.MouseEventHandler;
buttonClassName?: string;
className?: string;
/** Overwrite for rounded className which is autoset */
roundedClassName?: string;
dropdown?: true | 'up' | 'right' | undefined;
order?: 'first' | 'last' | undefined;
fullWidth?: boolean;
style?: React.CSSProperties;
as?: 'button' | 'span';
}
export type Ref = HTMLSpanElement;
declare const Button: import("react").ForwardRefExoticComponent>;
export default Button;