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 {};