import * as React from 'react';
import { IconButtonProps as MuiIconButtonProps } from '@mui/material/IconButton';
import { IconId } from '../icon/Icon';
declare const sizes: {
    readonly XXS: {
        readonly side: 16;
        readonly iconSize: "XXS";
    };
    readonly XS: {
        readonly side: 20;
        readonly iconSize: "XS";
    };
    readonly S: {
        readonly side: 24;
        readonly iconSize: "S";
    };
    readonly M: {
        readonly side: 32;
        readonly iconSize: "M";
    };
    readonly ML: {
        readonly side: 36;
        readonly iconSize: "M";
    };
    readonly L: {
        readonly side: 40;
        readonly iconSize: "M";
    };
    readonly XL: {
        readonly side: 48;
        readonly iconSize: "M";
    };
};
export declare const iconButtonSizes: (keyof typeof sizes)[];
type IconButtonSize = (typeof iconButtonSizes)[number];
export declare const iconButtonVariants: readonly ["contained", "default", "primary", "outlined"];
type IconButtonVariant = (typeof iconButtonVariants)[number];
export declare const iconButtonShapes: readonly ["default", "square"];
type IconButtonShape = (typeof iconButtonShapes)[number];
export type IconButtonProps = Pick<MuiIconButtonProps, 'disabled' | 'onClick' | 'sx' | 'id' | 'onMouseDown' | 'className'> & {
    /**
     * The identifier of the icon to display.
     */
    iconId: IconId;
    /**
     * Size of the button.
     */
    size?: IconButtonSize;
    /**
     * Settled directly in DOM element, for testing easy location purposes.
     */
    'data-test'?: string;
    /**
     * The variant of the button.
     */
    variant?: IconButtonVariant;
    /**
     * The shape of the button.
     */
    shape?: IconButtonShape;
    /**
     * Disable ripple effect
     */
    disableInteractionEffects?: boolean;
};
declare const IconButton: React.ForwardRefExoticComponent<Pick<MuiIconButtonProps, "id" | "className" | "sx" | "disabled" | "onClick" | "onMouseDown"> & {
    /**
     * The identifier of the icon to display.
     */
    iconId: IconId;
    /**
     * Size of the button.
     */
    size?: IconButtonSize;
    /**
     * Settled directly in DOM element, for testing easy location purposes.
     */
    'data-test'?: string;
    /**
     * The variant of the button.
     */
    variant?: IconButtonVariant;
    /**
     * The shape of the button.
     */
    shape?: IconButtonShape;
    /**
     * Disable ripple effect
     */
    disableInteractionEffects?: boolean;
} & React.RefAttributes<HTMLButtonElement>>;
export default IconButton;
