import React, { PropsWithoutRef, RefAttributes } from 'react';
import { ButtonTypes, NormalSizes } from '../utils/prop-types';
interface Props {
    type?: ButtonTypes;
    size?: NormalSizes;
    ghost?: boolean;
    loading?: boolean;
    shadow?: boolean;
    auto?: boolean;
    effect?: boolean;
    disabled?: boolean;
    htmlType?: React.ButtonHTMLAttributes<any>['type'];
    icon?: React.ReactNode;
    iconRight?: React.ReactNode;
    onClick?: React.MouseEventHandler<HTMLButtonElement>;
    className?: string;
}
declare const defaultProps: {
    type: "default" | "secondary" | "success" | "warning" | "error" | "abort" | "secondary-light" | "success-light" | "warning-light" | "error-light";
    size: "mini" | "small" | "medium" | "large";
    htmlType: "button" | "reset" | "submit" | undefined;
    ghost: boolean;
    loading: boolean;
    shadow: boolean;
    auto: boolean;
    effect: boolean;
    disabled: boolean;
    className: string;
};
declare type NativeAttrs = Omit<React.ButtonHTMLAttributes<any>, keyof Props>;
export declare type ButtonProps = Props & typeof defaultProps & NativeAttrs;
declare type ButtonComponent<T, P = {}> = React.ForwardRefExoticComponent<PropsWithoutRef<P> & RefAttributes<T>>;
declare type ComponentProps = Partial<typeof defaultProps> & Omit<Props, keyof typeof defaultProps> & NativeAttrs;
declare const _default: ButtonComponent<HTMLButtonElement, ComponentProps>;
export default _default;
