import PropTypes from "prop-types";
import { ElementType, MouseEventHandler, ReactElement, ReactNode } from "react";
interface ButtonProps {
    /**
     * Button contents
     */
    children?: ReactNode | ReactElement | undefined;
    component?: ElementType<any> | undefined;
    /**
     * Button color
     */
    color: "inherit" | "primary" | "success" | "error" | "info" | "warning" | string;
    /**
     * Button size
     */
    size: "small" | "medium" | "large";
    /**
     * Button variant
     */
    variant: "contained" | "outlined" | "text";
    /**
     * Button disabled
     */
    disabled?: boolean;
    /**
     * Button fullWidth
     */
    fullWidth?: boolean;
    /**
     * Button start icon
     *
     */
    startIcon?: ReactNode;
    /**
     * Button end icon
     *
     */
    endIcon?: ReactNode;
    isIconButton?: boolean | undefined;
    arialabelIconbtn?: string;
    iconButton?: ReactNode | ReactElement;
    iconButtonColor?: string;
    /**
     * Button click handler
     */
    onClick?: MouseEventHandler<HTMLButtonElement> | MouseEventHandler<any> | (() => void) | undefined;
    ariaControls?: string;
    /**
     * Button rest props
     */
    restProps?: any;
    sx?: any | undefined;
}
export { ButtonProps };
declare const GrepsrButton: {
    (props: ButtonProps): JSX.Element;
    defaultProps: {
        size: string;
        variant: string;
        color: string;
        fullWidth: boolean;
        isIconButton: boolean;
        iconButton: JSX.Element;
        arialabelIconbtn: string;
        ariaControls: string;
        disabled: boolean;
        startIcon: boolean;
        endIcon: boolean;
        onClick: string;
        sx: {};
    };
    propTypes: {
        children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
        disabled: PropTypes.Requireable<boolean>;
        startIcon: PropTypes.Requireable<boolean>;
        endIcon: PropTypes.Requireable<boolean>;
        fullWidth: PropTypes.Requireable<boolean>;
        color: PropTypes.Validator<string>;
        size: PropTypes.Validator<string>;
        variant: PropTypes.Validator<string>;
        isIconButton: PropTypes.Requireable<boolean>;
        iconButton: PropTypes.Requireable<PropTypes.ReactNodeLike>;
        iconButtonColor: PropTypes.Requireable<string>;
        arialabelIconbtn: PropTypes.Requireable<string>;
        ariaControls: PropTypes.Requireable<string>;
        component: PropTypes.Requireable<PropTypes.ReactComponentLike>;
        onClick: PropTypes.Requireable<(...args: any[]) => any>;
    };
};
export default GrepsrButton;
