import { type ButtonHTMLAttributes, type MouseEvent, type ReactNode } from 'react'; import { type VariantProps } from 'class-variance-authority'; type Provider = 'apple-pay' | 'google-pay'; type ButtonStyle = 'black' | 'white' | 'white-outline'; type LabelType = 'buy' | 'pay' | 'checkout' | 'book' | 'plain'; declare const rootVariants: (props?: ({ provider?: "apple-pay" | "google-pay" | null | undefined; buttonStyle?: "black" | "white" | "white-outline" | null | undefined; size?: "sm" | "md" | "lg" | null | undefined; fullWidth?: boolean | null | undefined; } & import("class-variance-authority/types").ClassProp) | undefined) => string; export interface WalletPayButtonProps extends Omit, 'children' | 'type'>, Omit, 'provider'> { /** * Which wallet the button represents. Drives the inline brand mark, * the default label key, the brand-locked surface tokens, and the * `data-provider` hook. Required — there is no sensible default * wallet. */ provider: Provider; /** * Brand-mandated button type. Apple Pay supports * `black` / `white` / `white-outline`; Google Pay supports * `black` / `white` only. Passing `white-outline` with * `provider="google-pay"` falls back to `white` and dev-warns — * Google's branding has no outline type. */ buttonStyle?: ButtonStyle; /** * Brand-approved call-to-action phrasing. `plain` renders the bare * mark (mark-only) with an sr-only accessible name. The verb portion * is i18n; the wallet brand name ("Apple Pay" / "Google Pay") is a * non-translated constant. */ labelType?: LabelType; /** * Fired on click / Enter / Space when not loading and not disabled. * Open the native wallet sheet here (Payment Request API). Named * `onActivate` rather than `onClick` to signal it triggers a payment * flow. A native `onClick` still forwards through `...rest`. */ onActivate?: (event: MouseEvent) => void; /** * Wallet sheet is opening / payment in flight. Swaps the mark for the * kit Spinner, sets `aria-busy` and `aria-disabled`, and suppresses * activation so the user cannot double-open the sheet. The button stays * focusable, so keyboard focus stays on it. Changed in 1.72.0: before, * it set native `disabled`, which dropped focus to the page. */ loading?: boolean; /** * Override the resolved accessible / visible label. Defaults to the * `provider` + `labelType` i18n string. The brand wordmark constant * ("Apple Pay" / "Google Pay") is never overridable via this prop — * pass a fully-translated verb phrase only. */ label?: ReactNode; /** * Native button type. Defaults to `'button'` so the wallet trigger * never implicitly submits an ambient `
`. */ type?: 'button' | 'submit' | 'reset'; } export declare const WalletPayButton: import("react").ForwardRefExoticComponent>; export {}; //# sourceMappingURL=wallet-pay-button.d.ts.map