import mongoose from 'mongoose';
export declare class FavouriteAggregation {
    match(customer_id: any): Promise<{
        $match: {
            customer_id: mongoose.Types.ObjectId;
        };
    }>;
    RestaurantLookup(): Promise<{
        $lookup: {
            from: string;
            let: {
                restaurant_id: string;
            };
            pipeline: ({
                $match: {
                    $expr: {
                        $and: {
                            $eq: string[];
                        }[];
                    };
                };
                $addFields?: undefined;
            } | {
                $addFields: {
                    is_fav: boolean;
                };
                $match?: undefined;
            })[];
            as: string;
        };
    }>;
    RatingLookup(): Promise<{
        $lookup: {
            from: string;
            let: {
                restaurant_id: string;
            };
            pipeline: ({
                $match: {
                    $expr: {
                        $eq: string[];
                    };
                };
                $group?: undefined;
            } | {
                $group: {
                    _id: any;
                    reviewCount: {
                        $sum: number;
                    };
                };
                $match?: undefined;
            })[];
            as: string;
        };
    }>;
    UnwindRestaurant(): Promise<{
        $unwind: {
            path: string;
            preserveNullAndEmptyArrays: boolean;
        };
    }>;
    couponsLookup(): Promise<{
        $lookup: {
            from: string;
            let: {
                restaurant_id: string;
            };
            pipeline: {
                $match: {
                    $expr: {
                        $and: {
                            $eq: string[];
                        }[];
                    };
                };
            }[];
            as: string;
        };
    }>;
    categoryLookup(): Promise<{
        $lookup: {
            from: string;
            let: {
                restaurant_id: string;
            };
            pipeline: ({
                $match: {
                    $expr: {
                        $eq: string[];
                    };
                };
                $group?: undefined;
                $lookup?: undefined;
                $unwind?: undefined;
                $replaceRoot?: undefined;
            } | {
                $group: {
                    _id: any;
                    uniqueCategories: {
                        $addToSet: string;
                    };
                };
                $match?: undefined;
                $lookup?: undefined;
                $unwind?: undefined;
                $replaceRoot?: undefined;
            } | {
                $lookup: {
                    from: string;
                    localField: string;
                    foreignField: string;
                    as: string;
                };
                $match?: undefined;
                $group?: undefined;
                $unwind?: undefined;
                $replaceRoot?: undefined;
            } | {
                $unwind: {
                    path: string;
                    preserveNullAndEmptyArrays: boolean;
                };
                $match?: undefined;
                $group?: undefined;
                $lookup?: undefined;
                $replaceRoot?: undefined;
            } | {
                $replaceRoot: {
                    newRoot: string;
                };
                $match?: undefined;
                $group?: undefined;
                $lookup?: undefined;
                $unwind?: undefined;
            })[];
            as: string;
        };
    }>;
    project(): Promise<{
        $project: {
            restaurant: number;
            coupon: number;
            category: number;
            reviewCount: 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;
            })[];
        };
    }>;
}
