import UseCase, { UseCaseOrString } from '../UseCase/types'; import { ForageConfig, EbtPaymentCaptureResult, SessionToken, TokenizedEbtCardResult, EbtBalanceResult, ForageFactory, ForageElementMap, TokenizeEbtCardNumberOptions, DeferPaymentCaptureResult, TokenizeCardOptions, BalanceResult, TokenizedCardResult, PaymentCaptureResult } from './types'; import { EnvironmentOptions } from '../../types/internal'; import { Appearance } from '../Appearance/types'; import { ForageElement } from '../Element'; import { ForageCardElement, ForageEbtBalanceElement, ForageEbtCardNumberElement, ForageEbtPaymentElement, ForageElementOptions, ForagePaymentSheetElement, ForagePinElement } from '../Element/types'; import { ForageError } from '../ForageError/types'; import { SubmitFailureEvent } from '../../services/frame-messaging/receiver/iframe-events.interface'; export declare const POLLING_DEADLINE_MS = 123000; export declare class Forage { protected _merchantId: string; protected _sessionToken: SessionToken; protected _customerId: string | undefined; protected _appearance?: Appearance; protected _environment: EnvironmentOptions; protected _useCaseToElementNameMap: Record; constructor(config: ForageConfig); static init: ForageFactory; tokenizeCard: (element: ForageCardElement | ForagePaymentSheetElement, options?: TokenizeCardOptions) => Promise; checkBalance: (element: ForagePinElement, paymentMethodRef: string) => Promise; capturePayment: (element: ForagePinElement, paymentRef: string) => Promise; /** * @deprecated Use `tokenizeCard` instead. */ tokenizeEbtCardNumber: (element: ForageEbtCardNumberElement, options?: TokenizeEbtCardNumberOptions) => Promise; /** * @deprecated Use `checkBalance` instead. */ createEbtPinBalanceCheck: (element: ForageEbtBalanceElement, paymentMethodRef: string) => Promise; /** * @deprecated Use `capturePayment` instead. */ captureEbtPinPayment: (element: ForageEbtPaymentElement, paymentRef: string) => Promise; deferPaymentCapture: (element: ForagePinElement, paymentRef: string) => Promise; create: (useCase: T, options?: ElementOptions) => ForageElementMap[T]; _getEnvironment: () => EnvironmentOptions; /** * @throws if the submit action does not match the expectedUseCase */ protected _validateElementMatchesUseCases: (element: ForageElement, allowedUseCases: T[]) => void; protected _validateRef: (ref: string, refName: T) => void; protected _validateReusable: (reusable?: boolean) => void; /** * @throws if element param is invalid */ protected _validateCommonSubmitErrors: (element: ForageElementMap[T]) => void; /** * @throws {Error} if config is invalid */ private _validateConfig; protected _rejectWithForageError: (reject: (forageError: ForageError) => void) => (failureEvent: SubmitFailureEvent) => void; private _sessionTokenToEnv; private _parseMerchantId; }