import type { MouseEvent, ReactElement, ButtonHTMLAttributes, Ref } from 'react'; import { IconNameWithSize } from '@talend/icons/dist/typeUtils'; import { DeprecatedIconNames } from '../../../types'; import { TooltipPlacement } from '../../Tooltip'; export type AvailableSizes = 'M' | 'S' | 'XS'; export type PossibleVariants = 'toggle' | 'floating' | 'default'; type CommonTypes> = Omit, 'className' | 'style' | 'aria-label'> & { children: string; isLoading?: boolean; onClick: (event: MouseEvent | KeyboardEvent) => void; tooltipPlacement?: TooltipPlacement; size?: S; icon: ReactElement | IconNameWithSize | DeprecatedIconNames; }; export type ToggleTypes> = CommonTypes & { variant: 'toggle'; isActive: boolean; }; export type FloatingTypes> = CommonTypes & { variant: 'floating'; isActive?: never; }; export type DefaultTypes = CommonTypes & { variant: 'default'; isActive?: never; }; export type ButtonIconProps = ToggleTypes | FloatingTypes | DefaultTypes; declare function Primitive(props: ButtonIconProps, ref: Ref): import("react/jsx-runtime").JSX.Element; declare const ButtonIconPrimitive: (props: ButtonIconProps & { ref?: Ref; }) => ReturnType; export default ButtonIconPrimitive;