import React from 'react';
import { IButtonProps } from './type';
import PropTypes from 'prop-types';
export declare const ButtonTmp: {
    (props: IButtonProps): JSX.Element;
    propTypes: {
        id: PropTypes.Requireable<string>;
        name: PropTypes.Requireable<string>;
        /**
         * The text of the button
         */
        text: PropTypes.Requireable<string>;
        /**
         * The style class to apply to the component.
         */
        className: PropTypes.Requireable<string>;
        href: PropTypes.Requireable<string>;
        readOnly: PropTypes.Requireable<boolean>;
        loading: PropTypes.Requireable<boolean>;
        disabled: PropTypes.Requireable<boolean>;
        disableFocusRipple: PropTypes.Requireable<boolean>;
        fullWidth: PropTypes.Requireable<boolean>;
        centerRipple: PropTypes.Requireable<boolean>;
        disableRipple: PropTypes.Requireable<boolean>;
        tabIndex: PropTypes.Requireable<number>;
        buttonRef: PropTypes.Requireable<any>;
        component: PropTypes.Requireable<any>;
        onRef: PropTypes.Requireable<(...args: any[]) => any>;
        /**
         * The click event to apply to the component.
         * @param {any} e
         * @returns {void}
         */
        onClick: PropTypes.Requireable<(...args: any[]) => any>;
        type: PropTypes.Requireable<string>;
        variant: PropTypes.Requireable<string>;
        /**
         * Used to define the icon that will appear on the left side of the component.
         * @returns {node}
         */
        iconLeft: PropTypes.Requireable<string | number | boolean | {} | PropTypes.ReactElementLike | PropTypes.ReactNodeArray>;
        /**
         * Used to define the icon that will appear on the right side of the component.
         * @returns {node}
         */
        iconRight: PropTypes.Requireable<string | number | boolean | {} | PropTypes.ReactElementLike | PropTypes.ReactNodeArray>;
        /**
         * Used to file upload with component.
         */
        uploadButton: PropTypes.Requireable<PropTypes.InferProps<{
            accept: PropTypes.Requireable<any>;
            onChange: PropTypes.Requireable<any>;
            multiple: PropTypes.Requireable<boolean>;
        }>>;
    };
    defaultProps: {
        disableFocusRipple: boolean;
        disableRipple: boolean;
        tabIndex: number;
        variant: string;
        type: string;
        fullWidth: boolean;
    };
};
declare const _default: React.MemoExoticComponent<{
    (props: IButtonProps): JSX.Element;
    propTypes: {
        id: PropTypes.Requireable<string>;
        name: PropTypes.Requireable<string>;
        /**
         * The text of the button
         */
        text: PropTypes.Requireable<string>;
        /**
         * The style class to apply to the component.
         */
        className: PropTypes.Requireable<string>;
        href: PropTypes.Requireable<string>;
        readOnly: PropTypes.Requireable<boolean>;
        loading: PropTypes.Requireable<boolean>;
        disabled: PropTypes.Requireable<boolean>;
        disableFocusRipple: PropTypes.Requireable<boolean>;
        fullWidth: PropTypes.Requireable<boolean>;
        centerRipple: PropTypes.Requireable<boolean>;
        disableRipple: PropTypes.Requireable<boolean>;
        tabIndex: PropTypes.Requireable<number>;
        buttonRef: PropTypes.Requireable<any>;
        component: PropTypes.Requireable<any>;
        onRef: PropTypes.Requireable<(...args: any[]) => any>;
        /**
         * The click event to apply to the component.
         * @param {any} e
         * @returns {void}
         */
        onClick: PropTypes.Requireable<(...args: any[]) => any>;
        type: PropTypes.Requireable<string>;
        variant: PropTypes.Requireable<string>;
        /**
         * Used to define the icon that will appear on the left side of the component.
         * @returns {node}
         */
        iconLeft: PropTypes.Requireable<string | number | boolean | {} | PropTypes.ReactElementLike | PropTypes.ReactNodeArray>;
        /**
         * Used to define the icon that will appear on the right side of the component.
         * @returns {node}
         */
        iconRight: PropTypes.Requireable<string | number | boolean | {} | PropTypes.ReactElementLike | PropTypes.ReactNodeArray>;
        /**
         * Used to file upload with component.
         */
        uploadButton: PropTypes.Requireable<PropTypes.InferProps<{
            accept: PropTypes.Requireable<any>;
            onChange: PropTypes.Requireable<any>;
            multiple: PropTypes.Requireable<boolean>;
        }>>;
    };
    defaultProps: {
        disableFocusRipple: boolean;
        disableRipple: boolean;
        tabIndex: number;
        variant: string;
        type: string;
        fullWidth: boolean;
    };
}>;
export default _default;
