import { CommonService } from '../common.service';
import { StripeService } from './stripe.service';
import { RazorpayService } from './razorpay-helper.service';
import { CashfreeService } from './cashfree-helper.service';
import { FlutterwaveService } from './flutterwave-helper.service';
import { PaytabService } from './paytab-helper.service';
import { DbService } from 'src/db/db.service';
import { PaymentGateway } from 'src/configuration/schema/app-configuration.schema';
export interface CreatePaymentParams {
    gateway?: PaymentGateway | string;
    amount: number;
    currency?: string;
    customer: any;
    order?: any;
    metadata?: any;
    req?: any;
    paymentFor?: string;
    redirect_url?: string;
}
export interface RefundParams {
    gateway?: PaymentGateway | string;
    paymentIntent?: string;
    amount?: number | string;
    paymentId?: string;
    orderId?: string;
    bookingId?: string;
    transactionId?: string;
}
export interface VerifyPaymentParams {
    gateway?: PaymentGateway | string;
    orderId?: string;
    paymentId?: string;
    signature?: string;
    transactionId?: string;
    rawBody?: string | Buffer;
    headers?: any;
}
export declare class GatewayHelper {
    private readonly stripeService;
    private readonly razorpayService;
    private readonly cashfreeService;
    private readonly flutterwaveService;
    private readonly paytabService;
    private readonly commonService;
    private readonly model;
    constructor(stripeService: StripeService, razorpayService: RazorpayService, cashfreeService: CashfreeService, flutterwaveService: FlutterwaveService, paytabService: PaytabService, commonService: CommonService, model: DbService);
    getActiveGateway(gateway?: PaymentGateway | string): Promise<string>;
    createPayment(params: CreatePaymentParams): Promise<any>;
    createOrder(params: CreatePaymentParams): Promise<any>;
    refund(params: RefundParams): Promise<any>;
    verifyPayment(params: VerifyPaymentParams): Promise<any>;
    fetchOrder(orderId: string, gateway?: PaymentGateway | string): Promise<any>;
}
