import Razorpay from "razorpay"; import { AbstractPaymentProcessor, Cart, CartService, Customer, CustomerService, Logger, PaymentProcessorContext, PaymentProcessorError, PaymentProcessorSessionResponse, PaymentSessionStatus } from "@medusajs/medusa"; import { PaymentIntentOptions, RazorpayOptions } from "../types"; import { Orders } from "razorpay/dist/types/orders"; import { Customers } from "razorpay/dist/types/customers"; /** * The paymentIntent object corresponds to a razorpay order. * */ declare abstract class RazorpayBase extends AbstractPaymentProcessor { static identifier: string; protected readonly options_: RazorpayOptions; protected razorpay_: Razorpay; logger: Logger; customerService: CustomerService; cartService: CartService; protected constructor(container: any, options: any); protected init(): void; abstract get paymentIntentOptions(): PaymentIntentOptions; getPaymentIntentOptions(): PaymentIntentOptions; _validateSignature(razorpay_payment_id: string, razorpay_order_id: string, razorpay_signature: string): boolean; getRazorpayPaymentStatus(paymentIntent: Orders.RazorpayOrder): Promise; getPaymentStatus(paymentSessionData: Record): Promise; updateRazorpayMetadatainCustomer(customer: Customer, parameterName: string, parameterValue: string): Promise; editExistingRpCustomer(customer: Customer, cart: Cart, intentRequest: any): Promise; createRazorpayCustomer(customer: Customer, cart: Cart, email: string, intentRequest: any): Promise; pollAndRetrieveCustomer(customer: Customer): Promise; fetchOrPollForCustomer(customer: Customer): Promise; createOrUpdateCustomer(intentRequest: any, customer: Customer, email: string, cartId: string): Promise; initiatePayment(context: PaymentProcessorContext): Promise; authorizePayment(paymentSessionData: Record, context?: Record): Promise; cancelPayment(paymentSessionData: Record): Promise; capturePayment(paymentSessionData: Record): Promise; deletePayment(paymentSessionData: Record): Promise; refundPayment(paymentSessionData: Record, refundAmount: number): Promise; retrievePayment(paymentSessionData: Record): Promise; updatePayment(context: PaymentProcessorContext): Promise; updatePaymentData(sessionId: string, data: Record): Promise; constructWebhookEvent(data: any, signature: any): boolean; protected buildError(message: string, e: PaymentProcessorError | Error): PaymentProcessorError; } export default RazorpayBase;