/**
 *              Copyright (c) 2025 Visa, Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *         http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 **/
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;
