import { ReactNode } from 'react'; import { IconButtonProps as MuiIconButtonProps } from '@mui/material/IconButton'; import { TooltipProps } from '@mui/material/Tooltip'; /** * IconButton * Classification: mui-wrapper (themed MUI IconButton + a11y + tooltip + loading) * MUI base: https://mui.com/material-ui/react-button/#icon-button * * A compact, icon-only action. Unlike raw MUI, this enforces an accessible * `label` (rendered as `aria-label`), adds an optional `tooltip`, semantic * `variant` colors, and a `loading` spinner. */ export interface IconButtonProps extends Omit { /** The icon to render (e.g. a `@mui/icons-material` element). */ icon: ReactNode; /** Accessible name for the button. Required for a11y since there is no text. */ label: string; /** Visual emphasis. Maps to a themed color. */ variant?: 'default' | 'primary' | 'danger'; /** Optional tooltip. Defaults to `label` when omitted and `showTooltip` is set. */ tooltip?: ReactNode; /** Placement for the tooltip when `tooltip` is provided. */ tooltipPlacement?: TooltipProps['placement']; /** Show a spinner and disable interaction. */ loading?: boolean; } export declare const IconButton: import('react').ForwardRefExoticComponent & import('react').RefAttributes>;