import mongoose from 'mongoose';
import { PaytabService } from 'src/paytab/paytab.service';
import { MessageKey } from 'src/common/helpers/message-keys.enum';
import { addMoneyDto } from './dto/wallet.dto';
import { DbService } from 'src/db/db.service';
import { BookingService } from 'src/booking/booking.service';
import { CommonService } from 'src/common/common.service';
import { StripeService } from 'src/common/helpers/stripe.service';
import { RazorpayService } from 'src/common/helpers/razorpay-helper.service';
import { CashfreeService } from 'src/common/helpers/cashfree-helper.service';
import { FlutterwaveService } from 'src/common/helpers/flutterwave-helper.service';
export declare class WalletService {
    private readonly commonService;
    private readonly stripeService;
    private readonly model;
    private readonly bookingService;
    private readonly razorpayService;
    private readonly cashfreeService;
    private readonly flutterwaveService;
    private readonly PaytabService;
    constructor(commonService: CommonService, stripeService: StripeService, model: DbService, bookingService: BookingService, razorpayService: RazorpayService, cashfreeService: CashfreeService, flutterwaveService: FlutterwaveService, PaytabService: PaytabService);
    get RazorpayService(): RazorpayService;
    get CashfreeService(): CashfreeService;
    create(body: addMoneyDto, customer_id: string): Promise<{
        amount: number;
        meta: any;
        ref_id: string;
    } | {
        client_secret: string;
        amount: number;
        ephemeralKey: any;
        customer: any;
        order_id?: undefined;
        cf_order_id?: undefined;
        payment_sessions_id?: undefined;
    } | {
        order_id: any;
        amount: any;
        client_secret?: undefined;
        ephemeralKey?: undefined;
        customer?: undefined;
        cf_order_id?: undefined;
        payment_sessions_id?: undefined;
    } | {
        order_id: any;
        cf_order_id: any;
        payment_sessions_id: any;
        amount: any;
        client_secret?: undefined;
        ephemeralKey?: undefined;
        customer?: undefined;
    }>;
    corporateAddMoneyToWallet(body: addMoneyDto, customer_id: string): Promise<{
        amount: number;
        meta: any;
        ref_id: string;
    } | {
        client_secret: string;
        amount: number;
        ephemeralKey: any;
        customer: any;
        order_id?: undefined;
        cf_order_id?: undefined;
        payment_sessions_id?: undefined;
    } | {
        order_id: any;
        amount: any;
        client_secret?: undefined;
        ephemeralKey?: undefined;
        customer?: undefined;
        cf_order_id?: undefined;
        payment_sessions_id?: undefined;
    } | {
        order_id: any;
        cf_order_id: any;
        payment_sessions_id: any;
        amount: any;
        client_secret?: undefined;
        ephemeralKey?: undefined;
        customer?: undefined;
    }>;
    findReferAll(payload: any, page: any, limit: any): Promise<{
        count: any;
        data: any;
    }>;
    findAll(customer_id: string, page: number, limit: number, req: any): Promise<{
        count: any;
        data: any[];
    }>;
    findAllCorporateTxn(company_id: any, page: number, limit: number, status: string): Promise<{
        count: number;
        data: any[];
    }>;
    withdrawMoney(body: addMoneyDto, customer_id: string, req: any): Promise<{
        message: MessageKey;
        payoutResponse: any;
    }>;
    private checkWithdrawalEligibility;
    private checkBankStatus;
    getWalletBalance(userId: string): Promise<{
        balance: number;
        refund_balance: number;
        promo_balance: number;
    }>;
    getWalletTransactions(userId: string, page?: number, limit?: number, debit_type?: string, wallet_type?: string): Promise<{
        total: number;
        page: number;
        limit: number;
        transactions: (mongoose.FlattenMaps<import("./entities/wallet-transaction.entity").WalletTransaction> & Required<{
            _id: mongoose.FlattenMaps<unknown>;
        }> & {
            __v: number;
        })[];
    }>;
    verifyAndCreditStripePayment(userId: string, payment_intent_id: string, amount: number): Promise<{
        balance: number;
    }>;
    createAddMoneyIntent(req: any, amount: number): Promise<{
        razorpay: {
            amount: any;
            currency: any;
            id: any;
            order_id: any;
            slot_id: any;
            plate_id: any;
        };
        amount: number;
        cashfree?: undefined;
        client_secret?: undefined;
        payment_intent_id?: undefined;
        ephemeralKey?: undefined;
        customer?: undefined;
        paytab?: undefined;
    } | {
        cashfree: {
            id: any;
            order_meta: any;
            payment_session_id: any;
        };
        amount: number;
        razorpay?: undefined;
        client_secret?: undefined;
        payment_intent_id?: undefined;
        ephemeralKey?: undefined;
        customer?: undefined;
        paytab?: undefined;
    } | {
        client_secret: string;
        payment_intent_id: string;
        ephemeralKey: string;
        customer: any;
        razorpay?: undefined;
        amount?: undefined;
        cashfree?: undefined;
        paytab?: undefined;
    } | {
        paytab: {
            redirect_url: any;
        };
        amount: number;
        razorpay?: undefined;
        cashfree?: undefined;
        client_secret?: undefined;
        payment_intent_id?: undefined;
        ephemeralKey?: undefined;
        customer?: undefined;
    }>;
}
