interface CardinalConfig { timeout?: number; maxRequestRetries?: number; logging?: { level: 'on' | 'off' | 'verbose'; }; } interface CardinalContinueObject { AcsUrl: string; Payload: string; } interface CardinalOrderObject { OrderDetails: { TransactionId: string; }; } interface CardinalSetupCompleteResponseData { sessionId: string; modules: { module: string; loaded: boolean; }[]; } interface PaymentValidatedResponseData { Validated: boolean; ErrorNumber: number; ErrorDescription: string; ActionCode: 'SUCCESS' | 'NOACTION' | 'FAILURE' | 'ERROR'; Payment: { OrderId: string; OrderNumber: string; ProcessorTransactionId: string; ReasonDescription: string; }; } interface PaymentValidatedDTO { processorTransactionId: string; jwt: string; } interface Cardinal { configure(config: CardinalConfig): void; continue(workflow: CardinalWorkflow, data: CardinalContinueObject, order: CardinalOrderObject): void; on(event: string, callback: (...data: any[]) => void): void; setup(workflow: CardinalWorkflow, data: any): void; trigger(event: string, cardBin: string): Promise; } interface ScaResult { success: boolean; type: 'frictionless' | 'challenge' | 'none'; error: string; } declare enum CardinalWorkflow { CCA = "cca", INIT = "init" } declare enum CardinalPaymentEvent { SETUP_COMPLETE = "payments.setupComplete", VALIDATED = "payments.validated" } export { CardinalWorkflow, CardinalPaymentEvent }; export type { CardinalConfig, CardinalContinueObject, CardinalOrderObject, CardinalSetupCompleteResponseData, PaymentValidatedResponseData, PaymentValidatedDTO, Cardinal, ScaResult, };