import type { GDSComponentProps } from '@graphprotocol/gds-css';
import { type AddonValue } from './base/Addon.tsx';
import { type ButtonOrLinkProps } from './base/ButtonOrLink.tsx';
import { ButtonMeta } from './Button.meta.ts';
import { type TooltipProps } from './Tooltip.tsx';
export declare namespace ButtonProps {
    interface OwnProps {
        addonBefore?: AddonValue | undefined;
        addonAfter?: AddonValue | undefined;
        /** For icon-only buttons, defaults to the icon's `alt`, otherwise defaults to `undefined` */
        tooltip?: TooltipProps['content'] | Omit<TooltipProps, 'children'> | undefined;
        /** @default false */
        loading?: boolean | undefined;
    }
    interface CommonProps extends OwnProps, GDSComponentProps<typeof ButtonMeta> {
    }
    interface ButtonProps extends CommonProps, ButtonOrLinkProps.ButtonProps, ButtonOrLinkProps.DisableableProps {
    }
    interface ToggleButtonProps extends CommonProps, ButtonOrLinkProps.ToggleButtonProps, ButtonOrLinkProps.DisableableProps {
    }
    interface LinkProps extends CommonProps, ButtonOrLinkProps.LinkProps, ButtonOrLinkProps.DisableableProps {
    }
}
export type ButtonProps = ButtonProps.ButtonProps | ButtonProps.LinkProps;
export declare function Button({ ref: passedRef, variant, size, hideLabel, addonBefore: passedAddonBefore, addonAfter: passedAddonAfter, tooltip, loading, disabled, className, style, children, ...props }: ButtonProps): import("react/jsx-runtime").JSX.Element;
//# sourceMappingURL=Button.d.ts.map