import { CSSProperties, ReactNode, Ref } from 'react';
import { TooltipProps, ButtonProps } from '@mui/material';
import { ButtonDropdown } from './defs';
import { IconProps } from '@mdi/react/dist/IconProps';

export type CButtonProps = Omit<ButtonProps, 'label' | 'loading' | 'icon' | 'color' | 'slotProps' | 'endIcon'> & {
    label?: ReactNode;
    children?: ReactNode;
    loading?: boolean;
    loadingMode?: 'auto' | 'leftPlaceholder' | 'rightPlaceholder';
    icon?: ReactNode;
    endIcon?: ReactNode;
    dropdown?: ButtonDropdown;
    iconButton?: boolean;
    disableHover?: boolean;
    tooltip?: ReactNode;
    color?: ButtonProps['color'];
    iconColor?: string;
    fontColor?: string;
    iconSize?: CSSProperties['fontSize'];
    disableTabstop?: boolean;
    disabled?: boolean;
    disableTooltipWhenDisabled?: boolean;
    disableInteractiveTooltip?: boolean;
    slotProps?: {
        tooltip?: Partial<TooltipProps>;
        startIcon?: Partial<IconProps>;
        endIcon?: Partial<IconProps>;
    };
    borderRadius?: CSSProperties['borderRadius'];
    rootInjection?: ReactNode;
    ref?: Ref<HTMLButtonElement>;
};
export declare const Button: (props: CButtonProps) => import("react/jsx-runtime").JSX.Element;
