import { type ButtonHTMLAttributes, type ReactNode } from "react";
export type SocialProvider = "google" | "github" | "apple" | "x" | "twitter" | "microsoft" | "linkedin" | "custom";
export type SocialButtonSize = "sm" | "md" | "lg";
type ButtonAttrs = Omit<ButtonHTMLAttributes<HTMLButtonElement>, "onDrag" | "onDragStart" | "onDragEnd" | "onAnimationStart">;
export interface SocialButtonProps extends ButtonAttrs {
    provider: SocialProvider;
    /** Override the default "Continue with X" label. */
    label?: ReactNode;
    /** Override the default brand glyph. */
    icon?: ReactNode;
    size?: SocialButtonSize;
    /** Stretch to fill the container. Defaults to true — auth flows almost
     *  always want full-width social buttons. */
    fullWidth?: boolean;
    /** Forward to Button's loading state — disables + shows spinner. */
    loading?: boolean;
    /** Override label rendered during loading (e.g. "Continuing…"). */
    loadingText?: ReactNode;
    /** Icon-only mode — hides the label, keeps the brand glyph centered. */
    iconOnly?: boolean;
}
/**
 * Social-auth button. Wraps the polished `Button` primitive so we get
 * focus rings, loading spinner, disabled cursor, etc. for free — adds
 * provider-specific branding (logo + dark/light theming) on top.
 */
export declare const SocialButton: import("react").ForwardRefExoticComponent<SocialButtonProps & import("react").RefAttributes<HTMLButtonElement>>;
export {};
//# sourceMappingURL=SocialButton.d.ts.map