import BaseInterface from './base'; import Stripe from 'stripe'; import { PaymentStatusesEnum } from '../enums/payment-statuses.enum'; export default class StripeInterface extends BaseInterface { languages: string[]; currencies: string[]; testPayAmount: number; credentials: { publicKey?: string; secretKey?: string; }; protected apiClient: Stripe; constructor(); protected init(): void; protected productionConfigs(): { publishableKey: string; secretKey: string; }; protected developmentConfigs(): { publishableKey: string; secretKey: string; }; fetchTransactionId(queryParams: any): any; details: () => Promise<{ redirectBackData: any; checkoutSessionData: Stripe.Response; paymentIntent: Stripe.PaymentIntent; paymentStatus: PaymentStatusesEnum; }>; submit: () => Promise<{ transaction: string; session: Stripe.Response; publishableKey: any; }>; getOrCreateCustomer: ({ customer }: { customer: any; }) => Promise; getOrCreateSource: ({ card, customer }: { card: any; customer: any; }) => Promise<{ isAvailable: boolean; creditCard: Stripe.Response; msg?: undefined; } | { isAvailable: boolean; msg: string; creditCard?: undefined; }>; getCustomerSources: (customerId: any) => Promise; deleteSource: ({ cardId, customerId }: { cardId: any; customerId: any; }) => Promise>; createSubscription: ({ amount, currency, productName, customer, recharge, interval }: { amount: any; currency: any; productName: any; customer: any; recharge: any; interval?: string; }) => Promise>; updateSubscription: ({ id, recharge }: { id: any; recharge: any; }) => Promise>; cancelSubscription: ({ id }: { id: any; }) => Promise>; }