import { AnchorHTMLAttributes, ButtonHTMLAttributes, DetailedHTMLProps, MouseEventHandler, PropsWithChildren } from 'react'; import { ThemeColorVariables } from '@dreipol/t3-react-theme'; export type IconButtonProps = PropsWithChildren<{ /** * Custom css class */ className?: string; /** * Click handler */ onClick?: MouseEventHandler; /** * Custom color */ color?: ThemeColorVariables; /** * Render as disabled state */ disabled?: boolean; /** * Show title attribute */ title?: boolean; /** * Element variant */ as?: T; /** * IconButton variant */ variant?: 'outlined' | 'plain' | 'filled'; /** * IconButton aria label describing action */ label?: string; /** * Size of icon button */ size?: 'small' | 'medium' | 'large'; } & ButtonOrLinkProps>; type ButtonOrLinkProps = T extends 'button' ? DetailedHTMLProps, HTMLButtonElement> : DetailedHTMLProps, HTMLAnchorElement>; export type IconButtonVariant = 'a' | 'button'; export declare const IconButton: (props: { /** * Custom css class */ className?: string | undefined; /** * Click handler */ onClick?: MouseEventHandler | undefined; /** * Custom color */ color?: ThemeColorVariables | undefined; /** * Render as disabled state */ disabled?: boolean | undefined; /** * Show title attribute */ title?: boolean | undefined; /** * Element variant */ as?: T | undefined; /** * IconButton variant */ variant?: "filled" | "outlined" | "plain" | undefined; /** * IconButton aria label describing action */ label?: string | undefined; /** * Size of icon button */ size?: "small" | "medium" | "large" | undefined; } & ButtonOrLinkProps & { children?: import("react").ReactNode; } & import("react").RefAttributes) => import("react").ReactElement> | null; export {};