import { type KeyboardEvent, type MouseEvent } from "react";
import { type IDropdownButtonRenderProps } from "../../Dropdown/Dropdown.js";
import { type IconType } from "../@types/icon.js";
import { type SizeLarge, type SizeMedium, type SizeSmall, type SizeXLarge, type SizeXSmall, type SizeXXLarge } from "../@types/size.js";
import { type ThemeColor } from "../@types/themeColors.js";
import { type VariantBare, type VariantDanger, type VariantPopOut, type VariantPrimary, type VariantSecondary, type VariantTable, type VariantTertiary } from "../@types/variant.js";
/**
 * @internal
 */
export interface IUiIconButtonPublicProps {
    icon: IconType;
    iconColor?: ThemeColor | "currentColor";
    label?: string;
    size?: SizeXSmall | SizeSmall | SizeMedium | SizeLarge | SizeXLarge | SizeXXLarge;
    disableAnimation?: boolean;
    variant?: VariantPrimary | VariantSecondary | VariantTertiary | VariantPopOut | VariantDanger | VariantTable | VariantBare;
    /**
     * When `true` and `variant="tertiary"`, icon hover color uses the error palette color.
     */
    isDesctructive?: boolean;
    isDisabled?: boolean;
    isActive?: boolean;
    onClick?: (e: MouseEvent<HTMLButtonElement>) => void;
    onKeyDown?: (e: KeyboardEvent<HTMLButtonElement>) => void;
    dataId?: string;
    dataTestId?: string;
    ariaAttributes?: IDropdownButtonRenderProps["ariaAttributes"];
    accessibilityConfig?: IDropdownButtonRenderProps["accessibilityConfig"];
    tabIndex?: number;
    id?: string;
}
export interface IUiIconButtonInternalProps {
    iconAfter?: IconType;
    iconAfterSize?: SizeXSmall | SizeSmall | SizeMedium | SizeLarge;
}
export type UiIconButtonRendererProps = IUiIconButtonPublicProps & IUiIconButtonInternalProps;
export declare const UiIconButtonRenderer: import("react").ForwardRefExoticComponent<IUiIconButtonPublicProps & IUiIconButtonInternalProps & import("react").RefAttributes<HTMLButtonElement>>;
//# sourceMappingURL=UiIconButtonRenderer.d.ts.map