import { adminPaoutListDto, adminPayoutActionDto, adminPayoutTypeDto, VendorPayoutHistoryDto } from "./dto/payment.dto";
import { PaymentGateway } from "src/configuration/schema/app-configuration.schema";
import { MakePaymentDto, PaymentType } from './dto/payment.dto';
import { DbService } from 'src/db/db.service';
import { CommonService } from 'src/common/common.service';
import { Types } from 'mongoose';
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 { MessageKey } from 'src/common/helpers/message-keys.enum';
import { FlutterwaveService } from 'src/common/helpers/flutterwave-helper.service';
import { AddBankDto } from 'src/bank/dto/bank.dto';
export declare class PaymentService {
    private readonly model;
    private readonly commonService;
    private readonly stripeService;
    private readonly razorpayService;
    private readonly cashfreeService;
    private readonly flutterwaveService;
    constructor(model: DbService, commonService: CommonService, stripeService: StripeService, razorpayService: RazorpayService, cashfreeService: CashfreeService, flutterwaveService: FlutterwaveService);
    fetchOrderStatus(orderId: string): Promise<{
        order_status: any;
        order_success: boolean;
    }>;
    updateAfterPaymentSuccess(object: any): Promise<{}>;
    driverOrderUpdate(OrderId: any, status: any): Promise<import("mongoose").Document<unknown, {}, import("src/driver-products/schema/driver-order-schema").DriverOrders, {}, {}> & import("src/driver-products/schema/driver-order-schema").DriverOrders & {
        _id: Types.ObjectId;
    } & {
        __v: number;
    }>;
    walletUpdate(customer: any, wallet_amount: any): Promise<void>;
    driverWalletDeposit(driver: any, amount: any, payment_intent: any): Promise<void>;
    cateringUpdate(plate: any, vendor: any, pricing: any, payment_intent: any, srtipe_intentId: any): Promise<any>;
    bookingUpdate(booking: any, restaurant: any, vendor: any, payment_intent: any, srtipe_intentId: any): Promise<any>;
    makePayment(body: MakePaymentDto, req: any): Promise<any>;
    finishPaymentForAgent(paymentType: PaymentType, booking: any, payer: any, language: string, isBookingScheduled: boolean, scheduledBooking?: any, payment_id?: any): Promise<{
        message: any;
    }>;
    sendAgentBookingConfirmationEmail(booking: any, agentCustomer: any, agent: any, language?: string): Promise<void>;
    Add_money_to_wallet(amount: any, customer_id: any, currency: any, currency_convert_amount: any): Promise<{
        message: MessageKey;
    }>;
    add_money_to_wallet_company(amount: any, company_id: string, currency: string, currency_convert_amount: any): Promise<{
        message: MessageKey;
        wallet_balance: number;
    }>;
    addBank(body: AddBankDto, name: string, currency: any): Promise<import("stripe").Stripe.Response<import("stripe").Stripe.Token>>;
    uploadStripeDoc(file_url: any): Promise<import("stripe").Stripe.Response<import("stripe").Stripe.File>>;
    calculateFleetPayoutData(fleetId: string): Promise<{
        payments: (import("mongoose").Document<unknown, {}, import("./schema/payment.schema").Payments, {}, {}> & import("./schema/payment.schema").Payments & {
            _id: Types.ObjectId;
        } & {
            __v: number;
        })[];
        cashPayments: (import("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<import("stripe").Stripe.Response<import("stripe").Stripe.Account>>;
    uploadDoc(file: any): Promise<import("stripe").Stripe.Response<import("stripe").Stripe.File>>;
    transferMoney(): Promise<void>;
    transferMoneyToFleet(): Promise<void>;
    checkGatewayBalance(): Promise<number>;
    driverPendingPaymentUpdate(driver_id: any, week_start: any, week_end: any, onlyCashEnabled?: boolean): Promise<{
        message: MessageKey;
    }>;
    fleetPendingPaymentUpdate(fleet_id: any, week_start: any, week_end: any): Promise<{
        message: MessageKey;
    }>;
    handleRazorpayWebhook(req: any, signature: string): Promise<{
        received: boolean;
    }>;
    purchasePass(customerId: string, passTypeId: string, amount: number, transactionId: string): Promise<void>;
    sendPassInvoiceToMail(email: string, user: any, payload: {
        invoice_id: string;
        purchase_date: string;
        user_type: string;
        user_name: string;
        user_email: string;
        user_phone: string;
        pass_category: string;
        vehicle_type: string;
        validity: string;
        amount: number;
        transaction_id: string;
        payment_status: string;
    }): Promise<void>;
    purchaseSubscription(customerId: string, subscriptionTypeId: string, amount: number, transactionId: string): Promise<void>;
    purchaseFleetSubscription(customerId: string, subscriptionTypeId: string, amount: number, transactionId: string): Promise<void>;
    getPassExpiry(passCategory: string): Promise<number>;
    handleStripeWebhook(headers: any, body: any): Promise<{
        received: boolean;
    }>;
    webhook(req: any): Promise<{
        received: boolean;
    } | {
        status: string;
        received?: undefined;
    }>;
    handleFlutterwaveWebhook(headers: any, body: any): Promise<{
        status: string;
        received?: undefined;
    } | {
        received: boolean;
        status?: undefined;
    }>;
    webhookcashfree(req: any, rawBody: Buffer): Promise<void>;
    refund(pm_id: string): Promise<import("stripe").Stripe.Response<import("stripe").Stripe.Refund>>;
    orderUpdate(createOrder: any, restaurant: any, vendor: any, pricing: any, payment_status?: string): Promise<any>;
    PaymentConfirmed(order_id: String): Promise<{
        message: string;
    }>;
    PaymentWithCash(body: any, customer: any): Promise<import("mongoose").Document<unknown, {}, import("./schema/payment.schema").Payments, {}, {}> & import("./schema/payment.schema").Payments & {
        _id: Types.ObjectId;
    } & {
        __v: number;
    }>;
    checkStripeBalance(): Promise<number>;
    tax_to_be_paid(): Promise<number>;
    adminPayout(): Promise<{
        total_due_to_vendor: number;
        total_due_to_driver: number;
        total_balance_in_cashfree: number;
        tax_to_be_paid: number;
        amout_to_be_collected: number;
    }>;
    calculateTotalPaidAmountExcludingWallet(): Promise<number>;
    adminPayoutList(dto: adminPaoutListDto): Promise<{
        data: any;
        total: any;
        driver_count: any;
        vendor_count: any;
        restaurant_count: any;
    }>;
    driverPayoutPipeline(limit: any, skip: any): Promise<any[]>;
    vendorPayoutPipeline(limit: any, skip: any): Promise<any[]>;
    adminPayoutAction(dto: adminPayoutActionDto): Promise<{
        message: string;
    }>;
    adminPayoutType(dto: adminPayoutTypeDto): Promise<{
        message: string;
    }>;
    getVendorPayoutSummary(targetId?: string): Promise<{
        total_paid_balances: number;
        total_paid_balances_formatted: string;
        settled_to_date_description: string;
        total_paid_payouts_count: number;
        pending_balances: number;
        pending_balances_formatted: string;
        wallet_balance: number;
        wallet_balance_formatted: string;
        cod_due_amount: number;
        cod_due_amount_formatted: string;
        is_last_withdraw_req_pending: boolean;
        last_withdraw_reject_reason: any;
        orders_in_verification_window: number;
        pending_description: string;
        payout_frequency: string;
        payout_frequency_type: string;
        payout_schedule_label: string;
        payout_frequency_description: string;
        next_payout_date: string;
        next_payout_date_formatted: string;
        next_payout_timestamp: number;
        cycle_release_time: string;
        admin_approval: string;
        admin_payout_action: boolean;
        summary_cards: {
            total_paid: {
                title: string;
                amount: number;
                amount_formatted: string;
                subtext: string;
                payouts_count: number;
            };
            pending_balances: {
                title: string;
                amount: number;
                amount_formatted: string;
                subtext: string;
                orders_count: number;
            };
            payout_frequency: {
                title: string;
                cycle: string;
                subtext: string;
                type: string;
                schedule_days: any[];
            };
        };
        schedule_card: {
            title: string;
            active_schedule: string;
            next_payout: string;
            next_payout_date: string;
            cycle_release_time: string;
            admin_approval: string;
        };
        restaurant_info: {
            restaurant_id: any;
            restaurant_name: any;
            vendor_id: any;
            vendor_name: any;
            vendor_email: any;
            wallet_balance: number;
            cash_due_amount: number;
        };
    }>;
    getVendorPayoutHistory(targetId?: string, query?: VendorPayoutHistoryDto, isVendorScope?: boolean, vendorUser?: any): Promise<{
        data: any[];
        summary_stats: {
            total_gross_sales: number;
            total_gross_sales_formatted: string;
            total_admin_fees: number;
            total_admin_fees_formatted: string;
            total_net_paid: number;
            total_net_paid_formatted: string;
            total_payouts_count: number;
            successful_payouts_count: number;
            pending_payouts_count: number;
            failed_payouts_count: number;
        };
        pagination: {
            total: number;
            page: number;
            limit: number;
            totalPages: number;
        };
    }>;
    getVendorBankDetails(targetId: string, isVendorScope: boolean): Promise<{
        success: boolean;
        message: string;
        is_bank_added: boolean;
        payment_gateway?: undefined;
        data?: undefined;
    } | {
        success: boolean;
        is_bank_added: boolean;
        payment_gateway: PaymentGateway;
        data: {
            account_number: any;
            account_holder_name: any;
            bank_name: any;
            ifsc_code: any;
            country: any;
            currency: any;
            raw_details: any;
        };
        message?: undefined;
    }>;
    getDriverPayoutSummary(targetId?: string): Promise<{
        wallet_balance: number;
        cod_due_amount: number;
        pending_balances: number;
        cod_max_limit: number;
        is_last_withdraw_req_pending: boolean;
        last_withdraw_reject_reason: any;
        cod_blocked: boolean;
        total_paid_amount: any;
        total_distance: any;
        total_working_time: string;
    }>;
    getDriverPayoutHistory(targetId: string, query: any, isDriverScope?: boolean): Promise<any>;
    getDriverBankDetails(targetId: string): Promise<{
        success: boolean;
        message: string;
        is_bank_added: boolean;
        payment_gateway?: undefined;
        data?: undefined;
    } | {
        success: boolean;
        is_bank_added: boolean;
        payment_gateway: PaymentGateway;
        data: {
            account_number: any;
            account_holder_name: any;
            bank_name: any;
            ifsc_code: any;
            country: any;
            currency: any;
            raw_details: any;
        };
        message?: undefined;
    }>;
}
