import { AdminRewardWalletListDto } from './dto/admin-reward-wallet.dto';
import { SalesCommissionDistributionListDto } from './dto/sales-commission-distribution-list.dto';
export declare class SalesAggregation {
    adminRewardWalletPipeline(query: AdminRewardWalletListDto): Promise<any[]>;
    salesCommissionMatchStage(query: SalesCommissionDistributionListDto): {
        $match: any;
    };
    salesCommissionCustomerLookup(): {
        $lookup: {
            from: string;
            let: {
                customer_id: string;
            };
            pipeline: ({
                $match: {
                    $expr: {
                        $eq: string[];
                    };
                };
                $project?: undefined;
            } | {
                $project: {
                    _id: number;
                    name: number;
                    email: number;
                };
                $match?: undefined;
            })[];
            as: string;
        };
    };
    salesCommissionUnwindCustomer(): {
        $unwind: {
            path: string;
            preserveNullAndEmptyArrays: boolean;
        };
    };
    salesCommissionRestaurantLookup(): {
        $lookup: {
            from: string;
            let: {
                restaurant_id: string;
            };
            pipeline: ({
                $match: {
                    $expr: {
                        $eq: string[];
                    };
                };
                $project?: undefined;
            } | {
                $project: {
                    _id: number;
                    name: string;
                    restaurant_name: number;
                    image: number;
                };
                $match?: undefined;
            })[];
            as: string;
        };
    };
    salesCommissionUnwindRestaurant(): {
        $unwind: {
            path: string;
            preserveNullAndEmptyArrays: boolean;
        };
    };
    salesCommissionSearchMatchStage(search?: string): {
        $match: {
            $or: ({
                'customer.name': {
                    $regex: string;
                    $options: string;
                };
                'customer.email'?: undefined;
                'restaurant.name'?: undefined;
                'restaurant.restaurant_name'?: undefined;
            } | {
                'customer.email': {
                    $regex: string;
                    $options: string;
                };
                'customer.name'?: undefined;
                'restaurant.name'?: undefined;
                'restaurant.restaurant_name'?: undefined;
            } | {
                'restaurant.name': {
                    $regex: string;
                    $options: string;
                };
                'customer.name'?: undefined;
                'customer.email'?: undefined;
                'restaurant.restaurant_name'?: undefined;
            } | {
                'restaurant.restaurant_name': {
                    $regex: string;
                    $options: string;
                };
                'customer.name'?: undefined;
                'customer.email'?: undefined;
                'restaurant.name'?: undefined;
            })[];
        };
    };
    salesCommissionOrderLookup(): {
        $lookup: {
            from: string;
            localField: string;
            foreignField: string;
            as: string;
        };
    };
    salesCommissionOrderUnwind(): {
        $unwind: {
            path: string;
            preserveNullAndEmptyArrays: boolean;
        };
    };
    salesCommissionPlateLookup(): {
        $lookup: {
            from: string;
            localField: string;
            foreignField: string;
            as: string;
        };
    };
    salesCommissionPlateUnwind(): {
        $unwind: {
            path: string;
            preserveNullAndEmptyArrays: boolean;
        };
    };
    salesCommissionBookingLookup(): {
        $lookup: {
            from: string;
            localField: string;
            foreignField: string;
            as: string;
        };
    };
    salesCommissionBookingUnwind(): {
        $unwind: {
            path: string;
            preserveNullAndEmptyArrays: boolean;
        };
    };
    salesCommissionFacetStage(skip: number, limit: number): {
        $facet: {
            data: ({
                $sort: {
                    createdAt: number;
                };
                $skip?: undefined;
                $limit?: undefined;
                $project?: undefined;
            } | {
                $skip: number;
                $sort?: undefined;
                $limit?: undefined;
                $project?: undefined;
            } | {
                $limit: number;
                $sort?: undefined;
                $skip?: undefined;
                $project?: undefined;
            } | {
                $project: {
                    _id: number;
                    customer_id: number;
                    restaurant_id: number;
                    amount: number;
                    sale_commission: number;
                    company_wallet: number;
                    customer_commission_wallet: number;
                    user_sponsor_commission: number;
                    vendor_sponsor_commission: number;
                    rewards: number;
                    createdAt: number;
                    updatedAt: number;
                    customer: number;
                    restaurant: number;
                    order_detail: {
                        $cond: ({
                            $ne: string[];
                            id?: undefined;
                            display_id?: undefined;
                            type?: undefined;
                            $cond?: undefined;
                        } | {
                            id: string;
                            display_id: string;
                            type: string;
                            $ne?: undefined;
                            $cond?: undefined;
                        } | {
                            $cond: ({
                                $ne: string[];
                                id?: undefined;
                                display_id?: undefined;
                                type?: undefined;
                                $cond?: undefined;
                            } | {
                                id: string;
                                display_id: string;
                                type: string;
                                $ne?: undefined;
                                $cond?: undefined;
                            } | {
                                $cond: ({
                                    $ne: string[];
                                    id?: undefined;
                                    display_id?: undefined;
                                    type?: undefined;
                                } | {
                                    id: string;
                                    display_id: string;
                                    type: string;
                                    $ne?: undefined;
                                })[];
                                $ne?: undefined;
                                id?: undefined;
                                display_id?: undefined;
                                type?: undefined;
                            })[];
                            $ne?: undefined;
                            id?: undefined;
                            display_id?: undefined;
                            type?: undefined;
                        })[];
                    };
                };
                $sort?: undefined;
                $skip?: undefined;
                $limit?: undefined;
            })[];
            metadata: {
                $group: {
                    _id: any;
                    total_count: {
                        $sum: number;
                    };
                    total_sale_commission: {
                        $sum: string;
                    };
                    total_company_wallet: {
                        $sum: string;
                    };
                    total_customer_commission_wallet: {
                        $sum: string;
                    };
                };
            }[];
        };
    };
    salesCommissionDistributionPipeline(query: SalesCommissionDistributionListDto): any[];
}
