import { GuestLoginDto, MergedCustomerDto, RefferalsCustomerListingDto } from './dto/create-customer.dto';
import { CustomerCabAggregation } from './customer.aggreagtion';
import { MessageKey } from 'src/common/helpers/message-keys.enum';
import { CommonService } from 'src/common/common.service';
import { DbService } from 'src/db/db.service';
import { CustomerAggregation } from './customer.aggregation';
import mongoose, { Types } from 'mongoose';
import { CreateCustomerVendorQueryDto, CustomerListDto, CustomerWalletHistoryDto, DetailedSearchDto, QuickPicksDto, relevantSearchDto, UpdatePendingCustomerStatusDto, ReplyCustomerVendorQueryDto, vendorAddItemsToCustomerDto, YourOrdersDto, GlobalSearchDto, NearestPopularStoresDto, RestaurantsByCuisineDto, CuisineListDto, NearestStoresDto, OrderAgainDto } from './dto/customer.dto';
import { restaurantStatus, RestaurantVerificationStatus } from 'src/restaurant/schema/restaurant.schema';
import { SalesService } from 'src/sales/sales.service';
export declare class CustomerService {
    private readonly customerAggregation;
    private readonly model;
    private readonly commonService;
    private readonly SalesService;
    private readonly customerCabAggregation;
    constructor(customerAggregation: CustomerAggregation, model: DbService, commonService: CommonService, SalesService: SalesService, customerCabAggregation: CustomerCabAggregation);
    find_customer_with_id(id: string): Promise<mongoose.Document<unknown, {}, import("./schema/customer.schema").Customers, {}, {}> & import("./schema/customer.schema").Customers & {
        _id: Types.ObjectId;
    } & {
        __v: number;
    }>;
    GetAllRestaurant(body: any, page: any, limit: any, user_id?: string): Promise<{
        data_count: any;
        data: any[];
    }>;
    getNearestPopularStores(body: NearestPopularStoresDto, user_id?: string): Promise<{
        data_count: any;
        data: any;
    }>;
    getNearestStores(body: NearestStoresDto, user_id?: string): Promise<{
        data_count: any;
        data: any;
    }>;
    getCuisinesList(query: CuisineListDto): Promise<{
        data: (mongoose.Document<unknown, {}, import("../cuisine/schema/cuisine.schema").Cuisine, {}, {}> & import("../cuisine/schema/cuisine.schema").Cuisine & {
            _id: Types.ObjectId;
        } & {
            __v: number;
        })[];
        total: number;
    }>;
    getRestaurantsByCuisine(cuisine_id: string, query: RestaurantsByCuisineDto, user_id?: string): Promise<{
        data_count: any;
        data: any;
    }>;
    getOrderAgainList(body: OrderAgainDto, customer_id: string): Promise<{
        data_count: any;
        data: any;
    }>;
    QuickPicks(body: QuickPicksDto, user_id?: any): Promise<{
        data_count: number;
        data: any[];
    }>;
    get_quick_picks_customer: (body: QuickPicksDto, user_id?: string) => Promise<{
        data: any;
        count: any;
    }>;
    RelaventSearch(body: relevantSearchDto): Promise<{
        data: any[];
    }>;
    globalSearch(body: GlobalSearchDto): Promise<{
        status: boolean;
        data: any[];
    }>;
    DetailedSearch(dto: DetailedSearchDto, user_id?: any): Promise<{
        data: unknown[];
    }>;
    YourOrderList(dto: YourOrdersDto, customer_id: any): Promise<{
        count: any;
        data: any;
    }>;
    FindAllwithStatus(body: any, user: any): Promise<{
        count: any;
        data: any;
        active_customer_count: number;
        blocked_customer_count: number;
        deleted_customer_count: number;
    }>;
    customerDetailForAdmin(customer_id: string, user: any): Promise<{
        data: mongoose.FlattenMaps<{
            referral?: {
                referral_code: string;
                number_of_persons: number;
                number_of_orders: number;
                amount: number;
            };
            referral_id: string;
            name: string;
            referral_path: string;
            email: string;
            country_code: string;
            gender: import("./schema/customer.schema").Gender;
            phone: string;
            image: string;
            sos_country_code: string;
            sos_contact: string;
            block_reason: string;
            temp_email: string;
            temp_phone: string;
            temp_country_code: string;
            temp_email_otp: number;
            temp_phone_otp: number;
            temp_email_otp_at: number;
            current_address: string;
            temp_phone_otp_at: number;
            current_booking: string;
            is_active: boolean;
            is_block: boolean;
            is_email_verify: boolean;
            is_phone_verify: boolean;
            referral_code: string;
            referral_amount: number;
            applied_referral_code: string;
            applied_referral_code_consumed: boolean;
            wallet_balance: number;
            customer_id: string;
            rzr_contact_id: string;
            beneId: string;
            device_type: string;
            login_type: string;
            total_pending_amount: number;
            booking_pending_amount: number;
            pending_amount: number;
            is_card_added: boolean;
            preferred_currency: string;
            preferred_language: string;
            currency_symbol: string;
            ratings: number;
            socket_id: string;
            is_deleted: boolean;
            connection_id: string;
            total_donations: number;
            is_bank_added: boolean;
            timeZone: string;
            created_at: number;
            updated_at: number;
        }> & {
            _id: Types.ObjectId;
        } & {
            __v: number;
        };
        all_addresses: (mongoose.FlattenMaps<{
            customer_id: string;
            name: string;
            building_no: string;
            tower: string;
            area: string;
            city: string;
            nearby_landmark: string;
            lat: string;
            long: string;
            type: string;
            created_at: number;
            updated_at: number;
        }> & {
            _id: Types.ObjectId;
        } & {
            __v: number;
        })[];
        current_level: number;
    }>;
    block(body: any): Promise<{
        message: string;
    }>;
    updatePendingCustomerStatus(body: UpdatePendingCustomerStatusDto): Promise<{
        message: string;
    }>;
    customerOrders(body: any, user: any): Promise<{
        count: any;
        data: any;
    }>;
    customerActiveOrders(user: any): Promise<{
        data: any[];
    }>;
    handleWalletAmount(customerId: Types.ObjectId, rewardAmount: number, credit_type: string, note: string): Promise<void>;
    walletHistory(id: string, dto: CustomerWalletHistoryDto, payload: any): Promise<{
        wallet: mongoose.Document<unknown, {}, import("../wallet/entities/wallet.entity").Wallet, {}, {}> & import("../wallet/entities/wallet.entity").Wallet & Required<{
            _id: unknown;
        }> & {
            __v: number;
        };
        total: number;
        history: (mongoose.Document<unknown, {}, import("src/wallet/entities/wallet-transaction.entity").WalletTransaction, {}, {}> & import("src/wallet/entities/wallet-transaction.entity").WalletTransaction & Required<{
            _id: unknown;
        }> & {
            __v: number;
        })[];
    }>;
    customerList(dto: CustomerListDto, req: any): Promise<{
        count: any;
        data: any;
    }>;
    createCustomerVendorQuery(customerId: string, dto: CreateCustomerVendorQueryDto): Promise<{
        success: boolean;
        message: string;
        data: mongoose.Document<unknown, {}, import("./schema/customer_vendor_queries.schema").CustomerVendorQuery, {}, {}> & import("./schema/customer_vendor_queries.schema").CustomerVendorQuery & {
            _id: Types.ObjectId;
        } & {
            __v: number;
        };
    }>;
    replyCustomerVendorQuery(vendorId: string, dto: ReplyCustomerVendorQueryDto): Promise<{
        success: boolean;
        message: string;
    }>;
    vendorAddItemsToCustomerQuery(vendorId: string, dto: vendorAddItemsToCustomerDto): Promise<{
        success: boolean;
        message: string;
        cart_id: Types.ObjectId;
    }>;
    getItemsForCustomerQuery(id: string): Promise<{
        data: mongoose.Document<unknown, {}, import("./schema/vendor_add_items_customer_query.schema").VendorAddItemsCustomerQuery, {}, {}> & import("./schema/vendor_add_items_customer_query.schema").VendorAddItemsCustomerQuery & {
            _id: Types.ObjectId;
        } & {
            __v: number;
        };
    }>;
    getCustomerVendorQueries(payload: any, page?: number, limit?: number, restaurant_id?: string, customer_id?: string, status?: string): Promise<{
        success: boolean;
        message: string;
        count: number;
        page: number;
        limit: number;
        totalPages: number;
        total_query_count: number;
        pending_count: number;
        resolved_count: number;
        data: (mongoose.FlattenMaps<{
            customer_id: string;
            restaurant_id: string;
            query_text: string;
            image: string;
            reply: string;
            replied_by: string;
            replied_at: number;
            created_at: number;
            updated_at: number;
        }> & {
            _id: Types.ObjectId;
        } & {
            __v: number;
        })[];
    }>;
    getHomeModules(): Promise<{
        modules: any;
    }>;
    getAllCategories(type?: string, page?: number, limit?: number): Promise<{
        success: boolean;
        data: any[];
        total: any;
    }>;
    getCategoryItems(category_id: string, page?: number, limit?: number): Promise<{
        success: boolean;
        category_id: string;
        data: {
            food_items: (mongoose.FlattenMaps<{
                type: string;
                restaurant_id: string;
                category_id: string;
                food_type: string;
                image: string[];
                name: string;
                price: number;
                discounted_price: number;
                discount_type: string;
                discount_value: any;
                discount_start_date: string;
                discount_end_date: string;
                is_discount_active: boolean;
                pieces: {
                    title: string;
                    add_price: number;
                    final_price: number;
                }[];
                quantity: {
                    title: string;
                    add_price: number;
                    final_price: number;
                }[];
                size: {
                    title: string;
                    add_price: number;
                    final_price: number;
                }[];
                add_ons: {
                    title: string;
                    customer_selection: string;
                    additional_price: number;
                    min_selection: number;
                    max_selection: number;
                    selected_quantity: number;
                }[];
                other_add_ons: {
                    title: string;
                    description: string;
                    min_selection: number;
                    max_selection: number;
                    options: {
                        title: string;
                        additional_price: number;
                        customer_selection: string;
                        min_selection: number;
                        max_selection: number;
                    }[];
                }[];
                toppings: {
                    title: string;
                    customer_selection: string;
                    additional_price: number;
                    min_selection: number;
                    max_selection: number;
                    selected_quantity: number;
                }[];
                make_your_own: {
                    group_id: string;
                    title: string;
                    customer_selection: string;
                    additional_price: number;
                }[];
                item_timing: {
                    day: string;
                    day_id: string;
                    start_time: string;
                    end_time: string;
                }[];
                availability_type: string;
                is_available: boolean;
                availability_status: string;
                rating: number;
                extimate_time: number;
                description: string;
                is_recommend: boolean;
                sort_index: {
                    type: {
                        toString: (radix?: number) => string;
                        toFixed: (fractionDigits?: number) => string;
                        toExponential: (fractionDigits?: number) => string;
                        toPrecision: (precision?: number) => string;
                        valueOf: () => number;
                        toLocaleString: {
                            (locales?: string | string[], options?: Intl.NumberFormatOptions): string;
                            (locales?: Intl.LocalesArgument, options?: Intl.NumberFormatOptions): string;
                        };
                    };
                    default: mongoose.mongo.Binary;
                };
                created_at: number;
                updated_at: number;
                embedding: number[];
                order_count: {
                    type: {
                        toString: (radix?: number) => string;
                        toFixed: (fractionDigits?: number) => string;
                        toExponential: (fractionDigits?: number) => string;
                        toPrecision: (precision?: number) => string;
                        valueOf: () => number;
                        toLocaleString: {
                            (locales?: string | string[], options?: Intl.NumberFormatOptions): string;
                            (locales?: Intl.LocalesArgument, options?: Intl.NumberFormatOptions): string;
                        };
                    };
                    default: 0;
                };
                trending_count: {
                    type: {
                        toString: (radix?: number) => string;
                        toFixed: (fractionDigits?: number) => string;
                        toExponential: (fractionDigits?: number) => string;
                        toPrecision: (precision?: number) => string;
                        valueOf: () => number;
                        toLocaleString: {
                            (locales?: string | string[], options?: Intl.NumberFormatOptions): string;
                            (locales?: Intl.LocalesArgument, options?: Intl.NumberFormatOptions): string;
                        };
                    };
                    default: 0;
                };
                home_cooked_service_id: string;
                restaurant_type?: string;
                catering_services: boolean;
                is_deleted: boolean;
                admin_commission: number;
            }> & {
                _id: Types.ObjectId;
            } & {
                __v: number;
            })[];
            grocery_items: (mongoose.FlattenMaps<{
                type?: string;
                store_id: string;
                category_id: string;
                name: string;
                description: string;
                size: string;
                quantity: string;
                unit: string;
                price: number;
                discounted_price: number;
                discount_type: string;
                discount_value: any;
                discount_start_date: string;
                discount_end_date: string;
                is_discount_active: boolean;
                imageUrl: string;
                is_deleted: boolean;
                stock: number;
                barcode_id: string;
                barcode_url: string;
                admin_commission: number;
                is_available: boolean;
                availability_status: string;
                is_hidden: boolean;
            }> & {
                _id: Types.ObjectId;
            } & {
                __v: number;
            })[];
        };
        pagination: {
            total: number;
            page: number;
            limit: number;
            totalPages: number;
        };
    }>;
    getStoresByCategory(category_id: string, page?: number, limit?: number): Promise<{
        success: boolean;
        category_id: string;
        data: (mongoose.FlattenMaps<{
            slug: string;
            vendor_id: string;
            type: string;
            restaurant_name: string;
            restaurant_phone: string;
            average_preparing_time: number;
            address: {
                name: string;
                building_no: string;
                tower: string;
                area: string;
                city: string;
                nearby_landmark: 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;
                };
            };
            location: {
                type: string;
                coordinates: number[];
            };
            country_code: string;
            image: string;
            food_licence_image: string;
            status: restaurantStatus;
            working_day: {
                day: string;
                is_24_hrs: boolean;
                day_id: string;
                timing: {
                    start_time: string;
                    end_time: string;
                }[];
            }[];
            dine_out_working_day: {
                day: string;
                is_24_hrs: boolean;
                day_id: string;
                timing: {
                    start_time: string;
                    end_time: string;
                }[];
            }[];
            food_type: string[];
            is_active: boolean;
            is_block: boolean;
            reason: string;
            rating: number;
            is_restaurant_verified: boolean;
            is_submit_verification: boolean;
            is_restaurant_update: boolean;
            is_docs_update: boolean;
            verification: RestaurantVerificationStatus;
            doc_update_verification: RestaurantVerificationStatus;
            is_quick_pick: boolean;
            quick_pick_time: number;
            total_orders: number;
            is_deleted: boolean;
            report_reason_id: string;
            created_at: number;
            updated_at: number;
            restaurant_discount: {
                discount: number;
                start_time: number;
                end_time: number;
            };
            restaurant_discount_update: boolean;
            is_verfication_submitted: boolean;
            restaurant_type?: string;
            isFoodDelivery: boolean;
            isDineOut: boolean;
            catering_services: boolean;
            estimated_price_per_plate: number;
            booking_amount: number;
            uploadRestaurantMenu?: string[];
            uploadRestaurantPhotos?: string[];
            services: string[];
            amenities?: string[];
            cuisine_ids?: string[];
            maximum_capacity_slot: number;
            buffer_time: number;
            total_availability: {
                table: string;
                seats: number;
            }[];
            subscribers_limit: {
                type: {
                    toString: (radix?: number) => string;
                    toFixed: (fractionDigits?: number) => string;
                    toExponential: (fractionDigits?: number) => string;
                    toPrecision: (precision?: number) => string;
                    valueOf: () => number;
                    toLocaleString: {
                        (locales?: string | string[], options?: Intl.NumberFormatOptions): string;
                        (locales?: Intl.LocalesArgument, options?: Intl.NumberFormatOptions): string;
                    };
                };
                default: 0;
            };
            referral_user: string;
            referral_path: string[];
            vendor_commission: number;
            embedding: number[];
            pending_status: string;
            pending_status_reason: string;
        }> & {
            _id: Types.ObjectId;
        } & {
            __v: number;
        })[];
        pagination: {
            total: number;
            page: number;
            limit: number;
            totalPages: number;
        };
    }>;
    getCustomerAnalytics(id: string): Promise<{
        data: {
            total_orders: number;
            total_active_order: number;
            total_orders_delivered: number;
            total_cancelled_order: number;
            cancellation_order_percentage: number;
            total_spent_amount: number;
            total_dineout_booking: number;
            total_catering_booking: number;
        };
    }>;
    guestLogin(body: GuestLoginDto): Promise<void>;
    add_address(body: any, user_id: String): Promise<{
        data: any;
    }>;
    getAllRefferalAvailCustomersListing(dto: RefferalsCustomerListingDto): Promise<{
        data: {
            _id: any;
            date: any;
            referred_by: {
                name: any;
                phone: any;
                country_code: any;
            };
            referred_to: {
                name: any;
                phone: any;
                country_code: any;
                email: any;
            };
            bookings_to_complete: any;
            bookings_completed: number;
            days_left: number;
            bonus: any;
            payout_status: string;
            status: string;
        }[];
        count: number;
        message: MessageKey;
    }>;
    delete_address(id: any): Promise<{
        message: MessageKey;
    }>;
    get_customer_address(user_id: any): Promise<{
        data: (mongoose.Document<unknown, {}, import("../address/schema/customer-address.schema").CustomerAddress, {}, {}> & import("../address/schema/customer-address.schema").CustomerAddress & {
            _id: Types.ObjectId;
        } & {
            __v: number;
        })[];
    }>;
    FindAllwithStatusCustomerBackup(body: any): Promise<{
        count: any;
        data: any;
    }>;
    customer_details(id: any): Promise<{
        data: mongoose.Document<unknown, {}, import("./schema/customer.schema").Customers, {}, {}> & import("./schema/customer.schema").Customers & {
            _id: Types.ObjectId;
        } & {
            __v: number;
        };
    }>;
    update_customer_active_deactive(body: any): Promise<{
        message: MessageKey;
    }>;
    customer_bookings(id: String, page: any, limit: any): Promise<{
        count: any;
        data: any;
    }>;
    getMergedCustomers(body: MergedCustomerDto): Promise<{
        data: (mongoose.FlattenMaps<mongoose.Document<unknown, {}, import("../driver-customer-backup/schema/customerBackup.schema").CustomersBackup, {}, {}> & import("../driver-customer-backup/schema/customerBackup.schema").CustomersBackup & {
            _id: Types.ObjectId;
        } & {
            __v: number;
        }> & Required<{
            _id: Types.ObjectId;
        }>)[];
        count: number;
        page: number;
        limit: number;
    }>;
}
