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;