import { MakePaymentDto, PaymentType } from './dto/payment.dto';
import { DbService } from 'src/db/db.service';
import Stripe from 'stripe';
import { CommonService } from 'src/common/common.service';
import { AddBankDto } from 'src/bank/dto/bank.dto';
import { BookingService } from 'src/booking/booking.service';
import { Types } from 'mongoose';
import { Request } from 'express';
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 mongoose from 'mongoose';
export declare class PaymentService {
    private readonly model;
    private readonly commonService;
    private readonly bookingService;
    private readonly stripeService;
    private readonly razorpayService;
    private readonly cashfreeService;
    constructor(model: DbService, commonService: CommonService, bookingService: BookingService, stripeService: StripeService, razorpayService: RazorpayService, cashfreeService: CashfreeService);
    make_payment(body: MakePaymentDto, req: any): Promise<{
        message: any;
    } | {
        client_secret: string;
        paymentIntent: string;
        status: Stripe.PaymentIntent.Status;
        requires_action: boolean;
        amount: number;
        ephemeralKey: any;
        customer: any;
        order_id?: undefined;
        cf_order_id?: undefined;
        payment_sessions_id?: undefined;
    } | {
        order_id: any;
        amount: number;
        client_secret?: undefined;
        paymentIntent?: undefined;
        status?: undefined;
        requires_action?: 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;
        paymentIntent?: undefined;
        status?: undefined;
        requires_action?: undefined;
        ephemeralKey?: undefined;
        customer?: undefined;
    }>;
    newMakePayment(body: MakePaymentDto, req: any): Promise<{
        client_secret: string;
        paymentIntent: string;
        status: Stripe.PaymentIntent.Status;
        requires_action: boolean;
        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;
        paymentIntent?: undefined;
        status?: undefined;
        requires_action?: 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;
        paymentIntent?: undefined;
        status?: undefined;
        requires_action?: undefined;
        ephemeralKey?: undefined;
        customer?: undefined;
    } | {
        message: any;
    }>;
    createPaymentOrder(body: MakePaymentDto, booking: any, customer: any): Promise<{
        client_secret: string;
        paymentIntent: string;
        status: Stripe.PaymentIntent.Status;
        requires_action: boolean;
        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;
        paymentIntent?: undefined;
        status?: undefined;
        requires_action?: 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;
        paymentIntent?: undefined;
        status?: undefined;
        requires_action?: undefined;
        ephemeralKey?: undefined;
        customer?: undefined;
    }>;
    finishPaymentForAgent(paymentType: PaymentType, booking: any, payer: any, language: string, isBookingScheduled: boolean, scheduledBooking?: any, payment_id?: any): Promise<{
        message: any;
    }>;
    private getPaymentDescription;
    finishPayment(paymentType: PaymentType, booking: any, payer: any, language: string, isBookingScheduled: boolean, scheduledBooking?: any): Promise<{
        message: any;
    }>;
    isAnyBookingScheduled(driver_id: string): Promise<{
        isBookingScheduled: boolean;
        scheduledBooking: mongoose.Document<unknown, {}, import("src/booking/schema/booking.schema").Booking, {}, {}> & import("src/booking/schema/booking.schema").Booking & {
            _id: Types.ObjectId;
        } & {
            __v: number;
        };
    }>;
    Add_money_to_wallet(amount: any, customer_id: any, currency: any, currency_convert_amount: any): Promise<{
        message: string;
    }>;
    add_money_to_wallet_company(amount: any, company_id: any, currency: any, currency_convert_amount: any): Promise<{
        message: string;
    }>;
    payment_with_wallet(customer: any, booking: any, language: any, scheduleBooking: any, schedule_booking: any): Promise<{
        message: any;
    }>;
    payment_with_card(body: any, booking: any, customer: any, language: any, scheduleBooking: any, schedule_booking: any): Promise<{
        message: any;
    }>;
    payment_with_pass(body: any, booking: any, customer: any, language: any): Promise<{
        message: any;
    }>;
    payment_with_credit(company: any, booking: any, language: string | number, scheduleBooking: boolean, schedule_booking: any): Promise<{
        message: any;
    }>;
    addBank(body: AddBankDto, name: string, currency: any): Promise<Stripe.Response<Stripe.Token>>;
    uploadStripeDoc(file_url: any): Promise<Stripe.Response<Stripe.File>>;
    calculateFleetPayoutData(fleetId: string): Promise<{
        payments: (mongoose.Document<unknown, {}, import("./schema/payment.schema").Payments, {}, {}> & import("./schema/payment.schema").Payments & {
            _id: Types.ObjectId;
        } & {
            __v: number;
        })[];
        cashPayments: (mongoose.Document<unknown, {}, import("./schema/payment.schema").Payments, {}, {}> & import("./schema/payment.schema").Payments & {
            _id: Types.ObjectId;
        } & {
            __v: number;
        })[];
        finalReferralAmount: number;
        totalPayoutAmount: number;
        totalEarningAmount: number;
        totalCommissionAmount: number;
        totalBaseFare: number;
        totalTip: number;
        totalToll: number;
        totalCashEarning: number;
        numberOfTrips: number;
        netPayout: number;
        driverOwes: boolean;
        pendingSubmitCash: any;
    }>;
    AddAccount(body: AddBankDto, bank_token_id: string, user: any, driver_customer_id: any, file_id: any): Promise<Stripe.Response<Stripe.Account>>;
    uploadDoc(file: any): Promise<Stripe.Response<Stripe.File>>;
    transferMoney(): Promise<void>;
    transferMoneyToFleet(): Promise<void>;
    checkGatewayBalance(): Promise<number>;
    driverPendingPaymentUpdate(driver_id: any, week_start: any, week_end: any): Promise<{
        message: string;
    }>;
    fleetPendingPaymentUpdate(fleet_id: any, week_start: any, week_end: any): Promise<{
        message: string;
    }>;
    handleRazorpayWebhook(req: Request, signature: string): Promise<{
        received: boolean;
    }>;
    purchasePass(customerId: string, passTypeId: string, amount: number): Promise<void>;
    purchaseSubscription(customerId: string, subscriptionTypeId: string, amount: number): Promise<void>;
    purchaseFleetSubscription(customerId: string, subscriptionTypeId: string, amount: number): Promise<void>;
    getPassExpiry(passCategory: string): Promise<number>;
    handleStripeWebhook(headers: any, body: any): Promise<{
        received: boolean;
    }>;
    webhook(req: any): Promise<{
        received: boolean;
    }>;
    webhookcashfree(req: any, rawBody: Buffer): Promise<void>;
}
