import React, { ButtonHTMLAttributes, ReactNode } from 'react';
export type ButtonSize = 'standard' | 'x-small' | 'small' | 'large' | 'xLarge' | 'full';
export type ButtonProps = ButtonHTMLAttributes<HTMLElement> & {
    /**
     * change type to change border-radius of button
     */
    btnType?: 'default' | 'circle' | 'square';
    /**
     * element in button
     */
    children?: ReactNode | JSX.Element;
    /**
     * button text and background color
     */
    color?: 'navy' | 'green' | 'navy50' | 'lightNavy' | 'red' | 'blue' | 'primary' | 'secondary' | 'gray' | 'widgetPrimary' | 'widgetSecondary' | 'queryBuilder' | 'yellow' | 'white' | 'transparent';
    /**
     * whether it has a down carrot or not
     */
    hasDownArrow?: boolean;
    /**
     * icon in button
     */
    icon?: ReactNode | JSX.Element;
    /**
     * icon container element class name
     */
    iconClassName?: string;
    /**
     * whether or not to ellips text
     */
    isEllipsis?: boolean;
    /**
     * @description loader if loading is true
     * @type {JSX.Element}
     * @default ```<Loading />```
     */
    loader?: JSX.Element;
    /**
     * @description loading state of the button.
     * @type {(boolean)}
     * @default false
     */
    loading?: boolean;
    /**
     * not clickable
     */
    notClickable?: boolean;
    /**
     * override  color
     */
    overrideColor?: string;
    /**
     * override text color
     */
    overrideTextColor?: string;
    /**
     * icon in button
     */
    rightIcon?: ReactNode | JSX.Element;
    /**
     * change styles when selected is true
     */
    selected?: boolean;
    /**
     * button size
     */
    size?: ButtonSize;
    /**
     * button text
     */
    text?: string | JSX.Element;
    /**
     * button variant
     */
    variant?: 'solid' | 'outlined' | 'white' | 'outlinedWidgetPreview';
} & React.ComponentProps<'button'>;
export declare function Button({ variant, hasDownArrow, text, icon, rightIcon, size, className, children, selected, btnType, color, loading, loader, iconClassName, overrideColor, overrideTextColor, notClickable, isEllipsis, ...otherProps }: ButtonProps): JSX.Element;
