import * as mongoose from 'mongoose';
export declare class BookingAggregation {
    match(id: any): Promise<{
        $match: {
            _id: mongoose.Types.ObjectId;
        };
    }>;
    lookupVehiclePricesStage(): Promise<{
        $lookup: {
            from: string;
            let: {
                id: string;
            };
            pipeline: ({
                $match: {
                    $expr: {
                        $eq: string[];
                    };
                };
                $project?: undefined;
            } | {
                $project: {
                    handbags: number;
                    luggage: number;
                    passenger: number;
                };
                $match?: undefined;
            })[];
            as: string;
        };
    }>;
    lookupVehicleTypeStage(): Promise<{
        $lookup: {
            from: string;
            let: {
                id: string;
            };
            pipeline: ({
                $match: {
                    $expr: {
                        $eq: string[];
                    };
                };
                $project?: undefined;
            } | {
                $project: {
                    _id: number;
                    vehicle_type: number;
                    image: number;
                };
                $match?: undefined;
            })[];
            as: string;
        };
    }>;
    lookupVehicleDetails(): Promise<{
        $lookup: {
            from: string;
            let: {
                id: string;
            };
            pipeline: ({
                $match: {
                    $expr: {
                        $and: {
                            $eq: string[];
                        }[];
                    };
                };
                $project?: undefined;
            } | {
                $project: {
                    _id: number;
                    name: number;
                    model: number;
                    number: number;
                };
                $match?: undefined;
            })[];
            as: string;
        };
    }>;
    getBookingRequirementFilter(booking: any): Promise<Record<string, any>>;
    bookingReviewLookup(): Promise<{
        $lookup: {
            from: string;
            let: {
                booking_id: string;
            };
            pipeline: {
                $match: {
                    $expr: {
                        $and: {
                            $eq: string[];
                        }[];
                    };
                };
            }[];
            as: string;
        };
    }>;
    unwind_review_detail(): Promise<{
        $unwind: string;
    }>;
    customerNameLookup(): Promise<{
        $lookup: {
            from: string;
            let: {
                customerId: string;
            };
            pipeline: ({
                $match: {
                    $expr: {
                        $and: {
                            $eq: string[];
                        }[];
                    };
                };
                $project?: undefined;
            } | {
                $project: {
                    name: number;
                    email: number;
                    timeZone: number;
                };
                $match?: undefined;
            })[];
            as: string;
        };
    }>;
    customer_unwind(): Promise<{
        $unwind: {
            path: string;
            preserveNullAndEmptyArrays: boolean;
        };
    }>;
    dispatcherNameLookup(): Promise<{
        $lookup: {
            from: string;
            let: {
                dispatcher_id: string;
            };
            pipeline: ({
                $match: {
                    $expr: {
                        $and: {
                            $eq: string[];
                        }[];
                    };
                };
                $project?: undefined;
            } | {
                $project: {
                    name: number;
                };
                $match?: undefined;
            })[];
            as: string;
        };
    }>;
    dispatcher_unwind(): Promise<{
        $unwind: {
            path: string;
            preserveNullAndEmptyArrays: boolean;
        };
    }>;
    AssignedNameLookup(): Promise<{
        $lookup: {
            from: string;
            let: {
                assigned_by: string;
            };
            pipeline: ({
                $match: {
                    $expr: {
                        $and: {
                            $eq: string[];
                        }[];
                    };
                };
                $project?: undefined;
            } | {
                $project: {
                    name: number;
                };
                $match?: undefined;
            })[];
            as: string;
        };
    }>;
    Assigned_unwind(): Promise<{
        $unwind: {
            path: string;
            preserveNullAndEmptyArrays: boolean;
        };
    }>;
    driverNameLookup(): Promise<{
        $lookup: {
            from: string;
            let: {
                driverId: string;
            };
            pipeline: ({
                $match: {
                    $expr: {
                        $and: {
                            $eq: string[];
                        }[];
                    };
                };
                $project?: undefined;
            } | {
                $project: {
                    name: number;
                    email: number;
                };
                $match?: undefined;
            })[];
            as: string;
        };
    }>;
    driver_unwind(): Promise<{
        $unwind: {
            path: string;
            preserveNullAndEmptyArrays: boolean;
        };
    }>;
    vehicleNameLookup(): Promise<{
        $lookup: {
            from: string;
            let: {
                id: string;
            };
            pipeline: {
                $match: {
                    $expr: {
                        $and: {
                            $eq: string[];
                        }[];
                    };
                };
            }[];
            as: string;
        };
    }>;
    vehicleTypeLookup(): Promise<{
        $lookup: {
            from: string;
            let: {
                id: string;
            };
            pipeline: {
                $match: {
                    $expr: {
                        $and: {
                            $eq: string[];
                        }[];
                    };
                };
            }[];
            as: string;
        };
    }>;
    vehicle_unwind(): Promise<{
        $unwind: {
            path: string;
            preserveNullAndEmptyArrays: boolean;
        };
    }>;
    CouponDetailLookup(): Promise<{
        $lookup: {
            from: string;
            let: {
                id: string;
            };
            pipeline: ({
                $match: {
                    $expr: {
                        $and: {
                            $eq: string[];
                        }[];
                    };
                };
                $project?: undefined;
            } | {
                $project: {
                    type: number;
                    code: number;
                    discount_percentage: number;
                    maximum_discount_amount: number;
                };
                $match?: undefined;
            })[];
            as: string;
        };
    }>;
}
