import { ShareRideService } from 'src/common/helpers/share-ride.service';
import { AssignDriverDto, AssignFleetDto, BodyPreference, CancelBookingDto, DispatcherGetBookingsDto, DriverIdDto, DriverListOnDispatcherForAssignDto, 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 { BookingAggregation } from './booking.aggregation';
import { Types } from 'mongoose';
import { 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 { Response } from 'express';
import { MessageKey } from 'src/common/helpers/message-keys.enum';
import { Server } from 'socket.io';
import { PayoutType } from 'src/configuration/schema/app-configuration.schema';
import { CashfreeService } from 'src/common/helpers/cashfree-helper.service';
import { RedisService } from 'src/redis/redis.service';
export declare class BookingService {
    private readonly model;
    private readonly commonService;
    private readonly bookingAggregation;
    private readonly bookingGateway;
    private readonly activityService;
    private readonly cashfreeService;
    private readonly redisService;
    private readonly shareRideService;
    constructor(model: DbService, commonService: CommonService, bookingAggregation: BookingAggregation, bookingGateway: BookingGateway, activityService: ActivityService, cashfreeService: CashfreeService, redisService: RedisService, shareRideService: ShareRideService);
    server: Server;
    getCompanyBookingLogs(booking_id: string): Promise<(mongosse.FlattenMaps<{
        userId: string;
        driverId: string;
        companyId: string;
        agentId: string;
        fleetId: string;
        action: string;
        resource: string;
        description: string;
        payload?: any;
        requestdata?: [];
        booking_id: string;
        record_model: string;
        record_id: string;
        created_at: number;
        guest_name: string;
        guest_alternate_phone: string;
        guest_phone: string;
    }> & {
        _id: Types.ObjectId;
    } & {
        __v: number;
    })[]>;
    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, {}, import("./schema/booking.schema").Booking, {}, {}> & import("./schema/booking.schema").Booking & {
            _id: Types.ObjectId;
        } & {
            __v: number;
        };
    }>;
    BookingLogs(id: string): Promise<any>;
    getInvoice(res: Response, id: string, timezone?: string): Promise<Response<any, Record<string, any>>>;
    update(body: UpdateBookingDto, booking_id: any): Promise<{
        message: MessageKey;
    }>;
    availableDriverforThisBooking(id: string, payload: DriverIdDto): Promise<{
        data: (mongosse.FlattenMaps<{
            referral_id: string;
            is_verfication_submitted: boolean;
            verification: import("src/driver/schema/driver.schema").DriverVerificationStatus;
            doc_update_verification: import("src/driver/schema/driver.schema").DriverVerificationStatus;
            visa_doc: string;
            name: string;
            email: string;
            driver_service_type: import("src/driver/schema/driver.schema").ServiceType;
            deactivate_at: number;
            service_type: string;
            gender: Gender;
            country_code: string;
            rzr_contact_id: string;
            beneId: string;
            commission: number;
            ulternate_vehicle_types: string[];
            service_prefrence: string[];
            vehicle_type_id: 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;
            stripe_customer_id: string;
            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;
            missing_documents: mongosse.Types.ObjectId[];
            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;
            current_pool: string;
            upcoming_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;
            }[];
            is_deleted: boolean;
            is_document_missing: boolean;
            timeZone: string;
            created_at: number;
            updated_at: number;
            payout_mode: PayoutType;
            selected_payout_mode: PayoutType;
            location: {
                type: string;
                coordinates: number[];
            };
        }> & {
            _id: Types.ObjectId;
        } & {
            __v: number;
        })[];
        count: number;
    }>;
    waitingForDriver(payload: DriverIdDto): Promise<{
        data: (mongosse.FlattenMaps<{
            customer_id: string;
            package_id: string;
            parent_booking_id: string;
            booking_group_id: string;
            vehicle_count: number;
            duration_fare_return_trip: number;
            duration_fare_single_trip: number;
            vehicle_sequence: number;
            company_id: string;
            company_client_id: string;
            dispatcher_id: string;
            type: string;
            assigned_by: string;
            driver_id: string;
            agent_customer_id: string;
            agent_id: string;
            pass_id: mongosse.Types.ObjectId;
            invoice_id: string;
            booking_id: string;
            is_cancellation_requested: string;
            ride_type: string;
            pickup_option: string;
            rzr_order_id: string;
            stripe_intent_id: string;
            distance_to_pickup: number;
            distance_to_drop: number;
            payment_id: string;
            is_salaried_booking: boolean;
            need_load_unload: boolean;
            cashfree_order_id: string;
            total_payable_amount: number;
            deposit_amount: number;
            incentive_applied: number;
            incentive: number;
            vehicle_body_preference: string;
            number_of_days: number;
            per_day_charges: number;
            load_unload_charges: number;
            delivery_charges: number;
            days_exceed: number;
            cashfree_refund_id: string;
            refund_confirmed: boolean;
            is_ac_ride: boolean;
            is_share_ride: boolean;
            share_ride_session_id: string;
            payment_session_id: string;
            you_earn: number;
            return_requested_at: number;
            eta_return_trip: number;
            eta: number;
            per_minute_charges: number;
            base_minutes: number;
            you_earn_commission: number;
            you_earn_pass: number;
            free_load_unload_time: number;
            cancellation_charges_paid: number;
            routeUrl: string;
            is_request_type_broadcast: boolean;
            request_type: RequestType;
            sender_name: string;
            address_language: 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;
            is_bundle_booking: boolean;
            bundle_name: string;
            bundle_image: string;
            parcel_details: string;
            airport_pickup_charges: number;
            cancellation_charges: number;
            airport_drop_charges: number;
            flight_number: string;
            is_airport_pickup: boolean;
            is_airport_dropoff: boolean;
            arrived_at_intercity_destination: number;
            started_from_intercity_destination: number;
            coupon_id: string;
            vehicle_id: string;
            original_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;
            return_pickup_address: string;
            return_drop_address: string;
            pickup_lat: string;
            pickup_long: string;
            return_pickup_lat: string;
            return_pickup_long: string;
            total_distance_covered: number;
            drop_lat: string;
            drop_long: string;
            return_drop_lat: string;
            return_drop_long: string;
            paid_amount: number;
            pending_amount: number;
            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;
                };
            }[];
            return_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;
            insurance_multiplier: number;
            app_commission_unit: "percentage" | "fixed";
            arrived_at_stop_1: number;
            started_from_stop_1: number;
            arrived_at_return_stop_1: number;
            started_from_return_stop_1: number;
            arrived_at_return_stop_2: number;
            started_from_return_stop_2: 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;
            drop_time: number;
            exceeded_drop_time: 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;
            single_way_distance: number;
            return_trip_distance: number;
            base_fee: number;
            base_fee_with_discount: number;
            stop_charges: number;
            surcharge_amount: number;
            agent_commission: number;
            agent_commission_percentage: string;
            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;
            deduction_of_return_trip: number;
            cancellation_total: number;
            return_trip_charges: number;
            night_stay_charges: number;
            gender_prefrence: import("./schema/booking.schema").GenderPrefrence;
            ride_otp: number;
            is_return_trip_active: boolean;
            return_trip_otp: number;
            waiting_charge_per_min: number;
            is_waiting_charge_noti_send: boolean;
            is_unloading_charge_noti_send: boolean;
            is_stop1_charge_noti_send: boolean;
            is_stop2_charge_noti_send: boolean;
            is_return_stop1_charge_noti_send: boolean;
            is_return_stop2_charge_noti_send: boolean;
            is_intercity_waiting_noti_send: boolean;
            rate_by_customer: boolean;
            rate_by_driver: boolean;
            is_driver_assigned_automatically: boolean;
            extimated_delivery_time: string;
            start_ride_at: number;
            reached_destination: number;
            last_stop_charges_mins: number;
            last_unloading_charges_mins: number;
            return_trip: boolean;
            night_stay: boolean;
            last_stop2_charges_mins: number;
            last_return_stop1_charges_mins: number;
            last_return_stop2_charges_mins: number;
            last_intercity_waiting_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;
            guest_alternate_country_code: string;
            guest_alternate_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_value: 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;
            booking_for: string;
            number_of_seats: number;
        }> & {
            _id: Types.ObjectId;
        } & {
            __v: number;
        })[];
        count: number;
    }>;
    get_booking(id: string, payload: any): Promise<{
        data: any;
        type: any;
        allBookings: any[];
        current_booking_id: any;
        isSharedRide?: undefined;
        poolDetails?: undefined;
        current_step?: undefined;
    } | {
        data: any;
        isSharedRide: boolean;
        poolDetails: any;
        allBookings: any[];
        current_step: any;
        current_booking_id: any;
        type?: undefined;
    }>;
    getCurrentActiveBooking(payload: any): Promise<{
        current_booking_id: any;
        data: any;
        isSharedRide: boolean;
        poolDetails: any;
        current_step: any;
    } | {
        current_booking_id: any;
        data: any;
        type: any;
        allBookings: any[];
        isSharedRide?: undefined;
        poolDetails?: undefined;
        current_step?: undefined;
    } | {
        current_booking_id: any;
        data: any;
        isSharedRide: boolean;
        poolDetails: any;
        allBookings: any[];
        current_step: any;
        type?: undefined;
    }>;
    available_coupons(body: any, user_id: any): Promise<any[]>;
    ApplyPromoCode(promo_code: any, req: any, customer_id: any, totalAmount: number): Promise<{
        data: any;
    }>;
    accept_booking(booking_id: any, driver_id: any): Promise<{
        data: mongosse.Document<unknown, {}, import("./schema/booking.schema").Booking, {}, {}> & import("./schema/booking.schema").Booking & {
            _id: Types.ObjectId;
        } & {
            __v: number;
        };
    }>;
    joinSharedPool(driver: DriversDocment, booking: BookingDocment): Promise<{
        message: string;
        session_id: string;
        pending: boolean;
    } | {
        message: string;
        session_id: Types.ObjectId;
        pending: boolean;
    }>;
    sendBookingAcceptedNotificationToCustomer(booking: BookingDocment, customer: any): Promise<void>;
    checkIsBookingAvailable(booking_data: BookingDocment, driver_id: string, booking_id: string): Promise<void>;
    decline_booking(booking_id: any, driver_id: any): Promise<{
        message: MessageKey;
    }>;
    RideStatus(body: any): Promise<{
        message: MessageKey;
    }>;
    sendRideStatusNotificationToCustomer(booking: any, body: any): Promise<{
        message: MessageKey;
    }>;
    assignADriver(id: string, payload: AssignDriverDto, dispatcher_id: any, fleet_id: any): Promise<{
        message: MessageKey;
        booking_id?: undefined;
    } | {
        message: MessageKey;
        booking_id: string;
    }>;
    assignAFleet(id: string, payload: AssignFleetDto): Promise<{
        message: MessageKey;
        booking_data: mongosse.Document<unknown, {}, import("./schema/booking.schema").Booking, {}, {}> & import("./schema/booking.schema").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: MessageKey;
    }>;
    sent_broadcast_request(booking: any, broadcast_type?: string, fleet_id?: string): Promise<void>;
    private getDriverLevel;
    handlePayments(paymentMethod: any, paymentMethodId: any, booking: any, customer: any): Promise<{
        message: string;
        booking: any;
    } | {
        booking: any;
        amount: number;
        meta: any;
        ref_id: string;
    } | {
        booking: any;
        client_secret: string;
        paymentIntent: string;
        status: import("stripe").Stripe.PaymentIntent.Status;
        requires_action: boolean;
        amount: number;
        ephemeralKey: any;
        customer: any;
        order_id?: undefined;
        cf_order_id?: undefined;
        payment_sessions_id?: undefined;
    } | {
        booking: any;
        order_id: any;
        amount: number;
        client_secret?: undefined;
        paymentIntent?: undefined;
        status?: undefined;
        requires_action?: undefined;
        ephemeralKey?: undefined;
        customer?: undefined;
        cf_order_id?: undefined;
        payment_sessions_id?: undefined;
    } | {
        booking: any;
        order_id: any;
        cf_order_id: any;
        payment_sessions_id: any;
        amount: any;
        client_secret?: undefined;
        paymentIntent?: undefined;
        status?: undefined;
        requires_action?: undefined;
        ephemeralKey?: undefined;
        customer?: undefined;
    }>;
    getPricingToConsider(lat: string, lng: string, vehicle_id: string, request_type: string): Promise<any>;
    Ride_Completed(id: string, tollAmount: number, payload: any, parcel_img: string): Promise<{
        message: MessageKey;
    }>;
    startUpcomingRideForCustomer(booking_data: any): Promise<void>;
    sendBookingCompletionNotificationToCustomer(booking_data: any, bookingObj: any): Promise<void>;
    sendBookingCompletionNotificationToDriver(booking_data: any, bookingObj: any): Promise<void>;
    handleHourlyChargesUpdate(booking_data: BookingDocment, driver: DriversDocment, data: any): Promise<void>;
    calculateExtraIncentive(booking_data: BookingDocment, data: any): Promise<void>;
    getUpdatedIncentive(booking_data: BookingDocment): Promise<number>;
    getUpdatedDurationChargesOfRide(booking_data: BookingDocment, rideType?: 'singleway' | 'returntrip'): Promise<{
        eta: number;
        totalDurationCharges: number;
    }>;
    startUpcomingAcceptedRide(driverId: string): 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: MessageKey;
    }>;
    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: MessageKey;
    }>;
    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): Promise<{
        message: MessageKey;
    }>;
    private handleDriverCancellation;
    private refundForDriverCancellationAtPickup;
    private handleCompanyCancellation;
    private handleCustomerCancellation;
    private handleAgentCancellation;
    private resolveCustomerRefundAmount;
    private needToApplyCancellationChargesOnBookingPersonnel;
    private updateDriverBookingState;
    private logCancellationActivity;
    private handlePassLimitRecredit;
    private handleReboadcastIfNeeded;
    private resolveCancellationSendTo;
    private buildBookingSnapshot;
    private resolveNotificationType;
    private sendCancellationNotification;
    handleReturnTripCancelledCase(booking: BookingDocment, cancelledBy: string, cancellationReason: string, isPaymentDone?: boolean): Promise<{
        cancelled_booking: BookingDocment;
        needToRequestCancellation: boolean;
    }>;
    private getBookingPaidAmountForRefundCase;
    handleUpdateSingleWayAmount(booking: BookingDocment): Promise<void>;
    getupdatedAmountsForSingleWayTrip(booking: BookingDocment): Promise<{
        basic_trip_amount: number;
        city_fee: number;
        infrastructure_fee: number;
        insurance_fee: number;
        commission_gst_amount: number;
        base_fee_without_discount: number;
        payout_gst_amount: number;
        total_amount: number;
        coupon_amount: number;
        surcharge_amount: number;
        app_commission: number;
        eta: number;
        totalDurationCharges: number;
        baseFare: number;
    }>;
    getupdatedAmountsForCompleteRide(booking: BookingDocment, data: any, tollCharges?: number): Promise<void>;
    handlePaymentRecievedForReturnCancellation(bookingId: string): Promise<{
        message: MessageKey;
    }>;
    check_rides_under_5km_radius(pickup_lat: any, pick_up_long: any, filter: any, gender_prefrence: any, vehicle_body_preference: BodyPreference, ride_type: any): Promise<{
        vehicle_id: string;
        nearest_driver_id: any;
        duration_time: string;
        distance: any;
    }[]>;
    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[]>;
    getTodayCompletedRides(driverId: string): Promise<number>;
    getDriverRating(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>;
    rebroadcastBooking(data: any, customer: any): Promise<void>;
    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;
    }>;
    cancelScheduledBookingByAdmin(id: string, adminId: string, reason?: string): Promise<{
        message: string;
    }>;
    logCancellation(booking: BookingDocment, adminId: string): Promise<void>;
    sendCancellationNotificationToCustomer(booking: BookingDocment): Promise<void>;
    private sendBookingCancelledSmsToGuest;
    sendBookingCancellationEmailToCustomer(booking: BookingDocment): Promise<void>;
    sendBookingCancelledNotificationToDriver(booking: BookingDocment): Promise<void>;
    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<{
        active_count: any;
        completed_count: any;
        cancelled_count: any;
        failed_count: any;
        schedule_count: any;
        count: any;
        data: any;
    }>;
    AdminBookingListingExport(body: any): Promise<{
        data: any[];
    }>;
    AdminBookingDetail(id: any): Promise<{
        data: any;
    }>;
    AdminPoolListing(query: any): Promise<{
        data: any[];
        total_count: number;
        active_count: number;
        completed_count: number;
        cancelled_count: number;
        page: number;
        limit: number;
    }>;
    AdminPoolListingExport(query: any): Promise<{
        data: any[];
    }>;
    check_stop_time(reached_at: any, departure_at: any, booking_data: any): Promise<void>;
    recived_payment(booking_id: string, driver_id: string): Promise<{
        message: MessageKey;
    }>;
    makePaymentEntryForBooking(bookingId: string): Promise<void>;
    updateBookingInfo(body: any, customer_id: any): Promise<{
        message: MessageKey;
    }>;
    CheckScheduleBooking(customer_id: any, query: any): Promise<{
        can_request: boolean;
        message?: undefined;
    } | {
        can_request: boolean;
        message: string;
    }>;
    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;
            is_verfication_submitted: boolean;
            verification: import("src/driver/schema/driver.schema").DriverVerificationStatus;
            doc_update_verification: import("src/driver/schema/driver.schema").DriverVerificationStatus;
            visa_doc: string;
            name: string;
            email: string;
            driver_service_type: import("src/driver/schema/driver.schema").ServiceType;
            deactivate_at: number;
            service_type: string;
            gender: Gender;
            country_code: string;
            rzr_contact_id: string;
            beneId: string;
            commission: number;
            ulternate_vehicle_types: string[];
            service_prefrence: string[];
            vehicle_type_id: 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;
            stripe_customer_id: string;
            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;
            missing_documents: mongosse.Types.ObjectId[];
            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;
            current_pool: string;
            upcoming_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;
            }[];
            is_deleted: boolean;
            is_document_missing: boolean;
            timeZone: string;
            created_at: number;
            updated_at: number;
            payout_mode: PayoutType;
            selected_payout_mode: PayoutType;
            location: {
                type: string;
                coordinates: number[];
            };
            __v: number;
        };
        booking: any;
    }>;
    cancel_request(id: any, customer_id: any): Promise<{
        message: MessageKey;
    }>;
    WaitingChargeCron(): Promise<void>;
    private applyWaitingCharge;
    recalculateBookingAmount(booking: any, waitingCharge: number, lastChargedMinutesField: string, billableMinutes: number): Promise<mongosse.Document<unknown, {}, import("./schema/booking.schema").Booking, {}, {}> & import("./schema/booking.schema").Booking & {
        _id: Types.ObjectId;
    } & {
        __v: number;
    }>;
    private sendWaitingNotification;
    socketWaitingChargeNoti(booking_id: any): Promise<{
        data: {
            customer: string;
            driver: string;
            booking: mongosse.Document<unknown, {}, import("./schema/booking.schema").Booking, {}, {}> & import("./schema/booking.schema").Booking & {
                _id: Types.ObjectId;
            } & {
                __v: number;
            };
        };
    }>;
    CheckCoupon(coupon_id: any): Promise<{
        data: any;
    }>;
    dispatcherBookingList(payload: DispatcherGetBookingsDto, dispatcher_id: string): Promise<{
        data: (mongosse.FlattenMaps<{
            customer_id: string;
            package_id: string;
            parent_booking_id: string;
            booking_group_id: string;
            vehicle_count: number;
            duration_fare_return_trip: number;
            duration_fare_single_trip: number;
            vehicle_sequence: number;
            company_id: string;
            company_client_id: string;
            dispatcher_id: string;
            type: string;
            assigned_by: string;
            driver_id: string;
            agent_customer_id: string;
            agent_id: string;
            pass_id: mongosse.Types.ObjectId;
            invoice_id: string;
            booking_id: string;
            is_cancellation_requested: string;
            ride_type: string;
            pickup_option: string;
            rzr_order_id: string;
            stripe_intent_id: string;
            distance_to_pickup: number;
            distance_to_drop: number;
            payment_id: string;
            is_salaried_booking: boolean;
            need_load_unload: boolean;
            cashfree_order_id: string;
            total_payable_amount: number;
            deposit_amount: number;
            incentive_applied: number;
            incentive: number;
            vehicle_body_preference: string;
            number_of_days: number;
            per_day_charges: number;
            load_unload_charges: number;
            delivery_charges: number;
            days_exceed: number;
            cashfree_refund_id: string;
            refund_confirmed: boolean;
            is_ac_ride: boolean;
            is_share_ride: boolean;
            share_ride_session_id: string;
            payment_session_id: string;
            you_earn: number;
            return_requested_at: number;
            eta_return_trip: number;
            eta: number;
            per_minute_charges: number;
            base_minutes: number;
            you_earn_commission: number;
            you_earn_pass: number;
            free_load_unload_time: number;
            cancellation_charges_paid: number;
            routeUrl: string;
            is_request_type_broadcast: boolean;
            request_type: RequestType;
            sender_name: string;
            address_language: 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;
            is_bundle_booking: boolean;
            bundle_name: string;
            bundle_image: string;
            parcel_details: string;
            airport_pickup_charges: number;
            cancellation_charges: number;
            airport_drop_charges: number;
            flight_number: string;
            is_airport_pickup: boolean;
            is_airport_dropoff: boolean;
            arrived_at_intercity_destination: number;
            started_from_intercity_destination: number;
            coupon_id: string;
            vehicle_id: string;
            original_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;
            return_pickup_address: string;
            return_drop_address: string;
            pickup_lat: string;
            pickup_long: string;
            return_pickup_lat: string;
            return_pickup_long: string;
            total_distance_covered: number;
            drop_lat: string;
            drop_long: string;
            return_drop_lat: string;
            return_drop_long: string;
            paid_amount: number;
            pending_amount: number;
            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;
                };
            }[];
            return_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;
            insurance_multiplier: number;
            app_commission_unit: "percentage" | "fixed";
            arrived_at_stop_1: number;
            started_from_stop_1: number;
            arrived_at_return_stop_1: number;
            started_from_return_stop_1: number;
            arrived_at_return_stop_2: number;
            started_from_return_stop_2: 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;
            drop_time: number;
            exceeded_drop_time: 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;
            single_way_distance: number;
            return_trip_distance: number;
            base_fee: number;
            base_fee_with_discount: number;
            stop_charges: number;
            surcharge_amount: number;
            agent_commission: number;
            agent_commission_percentage: string;
            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;
            deduction_of_return_trip: number;
            cancellation_total: number;
            return_trip_charges: number;
            night_stay_charges: number;
            gender_prefrence: import("./schema/booking.schema").GenderPrefrence;
            ride_otp: number;
            is_return_trip_active: boolean;
            return_trip_otp: number;
            waiting_charge_per_min: number;
            is_waiting_charge_noti_send: boolean;
            is_unloading_charge_noti_send: boolean;
            is_stop1_charge_noti_send: boolean;
            is_stop2_charge_noti_send: boolean;
            is_return_stop1_charge_noti_send: boolean;
            is_return_stop2_charge_noti_send: boolean;
            is_intercity_waiting_noti_send: boolean;
            rate_by_customer: boolean;
            rate_by_driver: boolean;
            is_driver_assigned_automatically: boolean;
            extimated_delivery_time: string;
            start_ride_at: number;
            reached_destination: number;
            last_stop_charges_mins: number;
            last_unloading_charges_mins: number;
            return_trip: boolean;
            night_stay: boolean;
            last_stop2_charges_mins: number;
            last_return_stop1_charges_mins: number;
            last_return_stop2_charges_mins: number;
            last_intercity_waiting_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;
            guest_alternate_country_code: string;
            guest_alternate_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_value: 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;
            booking_for: string;
            number_of_seats: number;
        }> & {
            _id: Types.ObjectId;
        } & {
            __v: number;
        })[];
        count: number;
    }>;
    scheduledBookingList(payload: DispatcherGetBookingsDto, dispatcher_id: any): Promise<{
        data: (mongosse.FlattenMaps<{
            customer_id: string;
            package_id: string;
            parent_booking_id: string;
            booking_group_id: string;
            vehicle_count: number;
            duration_fare_return_trip: number;
            duration_fare_single_trip: number;
            vehicle_sequence: number;
            company_id: string;
            company_client_id: string;
            dispatcher_id: string;
            type: string;
            assigned_by: string;
            driver_id: string;
            agent_customer_id: string;
            agent_id: string;
            pass_id: mongosse.Types.ObjectId;
            invoice_id: string;
            booking_id: string;
            is_cancellation_requested: string;
            ride_type: string;
            pickup_option: string;
            rzr_order_id: string;
            stripe_intent_id: string;
            distance_to_pickup: number;
            distance_to_drop: number;
            payment_id: string;
            is_salaried_booking: boolean;
            need_load_unload: boolean;
            cashfree_order_id: string;
            total_payable_amount: number;
            deposit_amount: number;
            incentive_applied: number;
            incentive: number;
            vehicle_body_preference: string;
            number_of_days: number;
            per_day_charges: number;
            load_unload_charges: number;
            delivery_charges: number;
            days_exceed: number;
            cashfree_refund_id: string;
            refund_confirmed: boolean;
            is_ac_ride: boolean;
            is_share_ride: boolean;
            share_ride_session_id: string;
            payment_session_id: string;
            you_earn: number;
            return_requested_at: number;
            eta_return_trip: number;
            eta: number;
            per_minute_charges: number;
            base_minutes: number;
            you_earn_commission: number;
            you_earn_pass: number;
            free_load_unload_time: number;
            cancellation_charges_paid: number;
            routeUrl: string;
            is_request_type_broadcast: boolean;
            request_type: RequestType;
            sender_name: string;
            address_language: 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;
            is_bundle_booking: boolean;
            bundle_name: string;
            bundle_image: string;
            parcel_details: string;
            airport_pickup_charges: number;
            cancellation_charges: number;
            airport_drop_charges: number;
            flight_number: string;
            is_airport_pickup: boolean;
            is_airport_dropoff: boolean;
            arrived_at_intercity_destination: number;
            started_from_intercity_destination: number;
            coupon_id: string;
            vehicle_id: string;
            original_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;
            return_pickup_address: string;
            return_drop_address: string;
            pickup_lat: string;
            pickup_long: string;
            return_pickup_lat: string;
            return_pickup_long: string;
            total_distance_covered: number;
            drop_lat: string;
            drop_long: string;
            return_drop_lat: string;
            return_drop_long: string;
            paid_amount: number;
            pending_amount: number;
            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;
                };
            }[];
            return_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;
            insurance_multiplier: number;
            app_commission_unit: "percentage" | "fixed";
            arrived_at_stop_1: number;
            started_from_stop_1: number;
            arrived_at_return_stop_1: number;
            started_from_return_stop_1: number;
            arrived_at_return_stop_2: number;
            started_from_return_stop_2: 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;
            drop_time: number;
            exceeded_drop_time: 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;
            single_way_distance: number;
            return_trip_distance: number;
            base_fee: number;
            base_fee_with_discount: number;
            stop_charges: number;
            surcharge_amount: number;
            agent_commission: number;
            agent_commission_percentage: string;
            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;
            deduction_of_return_trip: number;
            cancellation_total: number;
            return_trip_charges: number;
            night_stay_charges: number;
            gender_prefrence: import("./schema/booking.schema").GenderPrefrence;
            ride_otp: number;
            is_return_trip_active: boolean;
            return_trip_otp: number;
            waiting_charge_per_min: number;
            is_waiting_charge_noti_send: boolean;
            is_unloading_charge_noti_send: boolean;
            is_stop1_charge_noti_send: boolean;
            is_stop2_charge_noti_send: boolean;
            is_return_stop1_charge_noti_send: boolean;
            is_return_stop2_charge_noti_send: boolean;
            is_intercity_waiting_noti_send: boolean;
            rate_by_customer: boolean;
            rate_by_driver: boolean;
            is_driver_assigned_automatically: boolean;
            extimated_delivery_time: string;
            start_ride_at: number;
            reached_destination: number;
            last_stop_charges_mins: number;
            last_unloading_charges_mins: number;
            return_trip: boolean;
            night_stay: boolean;
            last_stop2_charges_mins: number;
            last_return_stop1_charges_mins: number;
            last_return_stop2_charges_mins: number;
            last_intercity_waiting_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;
            guest_alternate_country_code: string;
            guest_alternate_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_value: 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;
            booking_for: string;
            number_of_seats: number;
        }> & {
            _id: Types.ObjectId;
        } & {
            __v: number;
        })[];
        count: number;
    }>;
    dispatchBookingDrivers(): Promise<any[]>;
}
