import { type ButtonHTMLAttributes, type ReactNode } from 'react'; import { type VariantProps } from 'class-variance-authority'; declare const rootVariants: (props?: ({ provider?: "apple" | "google" | null | undefined; appearance?: "light" | "dark" | null | undefined; size?: "sm" | "md" | "lg" | null | undefined; } & import("class-variance-authority/types").ClassProp) | undefined) => string; export type SocialSignInProvider = 'apple' | 'google'; /** * Brand surface variant — independent of the kit theme. Apple HIG: * `light` = white button + black mark/text, `dark` = black button + * white mark/text. Google: `light` = white/neutral button, `dark` = * Google-blue button. Pick the appearance that contrasts with your * auth-card background; do NOT bind it to `useTheme()`. Defaults to * `'light'`. Derived from `rootVariants` so the prop union tracks the * CVA option list automatically. */ export type SocialSignInAppearance = NonNullable['appearance']>; /** Button size. Defaults to `'md'`. Derived from `rootVariants`. */ export type SocialSignInSize = NonNullable['size']>; export interface SocialSignInButtonProps extends Omit, 'children'>, Omit, 'provider'> { /** * Which identity provider this button represents. Drives the brand * mark, the surface colour token, and the default i18n verb + name. * Designed extensible — the union and the CVA option list grow * together when a new provider (e.g. `'microsoft'`) is added. */ provider: SocialSignInProvider; /** * Swaps the brand mark for the kit Spinner (size-matched), sets * `aria-busy` and `aria-disabled`, and ignores activation so the user * cannot double-submit the OAuth redirect. The label stays visible and * the button stays focusable, so keyboard focus stays on it. Changed in * 1.72.0: before, it set native `disabled`, which dropped focus. */ loading?: boolean; /** * Override the visible label. When omitted, reads * `socialSignInButton.` ("Sign in with Apple" / "Sign in * with Google"). Override only to switch the verb to "Continue with" * — never for marketing copy, and the provider NAME ("Apple" / * "Google") must stay verbatim per brand rules. */ label?: ReactNode; /** * Fired when the component detects the user cancelled an in-flight * sign-in — typically by pressing browser back after the OAuth * redirect, which restores the page from bfcache with `loading` still * true. Wire this to your loading-state setter so the button returns * to idle. Only fires when `loading` is currently true; never on first * mount. Mirrors SignInWithAlfadocsButton — the component does not * reset state it doesn't own. */ onLoadingCancelled?: () => void; } export declare const SocialSignInButton: import("react").ForwardRefExoticComponent>; export {}; //# sourceMappingURL=social-sign-in-button.d.ts.map