import { ActionIconCssVariables, ActionIconStylesNames, ActionIconVariant, type ActionIconGroup, type ActionIconProps as MantineActionIconProps } from '@mantine/core';
import { ClickHandler } from '../../hooks/useClickWithLoading.js';
import { ButtonWithDisabledTooltipProps } from '../Button/ButtonWithDisabledTooltip.js';
export interface ActionIconProps extends MantineActionIconProps, ButtonWithDisabledTooltipProps {
    /**
     * Handler executed on click.
     * Supports async handlers - the button will show a loading state while the promise resolves.
     */
    onClick?: ClickHandler<HTMLButtonElement>;
}
export declare const ActionIcon: (<C = "button">(props: import("@mantine/core").PolymorphicComponentProps<C, ActionIconProps>) => React.ReactElement) & Omit<import("react").FunctionComponent<(ActionIconProps & {
    component?: any;
} & Omit<Omit<any, "ref">, "component" | keyof ActionIconProps> & {
    ref?: any;
    renderRoot?: (props: any) => any;
}) | (ActionIconProps & {
    component: React.ElementType;
    renderRoot?: (props: Record<string, any>) => any;
})>, never> & import("@mantine/core").ThemeExtend<{
    props: ActionIconProps;
    defaultRef: HTMLButtonElement;
    defaultComponent: "button";
    stylesNames: ActionIconStylesNames;
    vars: ActionIconCssVariables;
    variant: ActionIconVariant;
    staticComponents: {
        Group: typeof ActionIconGroup;
        Primary: typeof ActionIconPrimary;
        Secondary: typeof ActionIconSecondary;
        Tertiary: typeof ActionIconTertiary;
        Quaternary: typeof ActionIconQuaternary;
        DestructivePrimary: typeof ActionIconDestructive;
        DestructiveSecondary: typeof ActionIconDestructiveSecondary;
        DestructiveTertiary: typeof ActionIconDestructiveTertiary;
        DestructiveQuaternary: typeof ActionIconDestructiveQuaternary;
    };
}> & import("@mantine/core").ComponentClasses<{
    props: ActionIconProps;
    defaultRef: HTMLButtonElement;
    defaultComponent: "button";
    stylesNames: ActionIconStylesNames;
    vars: ActionIconCssVariables;
    variant: ActionIconVariant;
    staticComponents: {
        Group: typeof ActionIconGroup;
        Primary: typeof ActionIconPrimary;
        Secondary: typeof ActionIconSecondary;
        Tertiary: typeof ActionIconTertiary;
        Quaternary: typeof ActionIconQuaternary;
        DestructivePrimary: typeof ActionIconDestructive;
        DestructiveSecondary: typeof ActionIconDestructiveSecondary;
        DestructiveTertiary: typeof ActionIconDestructiveTertiary;
        DestructiveQuaternary: typeof ActionIconDestructiveQuaternary;
    };
}> & import("@mantine/core").PolymorphicComponentWithProps<{
    props: ActionIconProps;
    defaultRef: HTMLButtonElement;
    defaultComponent: "button";
    stylesNames: ActionIconStylesNames;
    vars: ActionIconCssVariables;
    variant: ActionIconVariant;
    staticComponents: {
        Group: typeof ActionIconGroup;
        Primary: typeof ActionIconPrimary;
        Secondary: typeof ActionIconSecondary;
        Tertiary: typeof ActionIconTertiary;
        Quaternary: typeof ActionIconQuaternary;
        DestructivePrimary: typeof ActionIconDestructive;
        DestructiveSecondary: typeof ActionIconDestructiveSecondary;
        DestructiveTertiary: typeof ActionIconDestructiveTertiary;
        DestructiveQuaternary: typeof ActionIconDestructiveQuaternary;
    };
}> & {
    Group: typeof ActionIconGroup;
    Primary: typeof ActionIconPrimary;
    Secondary: typeof ActionIconSecondary;
    Tertiary: typeof ActionIconTertiary;
    Quaternary: typeof ActionIconQuaternary;
    DestructivePrimary: typeof ActionIconDestructive;
    DestructiveSecondary: typeof ActionIconDestructiveSecondary;
    DestructiveTertiary: typeof ActionIconDestructiveTertiary;
    DestructiveQuaternary: typeof ActionIconDestructiveQuaternary;
};
declare const ActionIconPrimary: <L = "button">(props: import("@mantine/core").PolymorphicComponentProps<L, ActionIconProps>) => React.ReactElement;
declare const ActionIconSecondary: <L = "button">(props: import("@mantine/core").PolymorphicComponentProps<L, ActionIconProps>) => React.ReactElement;
declare const ActionIconTertiary: <L = "button">(props: import("@mantine/core").PolymorphicComponentProps<L, ActionIconProps>) => React.ReactElement;
declare const ActionIconQuaternary: <L = "button">(props: import("@mantine/core").PolymorphicComponentProps<L, ActionIconProps>) => React.ReactElement;
declare const ActionIconDestructive: <L = "button">(props: import("@mantine/core").PolymorphicComponentProps<L, ActionIconProps>) => React.ReactElement;
declare const ActionIconDestructiveSecondary: <L = "button">(props: import("@mantine/core").PolymorphicComponentProps<L, ActionIconProps>) => React.ReactElement;
declare const ActionIconDestructiveTertiary: <L = "button">(props: import("@mantine/core").PolymorphicComponentProps<L, ActionIconProps>) => React.ReactElement;
declare const ActionIconDestructiveQuaternary: <L = "button">(props: import("@mantine/core").PolymorphicComponentProps<L, ActionIconProps>) => React.ReactElement;
export {};
//# sourceMappingURL=ActionIcon.d.ts.map