import type * as React from 'react';
import { AnalyticsOverrideProps, AnalyticsParentDataProps } from '../analytics';
export type ButtonSize = 'small' | 'big';
export type ButtonVariation = 'solid' | 'ghost';
export type ButtonRef = React.Ref<any> | React.MutableRefObject<any>;
interface CommonButtonProps extends AnalyticsOverrideProps, AnalyticsParentDataProps {
    /**
     * Label text or HTML
     */
    children: string | React.ReactNode;
    /**
     * Additional classes to be added to the root button element.
     */
    className?: string;
    disabled?: boolean;
    /**
     * When provided, the root component will render as an `<a>` element
     * rather than `button`.
     */
    href?: string;
    /**
     * Access a reference to the `button` or `a` element
     */
    inputRef?: ButtonRef;
    /**
     * Applies the alternate color to a Button. By default, Button
     * uses the `main` color.
     */
    isAlternate?: boolean;
    /**
     * Returns the [`SyntheticEvent`](https://facebook.github.io/react/docs/events.html).
     * Not called when the Button is disabled.
     */
    onClick?: (...args: any[]) => any;
    /**
     * Defines a color palette best used when Button is placed on a dark
     * background-color. By default, Button uses a light color palette.
     */
    onDark?: boolean;
    size?: ButtonSize;
    /**
     * Button [`type`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#attr-type) attribute
     */
    type?: React.ComponentProps<'button'>['type'];
    /**
     * A string corresponding to Button variation classes.
     */
    variation?: ButtonVariation;
}
type OtherProps = Omit<React.ComponentPropsWithRef<'button'> & React.ComponentPropsWithRef<'a'>, keyof CommonButtonProps>;
export type ButtonProps = CommonButtonProps & OtherProps;
/**
 * For information about how and when to use this component,
 * [refer to its full documentation page](https://design.cms.gov/components/button/).
 */
export declare const Button: {
    (props: ButtonProps): import("react/jsx-runtime").JSX.Element;
    defaultProps: {
        isAlternate: boolean;
        onDark: boolean;
        type: "button";
    };
};
export default Button;
