// ── @weeconnectpay/payment-fields/web-component ─────────────────
//
// Self-registering custom element. Just `import '@weeconnectpay/payment-fields/web-component'`
// and `<wcp-payment-fields>` becomes available in HTML.
//
// Side effect: `customElements.define('wcp-payment-fields', WcpPaymentFields)`.
// Marked `"sideEffects": ["./dist/web-component/*"]` in package.json so bundlers
// don't tree-shake this away.

import { WcpPaymentFields } from './wcp-payment-fields';

if (typeof customElements !== 'undefined' && !customElements.get('wcp-payment-fields')) {
  customElements.define('wcp-payment-fields', WcpPaymentFields);
}

export { WcpPaymentFields, type WcpPaymentFieldsElement } from './wcp-payment-fields';

// Re-export core types consumers will read on event.detail and as imperative args.
export type {
  PaymentFieldsConfig,
  PaymentFieldsError,
  PaymentFieldsSnapshot,
  PaymentFieldsState,
  ThreeDsInterim,
  ThreeDsResult,
  TokenizationResult,
} from '../core/index';
