import { DbService } from 'src/db/db.service';
import { RazorpayService } from 'src/razorpay/razorpay.service';
import { CashfreeService } from 'src/cashfree/cashfree.service';
import { CommonService } from 'src/common/common.service';
import { EarningService } from './earning.service';
import * as mongoose from 'mongoose';
export declare class WithdrawService {
    private readonly model;
    private readonly razorpayService;
    private readonly cashfreeService;
    private readonly commonService;
    private readonly earningService;
    constructor(model: DbService, razorpayService: RazorpayService, cashfreeService: CashfreeService, commonService: CommonService, earningService: EarningService);
    createDriverWithdrawRequest(driver_id: string): Promise<{
        message: string;
        data: mongoose.Document<unknown, {}, import("./schema/withdraw-request.schema").WithdrawRequest, {}, {}> & import("./schema/withdraw-request.schema").WithdrawRequest & {
            _id: mongoose.Types.ObjectId;
        } & {
            __v: number;
        };
    }>;
    createVendorWithdrawRequest(vendor_id: string): Promise<{
        message: string;
        data: mongoose.Document<unknown, {}, import("./schema/withdraw-request.schema").WithdrawRequest, {}, {}> & import("./schema/withdraw-request.schema").WithdrawRequest & {
            _id: mongoose.Types.ObjectId;
        } & {
            __v: number;
        };
    }>;
    listWithdrawRequests(query: any): Promise<{
        data: (mongoose.Document<unknown, {}, import("./schema/withdraw-request.schema").WithdrawRequest, {}, {}> & import("./schema/withdraw-request.schema").WithdrawRequest & {
            _id: mongoose.Types.ObjectId;
        } & {
            __v: number;
        })[];
        total: number;
        page: number;
        limit: number;
        counts: {
            vendor_request_count: number;
            driver_request_count: number;
        };
    }>;
    approveWithdrawRequest(request_id: string, admin_id: string): Promise<{
        message: string;
        transaction_ref: string;
        amount: any;
        invoice_url: any;
    }>;
    rejectWithdrawRequest(request_id: string, admin_id: string, rejection_reason: string): Promise<{
        message: string;
        rejection_reason: string;
    }>;
    myWithdrawRequests(query: any, user_id: string, type: 'driver' | 'vendor'): Promise<{
        data: any[];
        total: number;
        page?: undefined;
        limit?: undefined;
    } | {
        data: (mongoose.Document<unknown, {}, import("./schema/withdraw-request.schema").WithdrawRequest, {}, {}> & import("./schema/withdraw-request.schema").WithdrawRequest & {
            _id: mongoose.Types.ObjectId;
        } & {
            __v: number;
        })[];
        total: number;
        page: number;
        limit: number;
    }>;
    handleWithdrawAction(request_id: string, admin_id: string, action: 'approved' | 'rejected', rejection_reason?: string): Promise<{
        message: string;
        transaction_ref: string;
        amount: any;
        invoice_url: any;
    } | {
        message: string;
        rejection_reason: string;
    }>;
}
