import type { ButtonHTMLAttributes, Ref, ReactNode } from "react"; type Variant = "accent" | "neutral" | "ghost" | "danger"; type Size = 24 | 32 | 40 | 48; export interface IconButtonProps extends ButtonHTMLAttributes { /** The icon element — an Icon* component. */ children?: ReactNode; /** Accessible name for the icon-only control. Required: an IconButton has * no text to name it, so omitting this ships an unnameable button (D60). * If you also pass `aria-labelledby`, that wins per the accname algorithm. */ "aria-label": string; /** Visual variant. @default "neutral" */ variant?: Variant; /** Square size in px (24 | 32 | 40 | 48). @default 32 */ size?: Size; /** Render as an anchor with this href (D33). disabled → aria-disabled, * no href attribute, pointer-events: none. */ href?: string; /** Anchor target; only used with href. */ target?: string; /** Anchor rel; only used with href. */ rel?: string; /** Forwarded ref to the underlying element. */ ref?: Ref; } /** Square icon-only button; same variant/size/href contract as Button. * Give it an accessible name (`aria-label`). */ export declare function IconButton({ variant, size, href, target, rel, disabled, className, onClick, ref, ...rest }: IconButtonProps): import("react").JSX.Element; export {}; //# sourceMappingURL=IconButton.d.ts.map