import { KeyboardEvent, MouseEvent, ReactNode } from "react";
import { IAccessibilityConfigBase } from "../../typings/accessibility.js";
import { IconType } from "../@types/icon.js";
import { SizeLarge, SizeMedium, SizeSmall } from "../@types/size.js";
import { VariantDanger, VariantLink, VariantPopOut, VariantPrimary, VariantSecondary, VariantTertiary, VariantTooltip } from "../@types/variant.js";
/**
 * @internal
 */
export interface IUiButtonAccessibilityConfig extends IAccessibilityConfigBase {
    iconAriaHidden?: boolean;
}
/**
 * @internal
 */
export interface UiButtonProps {
    id?: string;
    size?: SizeSmall | SizeMedium | SizeLarge;
    variant?: VariantPrimary | VariantSecondary | VariantTertiary | VariantPopOut | VariantDanger | VariantTooltip | VariantLink;
    iconBefore?: IconType;
    iconAfter?: IconType;
    label: string;
    isDisabled?: boolean;
    isLoading?: boolean;
    tooltip?: ReactNode;
    onClick?: (e: MouseEvent<HTMLButtonElement>) => void;
    onKeyDown?: (e: KeyboardEvent<HTMLButtonElement>) => void;
    dataId?: string;
    dataTestId?: string;
    accessibilityConfig?: IUiButtonAccessibilityConfig;
    maxWidth?: number;
    tabIndex?: number;
}
/**
 * @internal
 */
export declare const UiButton: import("react").ForwardRefExoticComponent<UiButtonProps & import("react").RefAttributes<HTMLButtonElement>>;
//# sourceMappingURL=UiButton.d.ts.map