import React, { CSSProperties, MouseEventHandler, KeyboardEventHandler } from 'react';
import { IconProps } from '../Icon2';
import './Button.css';
export type ButtonProps = {
    /**
     * Class names to be appended to the className prop of the Button Component
     */
    className?: string;
    children?: React.ReactNode;
    /**
     * Pass the icon that want to add in button
     */
    icon?: any;
    /**
     * If you want to show only icon, set the param to ‘true’
     */
    onlyIcon?: boolean;
    /**
     * Determines the alignment of the icon
     */
    iconAlignment?: 'left' | 'right' | 'both';
    /**
     * Pass additional props for icon
     */
    iconProps?: Partial<IconProps>;
    /**
     * Pass an id to the button
     */
    id?: string;
    /**
     * Determine the type of button you want to use
     */
    buttonType?: 'primary' | 'secondary' | 'tertiary' | 'tertiary-outline' | 'outline' | 'success' | 'danger' | 'warning' | 'light' | 'control' | 'delete' | 'bulk-delete' | 'outline-delete' | 'outline-success' | 'white' | 'link' | 'destructive';
    /**
     * Determine the size of the button: small or large
     */
    size?: 'small' | 'regular';
    /**
     * If button covers full width
     */
    isFullWidth?: boolean;
    /**
     * If button is rounded
     */
    isRounded?: boolean;
    /**
     * An ID used for testing purposes applied as a data attribute (data-test-id)
     */
    testId?: string;
    /**
     * Used to set the button in the loading state
     */
    isLoading?: boolean;
    /**
     * Determines the color of the loading animation you want to display
     */
    loadingColor?: string;
    /**
     * Action that you want to perform when a button is clicked
     */
    onClick?: MouseEventHandler;
    /**
     * Determines whether button is disabled or not
     */
    disabled?: boolean;
    /**
     * If you want a button as a link, provide the details in href.
     */
    href?: string;
    /**
     * Type of button action (button, submit,reset)
     */
    type?: 'button' | 'submit' | 'reset';
    /**
     * Pass any CSS properties for the button
     */
    style?: CSSProperties;
    /**
     * Action that you want to perform when a key is pressed down
     */
    onKeyDown?: KeyboardEventHandler;
    /**
     * Action that you want to perform when a key is pressed up
     */
    onKeyUp?: KeyboardEventHandler;
    version?: 'v1' | 'v2';
    isContextualDropdown?: boolean;
    contextualDropdownList?: [];
    isOpen?: boolean;
    canCloseOnClickOutside?: boolean;
    defaultSelected?: object;
    onlyIconHoverColor?: 'primary' | 'secondary';
    onlyIconActive: boolean;
    openDropdownOnClick?: boolean;
    disableContextualDropdown: boolean;
    buttonRef?: React.RefObject<HTMLButtonElement>;
};
export declare const DropDownList: ({ contextualDropdownList, menuRef, setIsComponentVisible, isComponentVisible, handleChange, defaultSelected }: {
    contextualDropdownList: any;
    menuRef: any;
    setIsComponentVisible: any;
    isComponentVisible: any;
    handleChange: any;
    defaultSelected: any;
}) => React.JSX.Element;
export declare const ContextualDropdown: ({ isComponentVisible, validSize, buttonType, setIsComponentVisible, disableContextualDropdown }: {
    isComponentVisible: any;
    validSize: any;
    buttonType: any;
    setIsComponentVisible: any;
    disableContextualDropdown: any;
}) => React.JSX.Element;
export declare const RenderButtonDom: ({ testId, Element, classNames, disabled, href, id, type, style, onClick, isContextualDropdown, onKeyDown, onKeyUp, isLoading, loadingColor, buttonType, addButtonIconClassNames, nestedChildren, version, setIsComponentVisible, isComponentVisible, validSize, defaultSelected, contextualDropdownList, menuRef, handleChange, disableContextualDropdown, openDropdownOnClick, buttonRef, otherProps, }: {
    testId: any;
    Element: any;
    classNames: any;
    disabled: any;
    href: any;
    id: any;
    type: any;
    style: any;
    onClick: any;
    isContextualDropdown: any;
    onKeyDown: any;
    onKeyUp: any;
    isLoading: any;
    loadingColor: any;
    buttonType: any;
    addButtonIconClassNames: any;
    nestedChildren: any;
    version: any;
    setIsComponentVisible: any;
    isComponentVisible: any;
    validSize: any;
    defaultSelected: any;
    contextualDropdownList: any;
    menuRef: any;
    handleChange: any;
    disableContextualDropdown: any;
    openDropdownOnClick: any;
    buttonRef: any;
    otherProps: any;
}) => React.JSX.Element;
declare const _default: any;
export default _default;
