import { AssignDriverDto, AssignFleetDto, CalculateVehiclePriceDto, CancelBookingDto, CreateBookingByDispatcherDto, CreateBookingDto, DispatcherGetBookingsDto, DriverIdDto, DriverListOnDispatcherForAssignDto, ScheduleBookingDto, UpdateBookingDto } from './dto/booking.dto';
import { DbService } from 'src/db/db.service';
import { CommonService } from 'src/common/common.service';
import * as mongosse from 'mongoose';
import e from 'express';
import { EventEmitter2 } from '@nestjs/event-emitter';
import mongoose from 'mongoose';
import { BookingAggregation } from './booking.aggregation';
import { Types } from 'mongoose';
import { Booking, BookingDocment, RequestType } from './schema/booking.schema';
import { DriversDocment, Gender } from 'src/driver/schema/driver.schema';
import { BookingGateway } from './booking.gateway';
import { ActivityService } from 'src/activity/activity.service';
import { ServiceType } from 'src/vehicle/schema/vehicle.schema';
import { Response } from 'express';
import { CashfreeService } from 'src/common/helpers/cashfree-helper.service';
import { RedisService } from 'src/redis/redis.service';
import { CustomersDocment } from 'src/customer/schema/customer.schema';
export declare class BookingService {
    private readonly model;
    private readonly commonService;
    private readonly eventEmitter;
    private readonly bookingAggregation;
    private readonly bookingGateway;
    private readonly activityService;
    private readonly cashfreeService;
    private readonly redisService;
    constructor(model: DbService, commonService: CommonService, eventEmitter: EventEmitter2, bookingAggregation: BookingAggregation, bookingGateway: BookingGateway, activityService: ActivityService, cashfreeService: CashfreeService, redisService: RedisService);
    dispatcherDashboard(): Promise<{
        request: {
            total: number;
            today: number;
            weekly: number;
            monthly: number;
        };
        waiting_for_driver: {
            total: number;
            today: number;
            weekly: number;
            monthly: number;
        };
        available_driver: {
            total: number;
            today: number;
            weekly: number;
            monthly: number;
        };
        schedule_assign_to_driver: {
            total: number;
            today: number;
            weekly: number;
            monthly: number;
        };
    }>;
    socket_booking_accepted(booking_id: string): Promise<{
        socketIds: string[];
        booking_details: mongosse.Document<unknown, {}, Booking, {}, {}> & Booking & {
            _id: Types.ObjectId;
        } & {
            __v: number;
        };
    }>;
    BookingLogs(id: string): Promise<any>;
    getInvoice(res: Response, id: string, timezone: string): Promise<e.Response<any, Record<string, any>>>;
    private calculateBaseFee;
    create(body: CreateBookingDto, user_id: string): Promise<{
        message: string;
        data: any;
    }>;
    createBookingByDispatcher(body: CreateBookingByDispatcherDto, user_id: string): Promise<mongosse.Document<unknown, {}, Booking, {}, {}> & Booking & {
        _id: Types.ObjectId;
    } & {
        __v: number;
    }>;
    schedule_booking(body: ScheduleBookingDto, customer_id: string, dispatcher_id?: string): Promise<mongosse.Document<unknown, {}, Booking, {}, {}> & Booking & {
        _id: Types.ObjectId;
    } & {
        __v: number;
    }>;
    update(body: UpdateBookingDto, booking_id: any): Promise<{
        message: string;
    }>;
    availableDriverforThisBooking(id: string, payload: DriverIdDto): Promise<{
        data: (mongosse.FlattenMaps<{
            referral_id: string;
            name: string;
            email: string;
            driver_service_type: import("src/driver/schema/driver.schema").ServiceType;
            gender: Gender;
            country_code: string;
            rzr_contact_id: string;
            beneId: string;
            commission: number;
            service_prefrence: ServiceType[];
            vehicle_type_id: string;
            ulternate_vehicle_types: string[];
            phone: string;
            license_number: string;
            image: string;
            latitude: string;
            longitude: string;
            temp_email: string;
            temp_phone: string;
            temp_country_code: string;
            fleet_id: string;
            temp_email_otp: number;
            temp_phone_otp: number;
            temp_email_otp_at: number;
            temp_phone_otp_at: number;
            is_bank_added: boolean;
            is_active: boolean;
            is_block: boolean;
            is_approved: boolean;
            is_doc_update: boolean;
            approved_on: number;
            reject_on: number;
            referral_code: string;
            referral_amount: number;
            applied_referral_code: string;
            applied_referral_code_consumed: boolean;
            reject_reason: string;
            phase_start_at: number;
            total_online_time: number;
            total_on_pickup_time: number;
            total_on_ride_time: number;
            last_phase_start_at: number;
            is_email_verify: boolean;
            is_phone_verify: boolean;
            status: string;
            ride_status: string;
            device_type: string;
            preferred_language: string;
            preferred_currency: string;
            currency_symbol: string;
            pending_submit_cash: number;
            pending_submit_cash_upated_at: number;
            customer_id: string;
            current_booking: string;
            ratings: number;
            socket_id: string;
            connection_id: string;
            currently_send_ride_request: boolean;
            way_points: {
                lat: number;
                lng: number;
            }[];
            currently_send_ride_request_id: string;
            currently_send_ride_request_generate_at: number;
            heading: string;
            set_up_profile: boolean;
            set_up_vehicle: boolean;
            set_up_documents: boolean;
            block_reason: string;
            doc_expiry_type: string[];
            volunteer_ride_count: number;
            level: string;
            documents: {
                type_id: string;
                front_image_id: string;
                back_image_id: string;
                expire_date: number;
                is_expired: boolean;
            }[];
            missing_documents: mongoose.Types.ObjectId[];
            is_deleted: boolean;
            is_document_missing: boolean;
            timeZone: string;
            created_at: number;
            updated_at: number;
            payout_mode: import("src/configuration/schema/app-configuration.schema").PayoutType;
            selected_payout_mode: import("src/configuration/schema/app-configuration.schema").PayoutType;
            location: {
                type: string;
                coordinates: number[];
            };
        }> & {
            _id: Types.ObjectId;
        } & {
            __v: number;
        })[];
        count: number;
    }>;
    waitingForDriver(payload: DriverIdDto): Promise<{
        data: (mongosse.FlattenMaps<{
            customer_id: string;
            company_id: string;
            company_client_id: string;
            dispatcher_id: string;
            assigned_by: string;
            driver_id: string;
            agent_customer_id: string;
            agent_id: string;
            pass_id: mongosse.Types.ObjectId;
            booking_id: string;
            rzr_order_id: string;
            stripe_intent_id: string;
            payment_id: string;
            is_salaried_booking: boolean;
            cashfree_order_id: string;
            cashfree_refund_id: string;
            refund_confirmed: boolean;
            payment_session_id: string;
            you_earn: number;
            routeUrl: string;
            is_request_type_broadcast: boolean;
            request_type: RequestType;
            sender_name: string;
            sender_country_code: string;
            sender_number: string;
            receiver_name: string;
            receiver_country_code: string;
            commission_type: string;
            fleet_id: mongosse.Types.ObjectId;
            requested_fleet_id: mongosse.Types.ObjectId;
            receiver_number: string;
            is_broadcast: boolean;
            parcel_details: string;
            airport_pickup_charges: number;
            cancellation_charges: number;
            airport_drop_charges: number;
            arrived_at_intercity_destination: number;
            started_from_intercity_destination: number;
            coupon_id: string;
            vehicle_id: string;
            vehicleDetail_id: string;
            payment_confirmed: boolean;
            parcel_img_at_pickup: string;
            parcel_img_at_drop: string;
            payment_received: boolean;
            pickup_address: string;
            drop_address: string;
            pickup_lat: string;
            pickup_long: string;
            total_distance_covered: number;
            drop_lat: string;
            drop_long: string;
            stops: {
                name: string;
                lat: {
                    readonly [x: number]: string;
                    toString: () => string;
                    charAt: (pos: number) => string;
                    charCodeAt: (index: number) => number;
                    concat: (...strings: string[]) => string;
                    indexOf: (searchString: string, position?: number) => number;
                    lastIndexOf: (searchString: string, position?: number) => number;
                    localeCompare: {
                        (that: string): number;
                        (that: string, locales?: string | string[], options?: Intl.CollatorOptions): number;
                        (that: string, locales?: Intl.LocalesArgument, options?: Intl.CollatorOptions): number;
                    };
                    match: {
                        (regexp: string | RegExp): RegExpMatchArray | null;
                        (matcher: {
                            [Symbol.match](string: string): RegExpMatchArray | null;
                        }): RegExpMatchArray | null;
                    };
                    replace: {
                        (searchValue: string | RegExp, replaceValue: string): string;
                        (searchValue: string | RegExp, replacer: (substring: string, ...args: any[]) => string): string;
                        (searchValue: {
                            [Symbol.replace](string: string, replaceValue: string): string;
                        }, replaceValue: string): string;
                        (searchValue: {
                            [Symbol.replace](string: string, replacer: (substring: string, ...args: any[]) => string): string;
                        }, replacer: (substring: string, ...args: any[]) => string): string;
                    };
                    search: {
                        (regexp: string | RegExp): number;
                        (searcher: {
                            [Symbol.search](string: string): number;
                        }): number;
                    };
                    slice: (start?: number, end?: number) => string;
                    split: {
                        (separator: string | RegExp, limit?: number): string[];
                        (splitter: {
                            [Symbol.split](string: string, limit?: number): string[];
                        }, limit?: number): string[];
                    };
                    substring: (start: number, end?: number) => string;
                    toLowerCase: () => string;
                    toLocaleLowerCase: {
                        (locales?: string | string[]): string;
                        (locales?: Intl.LocalesArgument): string;
                    };
                    toUpperCase: () => string;
                    toLocaleUpperCase: {
                        (locales?: string | string[]): string;
                        (locales?: Intl.LocalesArgument): string;
                    };
                    trim: () => string;
                    readonly length: number;
                    substr: (from: number, length?: number) => string;
                    valueOf: () => string;
                    codePointAt: (pos: number) => number | undefined;
                    includes: (searchString: string, position?: number) => boolean;
                    endsWith: (searchString: string, endPosition?: number) => boolean;
                    normalize: {
                        (form: "NFC" | "NFD" | "NFKC" | "NFKD"): string;
                        (form?: string): string;
                    };
                    repeat: (count: number) => string;
                    startsWith: (searchString: string, position?: number) => boolean;
                    anchor: (name: string) => string;
                    big: () => string;
                    blink: () => string;
                    bold: () => string;
                    fixed: () => string;
                    fontcolor: (color: string) => string;
                    fontsize: {
                        (size: number): string;
                        (size: string): string;
                    };
                    italics: () => string;
                    link: (url: string) => string;
                    small: () => string;
                    strike: () => string;
                    sub: () => string;
                    sup: () => string;
                    padStart: (maxLength: number, fillString?: string) => string;
                    padEnd: (maxLength: number, fillString?: string) => string;
                    trimEnd: () => string;
                    trimStart: () => string;
                    trimLeft: () => string;
                    trimRight: () => string;
                    matchAll: (regexp: RegExp) => RegExpStringIterator<RegExpExecArray>;
                    replaceAll: {
                        (searchValue: string | RegExp, replaceValue: string): string;
                        (searchValue: string | RegExp, replacer: (substring: string, ...args: any[]) => string): string;
                    };
                    [Symbol.iterator]: () => StringIterator<string>;
                    at: (index: number) => string;
                };
                long: {
                    readonly [x: number]: string;
                    toString: () => string;
                    charAt: (pos: number) => string;
                    charCodeAt: (index: number) => number;
                    concat: (...strings: string[]) => string;
                    indexOf: (searchString: string, position?: number) => number;
                    lastIndexOf: (searchString: string, position?: number) => number;
                    localeCompare: {
                        (that: string): number;
                        (that: string, locales?: string | string[], options?: Intl.CollatorOptions): number;
                        (that: string, locales?: Intl.LocalesArgument, options?: Intl.CollatorOptions): number;
                    };
                    match: {
                        (regexp: string | RegExp): RegExpMatchArray | null;
                        (matcher: {
                            [Symbol.match](string: string): RegExpMatchArray | null;
                        }): RegExpMatchArray | null;
                    };
                    replace: {
                        (searchValue: string | RegExp, replaceValue: string): string;
                        (searchValue: string | RegExp, replacer: (substring: string, ...args: any[]) => string): string;
                        (searchValue: {
                            [Symbol.replace](string: string, replaceValue: string): string;
                        }, replaceValue: string): string;
                        (searchValue: {
                            [Symbol.replace](string: string, replacer: (substring: string, ...args: any[]) => string): string;
                        }, replacer: (substring: string, ...args: any[]) => string): string;
                    };
                    search: {
                        (regexp: string | RegExp): number;
                        (searcher: {
                            [Symbol.search](string: string): number;
                        }): number;
                    };
                    slice: (start?: number, end?: number) => string;
                    split: {
                        (separator: string | RegExp, limit?: number): string[];
                        (splitter: {
                            [Symbol.split](string: string, limit?: number): string[];
                        }, limit?: number): string[];
                    };
                    substring: (start: number, end?: number) => string;
                    toLowerCase: () => string;
                    toLocaleLowerCase: {
                        (locales?: string | string[]): string;
                        (locales?: Intl.LocalesArgument): string;
                    };
                    toUpperCase: () => string;
                    toLocaleUpperCase: {
                        (locales?: string | string[]): string;
                        (locales?: Intl.LocalesArgument): string;
                    };
                    trim: () => string;
                    readonly length: number;
                    substr: (from: number, length?: number) => string;
                    valueOf: () => string;
                    codePointAt: (pos: number) => number | undefined;
                    includes: (searchString: string, position?: number) => boolean;
                    endsWith: (searchString: string, endPosition?: number) => boolean;
                    normalize: {
                        (form: "NFC" | "NFD" | "NFKC" | "NFKD"): string;
                        (form?: string): string;
                    };
                    repeat: (count: number) => string;
                    startsWith: (searchString: string, position?: number) => boolean;
                    anchor: (name: string) => string;
                    big: () => string;
                    blink: () => string;
                    bold: () => string;
                    fixed: () => string;
                    fontcolor: (color: string) => string;
                    fontsize: {
                        (size: number): string;
                        (size: string): string;
                    };
                    italics: () => string;
                    link: (url: string) => string;
                    small: () => string;
                    strike: () => string;
                    sub: () => string;
                    sup: () => string;
                    padStart: (maxLength: number, fillString?: string) => string;
                    padEnd: (maxLength: number, fillString?: string) => string;
                    trimEnd: () => string;
                    trimStart: () => string;
                    trimLeft: () => string;
                    trimRight: () => string;
                    matchAll: (regexp: RegExp) => RegExpStringIterator<RegExpExecArray>;
                    replaceAll: {
                        (searchValue: string | RegExp, replaceValue: string): string;
                        (searchValue: string | RegExp, replacer: (substring: string, ...args: any[]) => string): string;
                    };
                    [Symbol.iterator]: () => StringIterator<string>;
                    at: (index: number) => string;
                };
            }[];
            app_commission: number;
            app_commission_value: number;
            app_commission_unit: string;
            arrived_at_stop_1: number;
            started_from_stop_1: number;
            total_rental_hours: number;
            total_hours: number;
            extra_hours: number;
            admin_amount: number;
            payout_amount: number;
            extra_hours_amount: number;
            extra_kms_amount: number;
            extra_kms: number;
            arrived_at_stop_2: number;
            started_from_stop_2: number;
            arrived_pickup_loc_at: number;
            schedule_date: number;
            booking_status: string;
            booking_type: string;
            ride_status: string;
            cancelled_reason: string;
            is_ride_started: boolean;
            sent_dispatch_noti: boolean;
            booking_reminder_noti: boolean;
            cancelled_by: string;
            payment_gateway: string;
            payment_method: string;
            payment_method_id: string;
            payment_status: string;
            distance_in_km: number;
            base_fee: number;
            base_fee_with_discount: number;
            stop_charges: number;
            surcharge_amount: number;
            agent_commission: number;
            surcharge_multiplier: number;
            toll_price: number;
            tip_driver: number;
            gst: number;
            commission_gst_amount: number;
            payout_gst_amount: number;
            coupon_discount: number;
            total_amount: number;
            return_trip_charges: number;
            night_stay_charges: number;
            gender_prefrence: import("./schema/booking.schema").GenderPrefrence;
            ride_otp: number;
            waiting_charge_per_min: number;
            is_waiting_charge_noti_send: boolean;
            is_stop1_charge_noti_send: boolean;
            is_stop2_charge_noti_send: boolean;
            rate_by_customer: boolean;
            rate_by_driver: boolean;
            extimated_delivery_time: string;
            start_ride_at: number;
            last_stop_charges_mins: number;
            return_trip: boolean;
            night_stay: boolean;
            last_stop2_charges_mins: number;
            last_start_ride_charges_mins: number;
            complete_delivery_at: number;
            is_volunteer: boolean;
            filter: string[];
            created_at: number;
            updated_at: number;
            requested_by: string;
            guest_name: string;
            guest_country_code: string;
            guest_phone: string;
            hourly_rate: number;
            hourly_km_rate: number;
            hourly_max_km: number;
            kms_limit: number;
            add_up_kms: number;
            insurance_fees: number;
            insurance_fees_multiplier: number;
            city_fees: number;
            city_fees_unit: string;
            infrastructure_fees: number;
            commission_percentage: number;
            intercity_commision_percentage: number;
            basic_trip_amount: number;
            total_trip_price_to_be_paid_by_customer: number;
            fare_breakdown: any;
            booking_for: string;
        }> & {
            _id: Types.ObjectId;
        } & {
            __v: number;
        })[];
        count: number;
    }>;
    get_booking(id: any, payload: any): Promise<{
        data: any;
    }>;
    available_rides(body: CalculateVehiclePriceDto, customer_id: any): Promise<{
        data: any[];
    }>;
    getPricingToConsider(lat: string, lng: string, vehicle_id: string, request_type: string): Promise<any>;
    availableRides(body: CalculateVehiclePriceDto, user_id: string): Promise<any[]>;
    available_coupons(body: any, user_id: any): Promise<any[]>;
    ApplyPromoCode(promo_code: any, req: any, customer_id: any): Promise<{
        data: any;
    }>;
    accept_booking(booking_id: any, driver_id: any): Promise<{
        data: mongosse.Document<unknown, {}, Booking, {}, {}> & Booking & {
            _id: Types.ObjectId;
        } & {
            __v: number;
        };
    }>;
    sendBookingAcceptedNotificationToCustomer(booking: BookingDocment, customer: CustomersDocment): Promise<void>;
    decline_booking(booking_id: any, driver_id: any): Promise<{
        message: string;
    }>;
    RideStatus(body: any): Promise<{
        message: string;
    }>;
    notifyCustomerForBookingStatus(booking_data: any, body: any): Promise<{
        message: string;
    }>;
    assignADriver(id: string, payload: AssignDriverDto, dispatcher_id: any, fleet_id: any): Promise<{
        message: string;
        booking_id?: undefined;
    } | {
        message: string;
        booking_id: string;
    }>;
    assignAFleet(id: string, payload: AssignFleetDto): Promise<{
        message: string;
        booking_data: mongosse.Document<unknown, {}, Booking, {}, {}> & Booking & {
            _id: Types.ObjectId;
        } & {
            __v: number;
        };
    }>;
    sent_broadcast_request_single_driver(booking: any, driverId: any, driver: any, dispatcher_id: any, fleet_id: any): Promise<void>;
    broadCastRequest(id: any, payload: any, fleet_id: any): Promise<{
        message: string;
    }>;
    sent_broadcast_request(booking: any, broadcast_type?: string, fleet_id?: string): Promise<void>;
    private getDriverLevel;
    Ride_Completed_old(id: any, tollAmount: number, driver_id: any, parcel_img: string): Promise<{
        message: string;
    }>;
    Ride_Completed(id: string, tollAmount: number, driver_id: string, parcel_img: string): Promise<{
        message: string;
    }>;
    handleUpdateHourlyPricing(booking_data: BookingDocment, driver: DriversDocment, data: any): Promise<void>;
    notifyCustomerForTripCompletion(booking: any): Promise<void>;
    notifyDriverForTripCompletion(booking: any): Promise<void>;
    getReciept(id: string, timezone?: string): Promise<{
        message: string;
    }>;
    Add_refre_money_to_wallet(customer_type: any, customer_id: any, booking_id: any, config_customer_referral_amount: any, customerApplied_applied_referral_code: any, wallet_type: any, wallet_status: any, refer_amount_consumed?: boolean): Promise<{
        message: string;
    }>;
    fetchDiffInDays: (timestampMs: any) => Promise<number>;
    addRefAmountForDriver: (driver_id: any, booking_data: any) => Promise<void>;
    addRefAmountForCustomer: (customer_id: string, booking_data: any) => Promise<void>;
    add_tip(booking_id: any, body: any, req: any, user_id: any): Promise<{
        message: string;
    }>;
    booking_listing(body: any, payload: any): Promise<{
        count: number;
        data: any[];
    }>;
    getOrderDetails(id: string): Promise<any>;
    booking_cancelled(booking_id: string, body: CancelBookingDto, payload: any, req: any): Promise<{
        message: any;
    }>;
    check_rides_under_5km_radius(pickup_lat: any, pick_up_long: any, filter: any, gender_prefrence: any): Promise<any[]>;
    find_drivers_for_request(pickup_lat: any, pick_up_long: any, vehicle_id: string, booking_id: any, filter: any, created_at: any, customer: any, gender_prefrence: any, algorithm?: string, request_type?: string): Promise<any[] | (mongosse.Document<unknown, {}, import("src/driver/schema/driver.schema").Drivers, {}, {}> & import("src/driver/schema/driver.schema").Drivers & {
        _id: Types.ObjectId;
    } & {
        __v: number;
    })>;
    find_drivers_for_rebroadcast(pickup_lat: any, pick_up_long: any, vehicle_id: string, booking_id: any, filter: any, created_at: any, customer: any, gender_prefrence: any, algorithm: string, requested_by: any): Promise<any[]>;
    find_drivers_for_round_robin(pickup_lat: any, pick_up_long: any, vehicle_id: string, booking_id: any, filter: any, created_at: any, customer: any, gender_prefrence: any): Promise<mongosse.Document<unknown, {}, import("src/driver/schema/driver.schema").Drivers, {}, {}> & import("src/driver/schema/driver.schema").Drivers & {
        _id: Types.ObjectId;
    } & {
        __v: number;
    }>;
    find_drivers_for_least_served(pickup_lat: any, pick_up_long: any, vehicle_id: string, booking_id: any, filter: any, created_at: any, customer: any, gender_prefrence: any): Promise<mongosse.Document<unknown, {}, import("src/driver/schema/driver.schema").Drivers, {}, {}> & import("src/driver/schema/driver.schema").Drivers & {
        _id: Types.ObjectId;
    } & {
        __v: number;
    }>;
    getTodayCompletedRides(driverId: string): Promise<number>;
    calculate_booking_amount(base_fee: any, coupon_amount: any, surcharge_amount: number, locationSurchargeMultiplier: number, commission_percentage: number, pricing: any, insurance_fees: any): Promise<{
        commission_gst_amount: any;
        payout_gst_amount: any;
        coupan_discount_amount: any;
        total_amount: number;
        surcharge_amount: any;
        app_commission: number;
        app_commission_value: any;
        app_commission_unit: any;
    }>;
    calculate_coupon_discount(coupon_id: any, base_fee: any, user_id: any, surcharge_amount: any, locationSurchargeMultiplier?: number): Promise<any>;
    create_booking(body: any, calculation_data: any, coupon_amount: any, user_id: any, distance: any, base_fee: any, base_fee_discount: any, vehicle_pricing: any, dispatcher_id?: any, return_trip_charges?: number, insurance_fees?: number, airport_pickup_charges?: number, airport_drop_charges?: number): Promise<mongosse.Document<unknown, {}, Booking, {}, {}> & Booking & {
        _id: Types.ObjectId;
    } & {
        __v: number;
    }>;
    generateOtp(): Promise<number>;
    createBookingId(): string;
    send_ride_request_to_drivers(data: any, customer: any): Promise<unknown>;
    rebroadcastBooking(data: any, customer: any): Promise<void>;
    roundRobin(data: any, customer: any): Promise<unknown>;
    leastServed(data: any, customer: any): Promise<unknown>;
    find_booking_with_id(id: any): Promise<any>;
    findBookingWithSocket(id: any, payload: any): Promise<any>;
    findBookingWithSocketForDriver(id: any): Promise<any>;
    update_booking_with_id(id: any, data: any): Promise<void>;
    update_driver_status(id: any, data: any): Promise<void>;
    fetch_fcm_token(customer_id: any): Promise<(mongosse.Document<unknown, {}, import("../customer/schema/session.schema").Sessions, {}, {}> & import("../customer/schema/session.schema").Sessions & {
        _id: Types.ObjectId;
    } & {
        __v: number;
    })[]>;
    scheduled_Booking_noti(): Promise<void>;
    broadcasting(booking: any): Promise<void>;
    convert_currency(currency: any, data: any): Promise<{
        convertedBaseFee: number;
        convertedCouponAmount: number;
        convertedGstAmount: number;
        convertedTotalAmount: number;
        convertedStopCharges: number;
    }>;
    convert_currency_get_booking(currency: any, data: any): Promise<{
        convertedBaseFee: number;
        convertedCouponAmount: number;
        convertedGstAmount: number;
        convertedTotalAmount: number;
        convertedStopCharges: number;
        convertedBaseFeeWithDiscount: number;
        convertedTollCharge: number;
        convertedTipAmount: number;
        convertedSurchargeAmount: number;
    }>;
    convert_currency_for_driver_wallet(currency: any, data: any): Promise<{
        convertedTipsFromRider: number;
        convertedTotalTripsAmount: number;
        convertedAmountToBePaid: number;
        convertedAppCommission: number;
        convertedYouNeedToPay: number;
        convertedCashYouHave: number;
        convertedTotalAmountToBePaid: number;
        convertedAmountPaid: number;
        convertedTotalTaxAmount: number;
    }>;
    convert_payment_amount(currency: any, payment_amount: any): Promise<number>;
    convert_payment_amount_for_booking(currency: any, payment_amount: any): Promise<number>;
    convert_wallet_amount_listing(currency: any, payment_amount: any): Promise<number>;
    convert_wallet_amount(currency: any, payment_amount: any): Promise<number>;
    convert_coupon_amount(currency: any, payment_amount: any, minimum_booking_amount: any): Promise<{
        minimum_booking_amount: number;
        convertedPaymentAmount: number;
    }>;
    listOfDriverForAssinByDispatcher(req: any, dto: DriverListOnDispatcherForAssignDto): Promise<{
        data: any;
        count: any;
    }>;
    check_surcharge_date(vehicle_id: string, lat: any, long: any, timeZone: string | 'Asia/Kolkata', scheduleTime?: number): Promise<Number>;
    calculateWeekdays(dayName: any, current: any): Promise<mongosse.Document<unknown, {}, import("../surcharge/schema/surcharge-dates.schema").SurchargeDates, {}, {}> & import("../surcharge/schema/surcharge-dates.schema").SurchargeDates & {
        _id: Types.ObjectId;
    } & {
        __v: number;
    }>;
    AdminBookingListing(body: any): Promise<{
        data: (mongosse.Document<unknown, {}, Booking, {}, {}> & Booking & {
            _id: Types.ObjectId;
        } & {
            __v: number;
        })[];
        active_count?: undefined;
        completed_count?: undefined;
        cancelled_count?: undefined;
        failed_count?: undefined;
        schedule_count?: undefined;
        count?: undefined;
    } | {
        active_count: number;
        completed_count: number;
        cancelled_count: number;
        failed_count: number;
        schedule_count: number;
        count: number;
        data: (mongosse.Document<unknown, {}, Booking, {}, {}> & Booking & {
            _id: Types.ObjectId;
        } & {
            __v: number;
        })[];
    }>;
    AdminBookingListingExport(body: any): Promise<{
        data: (mongosse.FlattenMaps<{
            customer_id: string;
            company_id: string;
            company_client_id: string;
            dispatcher_id: string;
            assigned_by: string;
            driver_id: string;
            agent_customer_id: string;
            agent_id: string;
            pass_id: mongosse.Types.ObjectId;
            booking_id: string;
            rzr_order_id: string;
            stripe_intent_id: string;
            payment_id: string;
            is_salaried_booking: boolean;
            cashfree_order_id: string;
            cashfree_refund_id: string;
            refund_confirmed: boolean;
            payment_session_id: string;
            you_earn: number;
            routeUrl: string;
            is_request_type_broadcast: boolean;
            request_type: RequestType;
            sender_name: string;
            sender_country_code: string;
            sender_number: string;
            receiver_name: string;
            receiver_country_code: string;
            commission_type: string;
            fleet_id: mongosse.Types.ObjectId;
            requested_fleet_id: mongosse.Types.ObjectId;
            receiver_number: string;
            is_broadcast: boolean;
            parcel_details: string;
            airport_pickup_charges: number;
            cancellation_charges: number;
            airport_drop_charges: number;
            arrived_at_intercity_destination: number;
            started_from_intercity_destination: number;
            coupon_id: string;
            vehicle_id: string;
            vehicleDetail_id: string;
            payment_confirmed: boolean;
            parcel_img_at_pickup: string;
            parcel_img_at_drop: string;
            payment_received: boolean;
            pickup_address: string;
            drop_address: string;
            pickup_lat: string;
            pickup_long: string;
            total_distance_covered: number;
            drop_lat: string;
            drop_long: string;
            stops: {
                name: string;
                lat: {
                    readonly [x: number]: string;
                    toString: () => string;
                    charAt: (pos: number) => string;
                    charCodeAt: (index: number) => number;
                    concat: (...strings: string[]) => string;
                    indexOf: (searchString: string, position?: number) => number;
                    lastIndexOf: (searchString: string, position?: number) => number;
                    localeCompare: {
                        (that: string): number;
                        (that: string, locales?: string | string[], options?: Intl.CollatorOptions): number;
                        (that: string, locales?: Intl.LocalesArgument, options?: Intl.CollatorOptions): number;
                    };
                    match: {
                        (regexp: string | RegExp): RegExpMatchArray | null;
                        (matcher: {
                            [Symbol.match](string: string): RegExpMatchArray | null;
                        }): RegExpMatchArray | null;
                    };
                    replace: {
                        (searchValue: string | RegExp, replaceValue: string): string;
                        (searchValue: string | RegExp, replacer: (substring: string, ...args: any[]) => string): string;
                        (searchValue: {
                            [Symbol.replace](string: string, replaceValue: string): string;
                        }, replaceValue: string): string;
                        (searchValue: {
                            [Symbol.replace](string: string, replacer: (substring: string, ...args: any[]) => string): string;
                        }, replacer: (substring: string, ...args: any[]) => string): string;
                    };
                    search: {
                        (regexp: string | RegExp): number;
                        (searcher: {
                            [Symbol.search](string: string): number;
                        }): number;
                    };
                    slice: (start?: number, end?: number) => string;
                    split: {
                        (separator: string | RegExp, limit?: number): string[];
                        (splitter: {
                            [Symbol.split](string: string, limit?: number): string[];
                        }, limit?: number): string[];
                    };
                    substring: (start: number, end?: number) => string;
                    toLowerCase: () => string;
                    toLocaleLowerCase: {
                        (locales?: string | string[]): string;
                        (locales?: Intl.LocalesArgument): string;
                    };
                    toUpperCase: () => string;
                    toLocaleUpperCase: {
                        (locales?: string | string[]): string;
                        (locales?: Intl.LocalesArgument): string;
                    };
                    trim: () => string;
                    readonly length: number;
                    substr: (from: number, length?: number) => string;
                    valueOf: () => string;
                    codePointAt: (pos: number) => number | undefined;
                    includes: (searchString: string, position?: number) => boolean;
                    endsWith: (searchString: string, endPosition?: number) => boolean;
                    normalize: {
                        (form: "NFC" | "NFD" | "NFKC" | "NFKD"): string;
                        (form?: string): string;
                    };
                    repeat: (count: number) => string;
                    startsWith: (searchString: string, position?: number) => boolean;
                    anchor: (name: string) => string;
                    big: () => string;
                    blink: () => string;
                    bold: () => string;
                    fixed: () => string;
                    fontcolor: (color: string) => string;
                    fontsize: {
                        (size: number): string;
                        (size: string): string;
                    };
                    italics: () => string;
                    link: (url: string) => string;
                    small: () => string;
                    strike: () => string;
                    sub: () => string;
                    sup: () => string;
                    padStart: (maxLength: number, fillString?: string) => string;
                    padEnd: (maxLength: number, fillString?: string) => string;
                    trimEnd: () => string;
                    trimStart: () => string;
                    trimLeft: () => string;
                    trimRight: () => string;
                    matchAll: (regexp: RegExp) => RegExpStringIterator<RegExpExecArray>;
                    replaceAll: {
                        (searchValue: string | RegExp, replaceValue: string): string;
                        (searchValue: string | RegExp, replacer: (substring: string, ...args: any[]) => string): string;
                    };
                    [Symbol.iterator]: () => StringIterator<string>;
                    at: (index: number) => string;
                };
                long: {
                    readonly [x: number]: string;
                    toString: () => string;
                    charAt: (pos: number) => string;
                    charCodeAt: (index: number) => number;
                    concat: (...strings: string[]) => string;
                    indexOf: (searchString: string, position?: number) => number;
                    lastIndexOf: (searchString: string, position?: number) => number;
                    localeCompare: {
                        (that: string): number;
                        (that: string, locales?: string | string[], options?: Intl.CollatorOptions): number;
                        (that: string, locales?: Intl.LocalesArgument, options?: Intl.CollatorOptions): number;
                    };
                    match: {
                        (regexp: string | RegExp): RegExpMatchArray | null;
                        (matcher: {
                            [Symbol.match](string: string): RegExpMatchArray | null;
                        }): RegExpMatchArray | null;
                    };
                    replace: {
                        (searchValue: string | RegExp, replaceValue: string): string;
                        (searchValue: string | RegExp, replacer: (substring: string, ...args: any[]) => string): string;
                        (searchValue: {
                            [Symbol.replace](string: string, replaceValue: string): string;
                        }, replaceValue: string): string;
                        (searchValue: {
                            [Symbol.replace](string: string, replacer: (substring: string, ...args: any[]) => string): string;
                        }, replacer: (substring: string, ...args: any[]) => string): string;
                    };
                    search: {
                        (regexp: string | RegExp): number;
                        (searcher: {
                            [Symbol.search](string: string): number;
                        }): number;
                    };
                    slice: (start?: number, end?: number) => string;
                    split: {
                        (separator: string | RegExp, limit?: number): string[];
                        (splitter: {
                            [Symbol.split](string: string, limit?: number): string[];
                        }, limit?: number): string[];
                    };
                    substring: (start: number, end?: number) => string;
                    toLowerCase: () => string;
                    toLocaleLowerCase: {
                        (locales?: string | string[]): string;
                        (locales?: Intl.LocalesArgument): string;
                    };
                    toUpperCase: () => string;
                    toLocaleUpperCase: {
                        (locales?: string | string[]): string;
                        (locales?: Intl.LocalesArgument): string;
                    };
                    trim: () => string;
                    readonly length: number;
                    substr: (from: number, length?: number) => string;
                    valueOf: () => string;
                    codePointAt: (pos: number) => number | undefined;
                    includes: (searchString: string, position?: number) => boolean;
                    endsWith: (searchString: string, endPosition?: number) => boolean;
                    normalize: {
                        (form: "NFC" | "NFD" | "NFKC" | "NFKD"): string;
                        (form?: string): string;
                    };
                    repeat: (count: number) => string;
                    startsWith: (searchString: string, position?: number) => boolean;
                    anchor: (name: string) => string;
                    big: () => string;
                    blink: () => string;
                    bold: () => string;
                    fixed: () => string;
                    fontcolor: (color: string) => string;
                    fontsize: {
                        (size: number): string;
                        (size: string): string;
                    };
                    italics: () => string;
                    link: (url: string) => string;
                    small: () => string;
                    strike: () => string;
                    sub: () => string;
                    sup: () => string;
                    padStart: (maxLength: number, fillString?: string) => string;
                    padEnd: (maxLength: number, fillString?: string) => string;
                    trimEnd: () => string;
                    trimStart: () => string;
                    trimLeft: () => string;
                    trimRight: () => string;
                    matchAll: (regexp: RegExp) => RegExpStringIterator<RegExpExecArray>;
                    replaceAll: {
                        (searchValue: string | RegExp, replaceValue: string): string;
                        (searchValue: string | RegExp, replacer: (substring: string, ...args: any[]) => string): string;
                    };
                    [Symbol.iterator]: () => StringIterator<string>;
                    at: (index: number) => string;
                };
            }[];
            app_commission: number;
            app_commission_value: number;
            app_commission_unit: string;
            arrived_at_stop_1: number;
            started_from_stop_1: number;
            total_rental_hours: number;
            total_hours: number;
            extra_hours: number;
            admin_amount: number;
            payout_amount: number;
            extra_hours_amount: number;
            extra_kms_amount: number;
            extra_kms: number;
            arrived_at_stop_2: number;
            started_from_stop_2: number;
            arrived_pickup_loc_at: number;
            schedule_date: number;
            booking_status: string;
            booking_type: string;
            ride_status: string;
            cancelled_reason: string;
            is_ride_started: boolean;
            sent_dispatch_noti: boolean;
            booking_reminder_noti: boolean;
            cancelled_by: string;
            payment_gateway: string;
            payment_method: string;
            payment_method_id: string;
            payment_status: string;
            distance_in_km: number;
            base_fee: number;
            base_fee_with_discount: number;
            stop_charges: number;
            surcharge_amount: number;
            agent_commission: number;
            surcharge_multiplier: number;
            toll_price: number;
            tip_driver: number;
            gst: number;
            commission_gst_amount: number;
            payout_gst_amount: number;
            coupon_discount: number;
            total_amount: number;
            return_trip_charges: number;
            night_stay_charges: number;
            gender_prefrence: import("./schema/booking.schema").GenderPrefrence;
            ride_otp: number;
            waiting_charge_per_min: number;
            is_waiting_charge_noti_send: boolean;
            is_stop1_charge_noti_send: boolean;
            is_stop2_charge_noti_send: boolean;
            rate_by_customer: boolean;
            rate_by_driver: boolean;
            extimated_delivery_time: string;
            start_ride_at: number;
            last_stop_charges_mins: number;
            return_trip: boolean;
            night_stay: boolean;
            last_stop2_charges_mins: number;
            last_start_ride_charges_mins: number;
            complete_delivery_at: number;
            is_volunteer: boolean;
            filter: string[];
            created_at: number;
            updated_at: number;
            requested_by: string;
            guest_name: string;
            guest_country_code: string;
            guest_phone: string;
            hourly_rate: number;
            hourly_km_rate: number;
            hourly_max_km: number;
            kms_limit: number;
            add_up_kms: number;
            insurance_fees: number;
            insurance_fees_multiplier: number;
            city_fees: number;
            city_fees_unit: string;
            infrastructure_fees: number;
            commission_percentage: number;
            intercity_commision_percentage: number;
            basic_trip_amount: number;
            total_trip_price_to_be_paid_by_customer: number;
            fare_breakdown: any;
            booking_for: string;
        }> & {
            _id: Types.ObjectId;
        } & {
            __v: number;
        })[];
    }>;
    AdminBookingDetail(id: any): Promise<{
        data: any;
    }>;
    check_stop_time(reached_at: any, departure_at: any, booking_data: any): Promise<void>;
    recived_payment(booking_id: any, driver_id: any): Promise<{
        message: string;
    }>;
    updateBookingInfo(body: any, customer_id: any): Promise<{
        message: string;
    }>;
    CheckScheduleBooking(customer_id: any, query: any): Promise<{
        can_request: boolean;
        message?: undefined;
    } | {
        can_request: boolean;
        message: string;
    }>;
    check_pickup_to_start_ride_time(start_ride_at: any, booking: any): Promise<void>;
    current_ride_request_socket(user_id: any): Promise<{
        driver: {
            socket_id: string;
            _id: Types.ObjectId;
            $locals: Record<string, unknown>;
            $op: "save" | "validate" | "remove" | null;
            $where: Record<string, unknown>;
            baseModelName?: string;
            collection: mongosse.Collection;
            db: mongosse.Connection;
            errors?: mongosse.Error.ValidationError;
            id?: any;
            isNew: boolean;
            schema: mongosse.Schema;
            referral_id: string;
            name: string;
            email: string;
            driver_service_type: import("src/driver/schema/driver.schema").ServiceType;
            gender: Gender;
            country_code: string;
            rzr_contact_id: string;
            beneId: string;
            commission: number;
            service_prefrence: ServiceType[];
            vehicle_type_id: string;
            ulternate_vehicle_types: string[];
            phone: string;
            license_number: string;
            image: string;
            latitude: string;
            longitude: string;
            temp_email: string;
            temp_phone: string;
            temp_country_code: string;
            fleet_id: string;
            temp_email_otp: number;
            temp_phone_otp: number;
            temp_email_otp_at: number;
            temp_phone_otp_at: number;
            is_bank_added: boolean;
            is_active: boolean;
            is_block: boolean;
            is_approved: boolean;
            is_doc_update: boolean;
            approved_on: number;
            reject_on: number;
            referral_code: string;
            referral_amount: number;
            applied_referral_code: string;
            applied_referral_code_consumed: boolean;
            reject_reason: string;
            phase_start_at: number;
            total_online_time: number;
            total_on_pickup_time: number;
            total_on_ride_time: number;
            last_phase_start_at: number;
            is_email_verify: boolean;
            is_phone_verify: boolean;
            status: string;
            ride_status: string;
            device_type: string;
            preferred_language: string;
            preferred_currency: string;
            currency_symbol: string;
            pending_submit_cash: number;
            pending_submit_cash_upated_at: number;
            customer_id: string;
            current_booking: string;
            ratings: number;
            connection_id: string;
            currently_send_ride_request: boolean;
            way_points: {
                lat: number;
                lng: number;
            }[];
            currently_send_ride_request_id: string;
            currently_send_ride_request_generate_at: number;
            heading: string;
            set_up_profile: boolean;
            set_up_vehicle: boolean;
            set_up_documents: boolean;
            block_reason: string;
            doc_expiry_type: string[];
            volunteer_ride_count: number;
            level: string;
            documents: {
                type_id: string;
                front_image_id: string;
                back_image_id: string;
                expire_date: number;
                is_expired: boolean;
            }[];
            missing_documents: mongoose.Types.ObjectId[];
            is_deleted: boolean;
            is_document_missing: boolean;
            timeZone: string;
            created_at: number;
            updated_at: number;
            payout_mode: import("src/configuration/schema/app-configuration.schema").PayoutType;
            selected_payout_mode: import("src/configuration/schema/app-configuration.schema").PayoutType;
            location: {
                type: string;
                coordinates: number[];
            };
            __v: number;
        };
        booking: any;
    }>;
    cancel_request(id: any, customer_id: any): Promise<{
        message: any;
    }>;
    WaitingChargeCron(): Promise<void>;
    private applyWaitingCharge;
    socketWaitingChargeNoti(booking_id: any): Promise<{
        data: {
            customer: string;
            driver: string;
            booking: mongosse.Document<unknown, {}, Booking, {}, {}> & Booking & {
                _id: Types.ObjectId;
            } & {
                __v: number;
            };
        };
    }>;
    CheckCoupon(coupon_id: any): Promise<{
        data: any;
    }>;
    findDriversInSameCity(pick_up_lat: string, pick_up_long: string, vehicle_id: any): Promise<number>;
    dispatcherBookingList(payload: DispatcherGetBookingsDto, dispatcher_id: string): Promise<{
        data: (mongosse.FlattenMaps<{
            customer_id: string;
            company_id: string;
            company_client_id: string;
            dispatcher_id: string;
            assigned_by: string;
            driver_id: string;
            agent_customer_id: string;
            agent_id: string;
            pass_id: mongosse.Types.ObjectId;
            booking_id: string;
            rzr_order_id: string;
            stripe_intent_id: string;
            payment_id: string;
            is_salaried_booking: boolean;
            cashfree_order_id: string;
            cashfree_refund_id: string;
            refund_confirmed: boolean;
            payment_session_id: string;
            you_earn: number;
            routeUrl: string;
            is_request_type_broadcast: boolean;
            request_type: RequestType;
            sender_name: string;
            sender_country_code: string;
            sender_number: string;
            receiver_name: string;
            receiver_country_code: string;
            commission_type: string;
            fleet_id: mongosse.Types.ObjectId;
            requested_fleet_id: mongosse.Types.ObjectId;
            receiver_number: string;
            is_broadcast: boolean;
            parcel_details: string;
            airport_pickup_charges: number;
            cancellation_charges: number;
            airport_drop_charges: number;
            arrived_at_intercity_destination: number;
            started_from_intercity_destination: number;
            coupon_id: string;
            vehicle_id: string;
            vehicleDetail_id: string;
            payment_confirmed: boolean;
            parcel_img_at_pickup: string;
            parcel_img_at_drop: string;
            payment_received: boolean;
            pickup_address: string;
            drop_address: string;
            pickup_lat: string;
            pickup_long: string;
            total_distance_covered: number;
            drop_lat: string;
            drop_long: string;
            stops: {
                name: string;
                lat: {
                    readonly [x: number]: string;
                    toString: () => string;
                    charAt: (pos: number) => string;
                    charCodeAt: (index: number) => number;
                    concat: (...strings: string[]) => string;
                    indexOf: (searchString: string, position?: number) => number;
                    lastIndexOf: (searchString: string, position?: number) => number;
                    localeCompare: {
                        (that: string): number;
                        (that: string, locales?: string | string[], options?: Intl.CollatorOptions): number;
                        (that: string, locales?: Intl.LocalesArgument, options?: Intl.CollatorOptions): number;
                    };
                    match: {
                        (regexp: string | RegExp): RegExpMatchArray | null;
                        (matcher: {
                            [Symbol.match](string: string): RegExpMatchArray | null;
                        }): RegExpMatchArray | null;
                    };
                    replace: {
                        (searchValue: string | RegExp, replaceValue: string): string;
                        (searchValue: string | RegExp, replacer: (substring: string, ...args: any[]) => string): string;
                        (searchValue: {
                            [Symbol.replace](string: string, replaceValue: string): string;
                        }, replaceValue: string): string;
                        (searchValue: {
                            [Symbol.replace](string: string, replacer: (substring: string, ...args: any[]) => string): string;
                        }, replacer: (substring: string, ...args: any[]) => string): string;
                    };
                    search: {
                        (regexp: string | RegExp): number;
                        (searcher: {
                            [Symbol.search](string: string): number;
                        }): number;
                    };
                    slice: (start?: number, end?: number) => string;
                    split: {
                        (separator: string | RegExp, limit?: number): string[];
                        (splitter: {
                            [Symbol.split](string: string, limit?: number): string[];
                        }, limit?: number): string[];
                    };
                    substring: (start: number, end?: number) => string;
                    toLowerCase: () => string;
                    toLocaleLowerCase: {
                        (locales?: string | string[]): string;
                        (locales?: Intl.LocalesArgument): string;
                    };
                    toUpperCase: () => string;
                    toLocaleUpperCase: {
                        (locales?: string | string[]): string;
                        (locales?: Intl.LocalesArgument): string;
                    };
                    trim: () => string;
                    readonly length: number;
                    substr: (from: number, length?: number) => string;
                    valueOf: () => string;
                    codePointAt: (pos: number) => number | undefined;
                    includes: (searchString: string, position?: number) => boolean;
                    endsWith: (searchString: string, endPosition?: number) => boolean;
                    normalize: {
                        (form: "NFC" | "NFD" | "NFKC" | "NFKD"): string;
                        (form?: string): string;
                    };
                    repeat: (count: number) => string;
                    startsWith: (searchString: string, position?: number) => boolean;
                    anchor: (name: string) => string;
                    big: () => string;
                    blink: () => string;
                    bold: () => string;
                    fixed: () => string;
                    fontcolor: (color: string) => string;
                    fontsize: {
                        (size: number): string;
                        (size: string): string;
                    };
                    italics: () => string;
                    link: (url: string) => string;
                    small: () => string;
                    strike: () => string;
                    sub: () => string;
                    sup: () => string;
                    padStart: (maxLength: number, fillString?: string) => string;
                    padEnd: (maxLength: number, fillString?: string) => string;
                    trimEnd: () => string;
                    trimStart: () => string;
                    trimLeft: () => string;
                    trimRight: () => string;
                    matchAll: (regexp: RegExp) => RegExpStringIterator<RegExpExecArray>;
                    replaceAll: {
                        (searchValue: string | RegExp, replaceValue: string): string;
                        (searchValue: string | RegExp, replacer: (substring: string, ...args: any[]) => string): string;
                    };
                    [Symbol.iterator]: () => StringIterator<string>;
                    at: (index: number) => string;
                };
                long: {
                    readonly [x: number]: string;
                    toString: () => string;
                    charAt: (pos: number) => string;
                    charCodeAt: (index: number) => number;
                    concat: (...strings: string[]) => string;
                    indexOf: (searchString: string, position?: number) => number;
                    lastIndexOf: (searchString: string, position?: number) => number;
                    localeCompare: {
                        (that: string): number;
                        (that: string, locales?: string | string[], options?: Intl.CollatorOptions): number;
                        (that: string, locales?: Intl.LocalesArgument, options?: Intl.CollatorOptions): number;
                    };
                    match: {
                        (regexp: string | RegExp): RegExpMatchArray | null;
                        (matcher: {
                            [Symbol.match](string: string): RegExpMatchArray | null;
                        }): RegExpMatchArray | null;
                    };
                    replace: {
                        (searchValue: string | RegExp, replaceValue: string): string;
                        (searchValue: string | RegExp, replacer: (substring: string, ...args: any[]) => string): string;
                        (searchValue: {
                            [Symbol.replace](string: string, replaceValue: string): string;
                        }, replaceValue: string): string;
                        (searchValue: {
                            [Symbol.replace](string: string, replacer: (substring: string, ...args: any[]) => string): string;
                        }, replacer: (substring: string, ...args: any[]) => string): string;
                    };
                    search: {
                        (regexp: string | RegExp): number;
                        (searcher: {
                            [Symbol.search](string: string): number;
                        }): number;
                    };
                    slice: (start?: number, end?: number) => string;
                    split: {
                        (separator: string | RegExp, limit?: number): string[];
                        (splitter: {
                            [Symbol.split](string: string, limit?: number): string[];
                        }, limit?: number): string[];
                    };
                    substring: (start: number, end?: number) => string;
                    toLowerCase: () => string;
                    toLocaleLowerCase: {
                        (locales?: string | string[]): string;
                        (locales?: Intl.LocalesArgument): string;
                    };
                    toUpperCase: () => string;
                    toLocaleUpperCase: {
                        (locales?: string | string[]): string;
                        (locales?: Intl.LocalesArgument): string;
                    };
                    trim: () => string;
                    readonly length: number;
                    substr: (from: number, length?: number) => string;
                    valueOf: () => string;
                    codePointAt: (pos: number) => number | undefined;
                    includes: (searchString: string, position?: number) => boolean;
                    endsWith: (searchString: string, endPosition?: number) => boolean;
                    normalize: {
                        (form: "NFC" | "NFD" | "NFKC" | "NFKD"): string;
                        (form?: string): string;
                    };
                    repeat: (count: number) => string;
                    startsWith: (searchString: string, position?: number) => boolean;
                    anchor: (name: string) => string;
                    big: () => string;
                    blink: () => string;
                    bold: () => string;
                    fixed: () => string;
                    fontcolor: (color: string) => string;
                    fontsize: {
                        (size: number): string;
                        (size: string): string;
                    };
                    italics: () => string;
                    link: (url: string) => string;
                    small: () => string;
                    strike: () => string;
                    sub: () => string;
                    sup: () => string;
                    padStart: (maxLength: number, fillString?: string) => string;
                    padEnd: (maxLength: number, fillString?: string) => string;
                    trimEnd: () => string;
                    trimStart: () => string;
                    trimLeft: () => string;
                    trimRight: () => string;
                    matchAll: (regexp: RegExp) => RegExpStringIterator<RegExpExecArray>;
                    replaceAll: {
                        (searchValue: string | RegExp, replaceValue: string): string;
                        (searchValue: string | RegExp, replacer: (substring: string, ...args: any[]) => string): string;
                    };
                    [Symbol.iterator]: () => StringIterator<string>;
                    at: (index: number) => string;
                };
            }[];
            app_commission: number;
            app_commission_value: number;
            app_commission_unit: string;
            arrived_at_stop_1: number;
            started_from_stop_1: number;
            total_rental_hours: number;
            total_hours: number;
            extra_hours: number;
            admin_amount: number;
            payout_amount: number;
            extra_hours_amount: number;
            extra_kms_amount: number;
            extra_kms: number;
            arrived_at_stop_2: number;
            started_from_stop_2: number;
            arrived_pickup_loc_at: number;
            schedule_date: number;
            booking_status: string;
            booking_type: string;
            ride_status: string;
            cancelled_reason: string;
            is_ride_started: boolean;
            sent_dispatch_noti: boolean;
            booking_reminder_noti: boolean;
            cancelled_by: string;
            payment_gateway: string;
            payment_method: string;
            payment_method_id: string;
            payment_status: string;
            distance_in_km: number;
            base_fee: number;
            base_fee_with_discount: number;
            stop_charges: number;
            surcharge_amount: number;
            agent_commission: number;
            surcharge_multiplier: number;
            toll_price: number;
            tip_driver: number;
            gst: number;
            commission_gst_amount: number;
            payout_gst_amount: number;
            coupon_discount: number;
            total_amount: number;
            return_trip_charges: number;
            night_stay_charges: number;
            gender_prefrence: import("./schema/booking.schema").GenderPrefrence;
            ride_otp: number;
            waiting_charge_per_min: number;
            is_waiting_charge_noti_send: boolean;
            is_stop1_charge_noti_send: boolean;
            is_stop2_charge_noti_send: boolean;
            rate_by_customer: boolean;
            rate_by_driver: boolean;
            extimated_delivery_time: string;
            start_ride_at: number;
            last_stop_charges_mins: number;
            return_trip: boolean;
            night_stay: boolean;
            last_stop2_charges_mins: number;
            last_start_ride_charges_mins: number;
            complete_delivery_at: number;
            is_volunteer: boolean;
            filter: string[];
            created_at: number;
            updated_at: number;
            requested_by: string;
            guest_name: string;
            guest_country_code: string;
            guest_phone: string;
            hourly_rate: number;
            hourly_km_rate: number;
            hourly_max_km: number;
            kms_limit: number;
            add_up_kms: number;
            insurance_fees: number;
            insurance_fees_multiplier: number;
            city_fees: number;
            city_fees_unit: string;
            infrastructure_fees: number;
            commission_percentage: number;
            intercity_commision_percentage: number;
            basic_trip_amount: number;
            total_trip_price_to_be_paid_by_customer: number;
            fare_breakdown: any;
            booking_for: string;
        }> & {
            _id: Types.ObjectId;
        } & {
            __v: number;
        })[];
        count: number;
    }>;
    scheduledBookingList(payload: DispatcherGetBookingsDto, dispatcher_id: any): Promise<{
        data: (mongosse.FlattenMaps<{
            customer_id: string;
            company_id: string;
            company_client_id: string;
            dispatcher_id: string;
            assigned_by: string;
            driver_id: string;
            agent_customer_id: string;
            agent_id: string;
            pass_id: mongosse.Types.ObjectId;
            booking_id: string;
            rzr_order_id: string;
            stripe_intent_id: string;
            payment_id: string;
            is_salaried_booking: boolean;
            cashfree_order_id: string;
            cashfree_refund_id: string;
            refund_confirmed: boolean;
            payment_session_id: string;
            you_earn: number;
            routeUrl: string;
            is_request_type_broadcast: boolean;
            request_type: RequestType;
            sender_name: string;
            sender_country_code: string;
            sender_number: string;
            receiver_name: string;
            receiver_country_code: string;
            commission_type: string;
            fleet_id: mongosse.Types.ObjectId;
            requested_fleet_id: mongosse.Types.ObjectId;
            receiver_number: string;
            is_broadcast: boolean;
            parcel_details: string;
            airport_pickup_charges: number;
            cancellation_charges: number;
            airport_drop_charges: number;
            arrived_at_intercity_destination: number;
            started_from_intercity_destination: number;
            coupon_id: string;
            vehicle_id: string;
            vehicleDetail_id: string;
            payment_confirmed: boolean;
            parcel_img_at_pickup: string;
            parcel_img_at_drop: string;
            payment_received: boolean;
            pickup_address: string;
            drop_address: string;
            pickup_lat: string;
            pickup_long: string;
            total_distance_covered: number;
            drop_lat: string;
            drop_long: string;
            stops: {
                name: string;
                lat: {
                    readonly [x: number]: string;
                    toString: () => string;
                    charAt: (pos: number) => string;
                    charCodeAt: (index: number) => number;
                    concat: (...strings: string[]) => string;
                    indexOf: (searchString: string, position?: number) => number;
                    lastIndexOf: (searchString: string, position?: number) => number;
                    localeCompare: {
                        (that: string): number;
                        (that: string, locales?: string | string[], options?: Intl.CollatorOptions): number;
                        (that: string, locales?: Intl.LocalesArgument, options?: Intl.CollatorOptions): number;
                    };
                    match: {
                        (regexp: string | RegExp): RegExpMatchArray | null;
                        (matcher: {
                            [Symbol.match](string: string): RegExpMatchArray | null;
                        }): RegExpMatchArray | null;
                    };
                    replace: {
                        (searchValue: string | RegExp, replaceValue: string): string;
                        (searchValue: string | RegExp, replacer: (substring: string, ...args: any[]) => string): string;
                        (searchValue: {
                            [Symbol.replace](string: string, replaceValue: string): string;
                        }, replaceValue: string): string;
                        (searchValue: {
                            [Symbol.replace](string: string, replacer: (substring: string, ...args: any[]) => string): string;
                        }, replacer: (substring: string, ...args: any[]) => string): string;
                    };
                    search: {
                        (regexp: string | RegExp): number;
                        (searcher: {
                            [Symbol.search](string: string): number;
                        }): number;
                    };
                    slice: (start?: number, end?: number) => string;
                    split: {
                        (separator: string | RegExp, limit?: number): string[];
                        (splitter: {
                            [Symbol.split](string: string, limit?: number): string[];
                        }, limit?: number): string[];
                    };
                    substring: (start: number, end?: number) => string;
                    toLowerCase: () => string;
                    toLocaleLowerCase: {
                        (locales?: string | string[]): string;
                        (locales?: Intl.LocalesArgument): string;
                    };
                    toUpperCase: () => string;
                    toLocaleUpperCase: {
                        (locales?: string | string[]): string;
                        (locales?: Intl.LocalesArgument): string;
                    };
                    trim: () => string;
                    readonly length: number;
                    substr: (from: number, length?: number) => string;
                    valueOf: () => string;
                    codePointAt: (pos: number) => number | undefined;
                    includes: (searchString: string, position?: number) => boolean;
                    endsWith: (searchString: string, endPosition?: number) => boolean;
                    normalize: {
                        (form: "NFC" | "NFD" | "NFKC" | "NFKD"): string;
                        (form?: string): string;
                    };
                    repeat: (count: number) => string;
                    startsWith: (searchString: string, position?: number) => boolean;
                    anchor: (name: string) => string;
                    big: () => string;
                    blink: () => string;
                    bold: () => string;
                    fixed: () => string;
                    fontcolor: (color: string) => string;
                    fontsize: {
                        (size: number): string;
                        (size: string): string;
                    };
                    italics: () => string;
                    link: (url: string) => string;
                    small: () => string;
                    strike: () => string;
                    sub: () => string;
                    sup: () => string;
                    padStart: (maxLength: number, fillString?: string) => string;
                    padEnd: (maxLength: number, fillString?: string) => string;
                    trimEnd: () => string;
                    trimStart: () => string;
                    trimLeft: () => string;
                    trimRight: () => string;
                    matchAll: (regexp: RegExp) => RegExpStringIterator<RegExpExecArray>;
                    replaceAll: {
                        (searchValue: string | RegExp, replaceValue: string): string;
                        (searchValue: string | RegExp, replacer: (substring: string, ...args: any[]) => string): string;
                    };
                    [Symbol.iterator]: () => StringIterator<string>;
                    at: (index: number) => string;
                };
                long: {
                    readonly [x: number]: string;
                    toString: () => string;
                    charAt: (pos: number) => string;
                    charCodeAt: (index: number) => number;
                    concat: (...strings: string[]) => string;
                    indexOf: (searchString: string, position?: number) => number;
                    lastIndexOf: (searchString: string, position?: number) => number;
                    localeCompare: {
                        (that: string): number;
                        (that: string, locales?: string | string[], options?: Intl.CollatorOptions): number;
                        (that: string, locales?: Intl.LocalesArgument, options?: Intl.CollatorOptions): number;
                    };
                    match: {
                        (regexp: string | RegExp): RegExpMatchArray | null;
                        (matcher: {
                            [Symbol.match](string: string): RegExpMatchArray | null;
                        }): RegExpMatchArray | null;
                    };
                    replace: {
                        (searchValue: string | RegExp, replaceValue: string): string;
                        (searchValue: string | RegExp, replacer: (substring: string, ...args: any[]) => string): string;
                        (searchValue: {
                            [Symbol.replace](string: string, replaceValue: string): string;
                        }, replaceValue: string): string;
                        (searchValue: {
                            [Symbol.replace](string: string, replacer: (substring: string, ...args: any[]) => string): string;
                        }, replacer: (substring: string, ...args: any[]) => string): string;
                    };
                    search: {
                        (regexp: string | RegExp): number;
                        (searcher: {
                            [Symbol.search](string: string): number;
                        }): number;
                    };
                    slice: (start?: number, end?: number) => string;
                    split: {
                        (separator: string | RegExp, limit?: number): string[];
                        (splitter: {
                            [Symbol.split](string: string, limit?: number): string[];
                        }, limit?: number): string[];
                    };
                    substring: (start: number, end?: number) => string;
                    toLowerCase: () => string;
                    toLocaleLowerCase: {
                        (locales?: string | string[]): string;
                        (locales?: Intl.LocalesArgument): string;
                    };
                    toUpperCase: () => string;
                    toLocaleUpperCase: {
                        (locales?: string | string[]): string;
                        (locales?: Intl.LocalesArgument): string;
                    };
                    trim: () => string;
                    readonly length: number;
                    substr: (from: number, length?: number) => string;
                    valueOf: () => string;
                    codePointAt: (pos: number) => number | undefined;
                    includes: (searchString: string, position?: number) => boolean;
                    endsWith: (searchString: string, endPosition?: number) => boolean;
                    normalize: {
                        (form: "NFC" | "NFD" | "NFKC" | "NFKD"): string;
                        (form?: string): string;
                    };
                    repeat: (count: number) => string;
                    startsWith: (searchString: string, position?: number) => boolean;
                    anchor: (name: string) => string;
                    big: () => string;
                    blink: () => string;
                    bold: () => string;
                    fixed: () => string;
                    fontcolor: (color: string) => string;
                    fontsize: {
                        (size: number): string;
                        (size: string): string;
                    };
                    italics: () => string;
                    link: (url: string) => string;
                    small: () => string;
                    strike: () => string;
                    sub: () => string;
                    sup: () => string;
                    padStart: (maxLength: number, fillString?: string) => string;
                    padEnd: (maxLength: number, fillString?: string) => string;
                    trimEnd: () => string;
                    trimStart: () => string;
                    trimLeft: () => string;
                    trimRight: () => string;
                    matchAll: (regexp: RegExp) => RegExpStringIterator<RegExpExecArray>;
                    replaceAll: {
                        (searchValue: string | RegExp, replaceValue: string): string;
                        (searchValue: string | RegExp, replacer: (substring: string, ...args: any[]) => string): string;
                    };
                    [Symbol.iterator]: () => StringIterator<string>;
                    at: (index: number) => string;
                };
            }[];
            app_commission: number;
            app_commission_value: number;
            app_commission_unit: string;
            arrived_at_stop_1: number;
            started_from_stop_1: number;
            total_rental_hours: number;
            total_hours: number;
            extra_hours: number;
            admin_amount: number;
            payout_amount: number;
            extra_hours_amount: number;
            extra_kms_amount: number;
            extra_kms: number;
            arrived_at_stop_2: number;
            started_from_stop_2: number;
            arrived_pickup_loc_at: number;
            schedule_date: number;
            booking_status: string;
            booking_type: string;
            ride_status: string;
            cancelled_reason: string;
            is_ride_started: boolean;
            sent_dispatch_noti: boolean;
            booking_reminder_noti: boolean;
            cancelled_by: string;
            payment_gateway: string;
            payment_method: string;
            payment_method_id: string;
            payment_status: string;
            distance_in_km: number;
            base_fee: number;
            base_fee_with_discount: number;
            stop_charges: number;
            surcharge_amount: number;
            agent_commission: number;
            surcharge_multiplier: number;
            toll_price: number;
            tip_driver: number;
            gst: number;
            commission_gst_amount: number;
            payout_gst_amount: number;
            coupon_discount: number;
            total_amount: number;
            return_trip_charges: number;
            night_stay_charges: number;
            gender_prefrence: import("./schema/booking.schema").GenderPrefrence;
            ride_otp: number;
            waiting_charge_per_min: number;
            is_waiting_charge_noti_send: boolean;
            is_stop1_charge_noti_send: boolean;
            is_stop2_charge_noti_send: boolean;
            rate_by_customer: boolean;
            rate_by_driver: boolean;
            extimated_delivery_time: string;
            start_ride_at: number;
            last_stop_charges_mins: number;
            return_trip: boolean;
            night_stay: boolean;
            last_stop2_charges_mins: number;
            last_start_ride_charges_mins: number;
            complete_delivery_at: number;
            is_volunteer: boolean;
            filter: string[];
            created_at: number;
            updated_at: number;
            requested_by: string;
            guest_name: string;
            guest_country_code: string;
            guest_phone: string;
            hourly_rate: number;
            hourly_km_rate: number;
            hourly_max_km: number;
            kms_limit: number;
            add_up_kms: number;
            insurance_fees: number;
            insurance_fees_multiplier: number;
            city_fees: number;
            city_fees_unit: string;
            infrastructure_fees: number;
            commission_percentage: number;
            intercity_commision_percentage: number;
            basic_trip_amount: number;
            total_trip_price_to_be_paid_by_customer: number;
            fare_breakdown: any;
            booking_for: string;
        }> & {
            _id: Types.ObjectId;
        } & {
            __v: number;
        })[];
        count: number;
    }>;
    dispatchBookingDrivers(): Promise<any[]>;
    startRideAfter5minCharge(sent_noti_bookings: any, app_configuration: any, driver_translate_title: any, driver_translate_description: any, customer_translate_title: any, customer_translate_description: any): Promise<void>;
    stop1After3minCharge(sent_noti_stop1_bookings: any, app_configuration: any, driver_translate_title: any, driver_translate_description: any, customer_translate_title: any, customer_translate_description: any): Promise<void>;
    stop2After3minCharge(sent_noti_stop2_bookings: any, app_configuration: any, driver_translate_title: any, driver_translate_description: any, customer_translate_title: any, customer_translate_description: any): Promise<void>;
}
