import mongoose from 'mongoose';
export declare class OrderAggregation {
    match(order_id: any): Promise<{
        $match: {
            _id: mongoose.Types.ObjectId;
        };
    }>;
    CustomerLookup(): Promise<{
        $lookup: {
            from: string;
            let: {
                customer_id: string;
            };
            pipeline: {
                $match: {
                    $expr: {
                        $and: {
                            $eq: string[];
                        }[];
                    };
                };
            }[];
            as: string;
        };
    }>;
    DriverLookup(): Promise<{
        $lookup: {
            from: string;
            let: {
                driver_id: string;
            };
            pipeline: {
                $match: {
                    $expr: {
                        $and: {
                            $eq: string[];
                        }[];
                    };
                };
            }[];
            as: string;
        };
    }>;
    AddOnLookup(): Promise<{
        $lookup: {
            from: string;
            let: {
                customer_id: string;
            };
            pipeline: ({
                $match: {
                    $expr: {
                        $and: {
                            $eq: string[];
                        }[];
                    };
                };
                $project?: undefined;
            } | {
                $project: {
                    name: number;
                };
                $match?: undefined;
            })[];
            as: string;
        };
    }>;
    RatingLookup(): Promise<{
        $lookup: {
            from: string;
            let: {
                order_id: string;
            };
            pipeline: {
                $match: {
                    $expr: {
                        $and: {
                            $eq: string[];
                        }[];
                    };
                };
            }[];
            as: string;
        };
    }>;
    RestaurantLookup(): Promise<{
        $lookup: {
            from: string;
            let: {
                restaurant_id: string;
            };
            pipeline: {
                $match: {
                    $expr: {
                        $and: {
                            $eq: string[];
                        }[];
                    };
                };
            }[];
            as: string;
        };
    }>;
    UnwindCustomerLookup(): Promise<{
        $unwind: {
            path: string;
            preserveNullAndEmptyArrays: boolean;
        };
    }>;
    UnwindDriverLookup(): Promise<{
        $unwind: {
            path: string;
            preserveNullAndEmptyArrays: boolean;
        };
    }>;
    UnwindRestaurantLookup(): Promise<{
        $unwind: {
            path: string;
            preserveNullAndEmptyArrays: boolean;
        };
    }>;
    UnwindReviewLookup(): Promise<{
        $unwind: {
            path: string;
            preserveNullAndEmptyArrays: boolean;
        };
    }>;
    SurchargeLookup(): Promise<{
        $lookup: {
            from: string;
            let: {
                surcharge_ids: string;
            };
            pipeline: ({
                $match: {
                    $expr: {
                        $or: ({
                            $in: (string | {
                                $ifNull: (string | any[])[];
                            })[];
                        } | {
                            $in: ({
                                $toString: string;
                                $ifNull?: undefined;
                            } | {
                                $ifNull: (string | any[])[];
                                $toString?: undefined;
                            })[];
                        })[];
                    };
                };
                $project?: undefined;
            } | {
                $project: {
                    _id: number;
                    name: number;
                    amount: string;
                    amount_type: number;
                    charge_type: number;
                    surcharge_type: string;
                };
                $match?: undefined;
            })[];
            as: string;
        };
    }>;
    project(): Promise<{
        $project: {
            customer: number;
            driver: number;
            restaurant: number;
            order_id: number;
            cart_items: number;
            other_cart_items: number;
            delivery_address: number;
            promo_wallet_redeemed: number;
            promo_wallet_amount: number;
            loyalty_point_redeemed: number;
            note_for_restaurant: number;
            review: number;
            order_status: number;
            order_type: number;
            rider_status: number;
            order_placed_at: number;
            order_confirmed_at: number;
            add_receiver_detail: number;
            order_prepared_at: number;
            order_ready_at: number;
            order_picked_up_at: number;
            order_delivered_at: number;
            more_time_required_at: number;
            add_more_time: number;
            cart_amount: number;
            coupon_amount: number;
            platform_fee: number;
            delivery_fee: number;
            free_delivery_fee: number;
            tax_amount: number;
            sales_commission: number;
            total_amount: number;
            driver_rating: number;
            restaurant_rating: number;
            add_delivery_instruction: number;
            payment_status: number;
            refund_at: number;
            refund_liability: number;
            refund_reason: number;
            is_refund: number;
            distance: number;
            created_at: number;
            updated_at: number;
            scheduled_time: number;
            tip_amount: number;
            delivery_otp: number;
            otp_sent_at: number;
            deliver_type: number;
            payment_type: number;
            is_placed_by_admin: number;
            placed_by_admin_id: number;
            is_paid_by_admin: number;
            is_reordered_by_admin: number;
            reordered_order_id: number;
            reordered_at: number;
            is_handover: number;
            handover_id: number;
            previous_driver_id: number;
            surcharges: 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;
            })[];
        };
    }>;
}
