interface PaymentHubParams { publishableKey: string; apiHost: string; } type FormChangeEvent = { isValid: boolean; paymentMethodType: string; }; interface StripeFormCreateOptions { stripePublishableKey: string; stripePaymentIntentSecret: string; } interface CreateFormOptions { containerElementId: string; onChange: (event: FormChangeEvent) => void; } declare enum GatewayType { STRIPE = "stripe" } interface StripePaymentIntent { stripePaymentIntentSecret: string; stripePaymentIntentId: string; stripePublishableKey: string; } interface PaymentForm { confirmPayment: () => Promise; } type GatewayPaymentIntent = StripePaymentIntent; interface BasePaymentIntent { paymentIntentId: string; amount: number; currency: string; paymentMethodType: string; businessEntityId: string; gatewayType: T; gatewayPaymentIntent: G; } type PaymentIntent = BasePaymentIntent; declare class PaymentHub { private publishableKey; private host; constructor(params: PaymentHubParams); getPaymentIntent(paymentIntentId: string): Promise; createForm(paymentIntentId: string, options: CreateFormOptions): Promise; private createStripeForm; private getContainerById; } export { PaymentHub, PaymentHubParams, FormChangeEvent, StripeFormCreateOptions, CreateFormOptions, GatewayType, StripePaymentIntent, PaymentForm, GatewayPaymentIntent, BasePaymentIntent, PaymentIntent };