import { ElementType, ForwardedRef, ReactElement } from 'react';
export type ButtonProperties = {
    /** Alternate color scheme */
    alternate?: boolean;
    /** Size of Button */
    buttonSize?: 'large' | 'small';
    /** @ignore */
    className?: string;
    /** Color Scheme of Button */
    colorScheme?: 'secondary' | 'tertiary';
    /** Destructive Button */
    destructive?: boolean;
    /** Icon Button */
    iconButton?: boolean;
    /** Icon Two Button */
    iconTwoColor?: boolean;
    /** Stacked Button */
    stacked?: boolean;
    /** Subtle Button */
    subtle?: boolean;
} & ({
    /** Cloned Element (not compatible with tag property) */
    element?: never;
    /** Tag (not compatible with element property) */
    tag?: ElementType;
} | {
    /** Cloned Element (not compatible with tag property) */
    element?: ReactElement;
    /** Tag (not compatible with element property) */
    tag?: never;
});
/**
 * Interactive elements enabling users to take actions within an interface.
 * @docs {@link https://design.visa.com/react/components/button | See Docs}
 * @vgar TODO
 * @wcag TODO
 */
declare const _default: <HTMLElementType = HTMLButtonElement>(props: {
    children?: import("react").ReactNode | import("react").ReactNode[];
    ref?: ForwardedRef<HTMLElementType> | undefined;
} & import("react").AllHTMLAttributes<HTMLElementType> & (import("react").SVGAttributes<HTMLElementType> & ButtonProperties)) => ReactElement;
export default _default;
