import * as t from './types'; import { EventCallback, Customer, PaymentIntent } from '../shared/types'; import { CardinalManager } from './cardinal'; import GatewayClient from '../shared/api-gateway-client'; import { Environment } from "../shared/env"; type ScaSource = 'verifyCard' | 'hpp'; export interface ScaRunProps { source?: ScaSource; cardToken: string; customer?: Customer; paymentIntent: PaymentIntent; bin: string; challengeWindowSize?: t.ChallengeWindowSize; } interface CustomerSnakeCase { first_name?: string; last_name?: string; email?: string; address?: string; city?: string; state?: string; postcode?: string; country?: string; } export interface ScaConfig { gatewayClient: GatewayClient; successCallback?: EventCallback | null; failureCallback?: EventCallback | null; environment?: Environment; } declare class Sca { static readonly displayName = "Sca"; private _cardinal; private enrollmentResult; private paymentIntent; private bin; private cardToken; private customer; private challengeWindowSize; private sessionId; private gatewayClient; private successCallback; private failureCallback; private environmentConfig; private source; constructor({ gatewayClient, successCallback, failureCallback }: ScaConfig); loadScript(): void; get cardinal(): CardinalManager; set cardinal(cardinal: CardinalManager); reportFailure(message: string, data?: any): void; reportSuccess(message: string, data: any): void; run(config: ScaRunProps): Promise; perform3DS({ sessionID }: { sessionID: string; }): Promise; createCardinalJWT(): Promise; check3DSEnrollment(): Promise; customerProperties(customer: Customer): CustomerSnakeCase; handleEnrollmentResult(enrollSCAResponse: t.EnrollSCAResponse): void; } export default Sca;