// ── @weeconnectpay/payment-fields/react ─────────────────────────
//
// React 18+ bindings. Two consumption modes:
//
// 1. Hook (`usePaymentFields`) — host owns layout. WC Blocks uses this.
// 2. Composite (`<PaymentFields>`) — Design-5 layout baked in. Dashboard + PrestaShop use this.
//
// Both go through the same `PaymentFieldsMachine` under the hood, so behavior
// (state machine, GPay prepare-and-wait, 3DS flow) is identical.

export {
  usePaymentFields,
  type UsePaymentFieldsOptions,
  type UsePaymentFieldsReturn,
} from './use-payment-fields';

export { PaymentFields, type PaymentFieldsProps } from './PaymentFields';

export { PAYMENT_FIELDS_CSS } from './styles';

// Re-export the core types consumers will reach for from React land.
export type {
  CloverFieldTheme,
  HeadersProvider,
  MountTargets,
  PaymentFieldsConfig,
  PaymentFieldsEndpoints,
  PaymentFieldsError,
  PaymentFieldsErrorCode,
  PaymentFieldsFeatures,
  PaymentFieldsSnapshot,
  PaymentFieldsState,
  SavedCredential,
  ThreeDsInterim,
  ThreeDsResult,
  TokenizationResult,
  ValidationSnapshot,
} from '../core/index';
