import mongoose from "mongoose";
export declare class ReviewAggregation {
    customerMatch(customer_id: string): Promise<{
        $match: {
            customer_id: mongoose.Types.ObjectId;
            rated_by: string;
        };
    }>;
    driver_lookup(): Promise<{
        $lookup: {
            from: string;
            localField: string;
            foreignField: string;
            as: string;
        };
    }>;
    UnwindDriverLookup(): Promise<{
        $unwind: {
            path: string;
            preserveNullAndEmptyArrays: boolean;
        };
    }>;
    match(restaurant_id: any): Promise<{
        $match: {
            restaurant_id: mongoose.Types.ObjectId;
            rated_by: string;
        };
    }>;
    driverMatch(driver_id: any): Promise<{
        $match: {
            driver_id: mongoose.Types.ObjectId;
            rated_by: string;
        };
    }>;
    customer_lookup(): Promise<{
        $lookup: {
            from: string;
            let: {
                customer_id: string;
            };
            pipeline: ({
                $match: {
                    $expr: {
                        $and: {
                            $eq: string[];
                        }[];
                    };
                };
                $project?: undefined;
            } | {
                $project: {
                    _id: number;
                    name: number;
                    image: number;
                };
                $match?: undefined;
            })[];
            as: string;
        };
    }>;
    UnwindCustomerLookup(): Promise<{
        $unwind: {
            path: string;
            preserveNullAndEmptyArrays: boolean;
        };
    }>;
    RestaurantLookup(): Promise<{
        $lookup: {
            from: string;
            let: {
                restaurant_id: string;
            };
            pipeline: ({
                $match: {
                    $expr: {
                        $and: {
                            $eq: string[];
                        }[];
                    };
                };
                $project?: undefined;
            } | {
                $project: {
                    _id: number;
                    restaurant_name: number;
                    rating: number;
                };
                $match?: undefined;
            })[];
            as: string;
        };
    }>;
    UnwindRestaurantLookup(): Promise<{
        $unwind: {
            path: string;
            preserveNullAndEmptyArrays: boolean;
        };
    }>;
    project(): Promise<{
        $project: {
            description: number;
            rating: number;
            driver: number;
            customer: number;
            image: number;
            created_at: number;
        };
    }>;
    face_set(option: any): Promise<{
        $facet: {
            count: {
                $count: string;
            }[];
            data: ({
                $sort: {
                    _id: 1 | -1;
                };
                $skip?: undefined;
                $limit?: undefined;
            } | {
                $skip: any;
                $sort?: undefined;
                $limit?: undefined;
            } | {
                $limit: any;
                $sort?: undefined;
                $skip?: undefined;
            })[];
        };
    }>;
}
