import { ReactNode } from 'react';
interface BaseButtonConfig {
    icon: ReactNode;
    text: string;
    onClick: () => void | Promise<void>;
    disabled?: boolean;
}
interface MenuItemConfig extends BaseButtonConfig {
    tag?: {
        text: string;
        color?: string;
    };
    splitTopBorder?: boolean;
}
interface SingleButtonProps {
    type: 'single';
    button: BaseButtonConfig;
    loadingText?: string;
    minWidth?: string;
    className?: string;
    iconClassName?: string;
}
interface SplitButtonProps {
    type: 'split';
    mainButton: BaseButtonConfig;
    menuItems: MenuItemConfig[];
    loadingText?: string;
    menuWidth?: string;
    className?: string;
    mainButtonClassName?: string;
    dropdownButtonClassName?: string;
    iconClassName?: string;
}
type xButtonProps = SingleButtonProps | SplitButtonProps;
export declare function XButton(props: xButtonProps): import("react/jsx-runtime").JSX.Element;
export {};
