import { ButtonProps as VnmfButtonProps } from "@vnxjs/components";
import { ReactElement, ReactNode } from "react";
import { LoadingProps } from "../loading";
import { ButtonColor, ButtonFormType, ButtonShape, ButtonSize, ButtonVariant } from "./button.shared";
export interface ButtonProps extends Omit<VnmfButtonProps, "size" | "formType" | "type" | "loading" | "plain"> {
    variant?: ButtonVariant;
    shape?: ButtonShape;
    size?: ButtonSize;
    color?: ButtonColor;
    formType?: ButtonFormType;
    loading?: boolean | LoadingProps | ReactElement;
    block?: boolean;
    hairline?: boolean;
    disabled?: boolean;
    icon?: ReactNode;
    children?: ReactNode;
}
export default function Button(props: ButtonProps): JSX.Element;
export declare function createButton(children: ReactNode | ButtonProps, props?: ButtonProps): JSX.Element;
