import { Environment } from '../../../types/checkout/CheckoutConfig.type'; import { VGSCollectService, VGSFormState } from '../../../core/vgs/VGSCollectService'; import { CheckoutProfile } from '../../../types/checkout/CheckoutProfile.type'; import { AddressData, ApplePayData, FormData, FormErrors } from '../../../types/common/FormData.type'; import { FocusManager, FocusableField } from '../../../utils'; import { VgsFieldErrors } from './FormStateCoordinator'; interface ComponentManagerOptions { formElement: HTMLFormElement; focusManager: FocusManager; translationFunc: (key: string) => string; locale?: string; onFieldFocus: (field: FocusableField) => void; onChange: (event: Event) => void; onBlur: (event: Event) => void; onPaypalSubmit: () => Promise; /** * Resolves to `true` when the SDK reported a success or a required action to * the merchant. A decline or an error resolves to `false`. */ onApplePaySubmit: (data: { formData?: FormData; applePayData?: ApplePayData; }) => Promise; supportedPaymentMethods?: { card?: boolean; paypal?: boolean; applePay?: boolean; [key: string]: boolean | undefined; }; paymentId?: string; checkoutKey?: string; checkoutDetails?: { amount: number; currency: string; countryCode: string; }; environment: Environment; vgsService?: VGSCollectService; } export declare class FormComponentManager { private formElement; private focusManager; private translationFunc; private locale?; private onFieldFocus; private onChange; private onBlur; private onPaypalSubmit; private onApplePaySubmit; private supportedPaymentMethods?; private paymentId?; private checkoutKey?; private checkoutDetails?; private environment; private vgsService?; private emailField?; private phoneNumberField?; private phonePlaceholder?; private cardSection?; private cardUnavailableNotice?; private cardholderSection?; private submitButton?; private paymentMethods?; private billingAddressSection?; private shippingAddressSection?; private cardSectionSkeleton?; private cardholderSectionSkeleton?; private isCheckoutDetailsLoaded; private emailFocusHandler?; private phoneNumberFocusHandler?; private nameFocusHandler?; constructor(options: ComponentManagerOptions); createPaymentMethods(checkoutProfile: CheckoutProfile, formData: FormData, insertAtTop?: boolean): void; createEmailField(checkoutProfile: CheckoutProfile, formData: FormData, errors: FormErrors, touched: Partial>): void; createPhoneNumberField(checkoutProfile: CheckoutProfile, formData: FormData, errors: FormErrors, touched: Partial>): void; setCheckoutDetailsLoaded(loaded: boolean): void; createCardSection(checkoutProfile: CheckoutProfile): void; createCardholderSection(checkoutProfile: CheckoutProfile, formData: FormData, errors: FormErrors, touched: Partial>): void; createBillingAddressSection(checkoutProfile: CheckoutProfile, formData: FormData, errors: FormErrors, touched: Partial> & { billingAddress?: Partial>; }): void; createShippingAddressSection(checkoutProfile: CheckoutProfile, formData: FormData, errors: FormErrors, touched: Partial> & { shippingAddress?: Partial>; }): void; createSubmitButton(checkoutProfile: CheckoutProfile, disabled: boolean): void; updateEmailField(value: string, error: boolean, errorMsg: string | undefined, suggestion?: string | undefined): void; updatePhoneNumberField(value: string, error: boolean, errorMsg: string | undefined): void; updateCardholderSection(value: string, error: boolean, errorMsg: string | undefined): void; updateBillingAddressSection(values: AddressData, errors: Partial>, touched: Partial>): void; updateShippingAddressSection(values: AddressData, errors: Partial>, touched: Partial>): void; updateSubmitButton(disabled: boolean): void; updatePaymentMethods(formData: FormData): void; removePaymentMethods(): void; updateSupportedPaymentMethods(supportedPaymentMethods: { card?: boolean; paypal?: boolean; applePay?: boolean; [key: string]: boolean | undefined; }): void; updatePaymentDetails(paymentId: string, checkoutKey: string, checkoutDetails: { amount: number; currency: string; countryCode: string; }): void; hasComponents(): boolean; setVgsService(vgsService?: VGSCollectService): void; /** * Card counts as offered until the payment says otherwise: before the * details arrive there is no list to consult, and the skeleton is showing. */ isCardSupported(): boolean; private buildCardSkeleton; private createHelperTextSpacer; private createSkeletonDiv; private buildCardholderSkeleton; mountVgsFields(checkoutProfile: CheckoutProfile): Promise; handleVgsStateChange(state: VGSFormState, fieldErrors?: VgsFieldErrors): void; cleanup(): void; } export {}; //# sourceMappingURL=FormComponentManager.d.ts.map