import { Types } from 'mongoose';
export declare class EarningAggregations {
    match(query: any): Promise<{
        $match: any;
    }>;
    lookupOrder(): Promise<{
        $lookup: {
            from: string;
            let: {
                orderId: string;
            };
            pipeline: ({
                $lookup: {
                    from: string;
                    let: {
                        product_id: string;
                    };
                    pipeline: ({
                        $match: {
                            $expr: {
                                $eq: string[];
                            };
                        };
                        $project?: undefined;
                    } | {
                        $project: {
                            _id: number;
                            name: number;
                            description: number;
                            price: number;
                            image: number;
                        };
                        $match?: undefined;
                    })[];
                    as: string;
                };
            } | {
                $unwind: {
                    path: string;
                    preserveNullAndEmptyArrays: boolean;
                };
            } | {
                $match: {
                    $expr: {
                        $eq: string[];
                    };
                };
                $project?: undefined;
            } | {
                $project: {
                    _id: number;
                    order_id: number;
                    customer_id: number;
                    vendor_id: number;
                    product_id: number;
                    order_status: number;
                    payment_status: number;
                    total_price: number;
                    product: number;
                    created_at: number;
                };
                $match?: undefined;
            })[];
            as: string;
        };
    }>;
    unwindOrder(): Promise<{
        $unwind: {
            path: string;
        };
    }>;
    facetData(skip: number, limit: number): Promise<{
        $facet: {
            count: {
                $count: string;
            }[];
            data: ({
                $sort: {
                    created_at: number;
                };
                $skip?: undefined;
                $limit?: undefined;
            } | {
                $skip: number;
                $sort?: undefined;
                $limit?: undefined;
            } | {
                $limit: number;
                $sort?: undefined;
                $skip?: undefined;
            })[];
        };
    }>;
    matchId(id: string): Promise<{
        $match: {
            _id: Types.ObjectId;
            is_deleted: boolean;
        };
    }>;
    lookupCustomer(): Promise<{
        $lookup: {
            from: string;
            let: {
                customer_id: string;
            };
            pipeline: ({
                $match: {
                    $expr: {
                        $eq: string[];
                    };
                };
                $project?: undefined;
            } | {
                $project: {
                    _id: number;
                    name: number;
                    email: number;
                    phone_no: number;
                    country_code: number;
                    profile_pic: number;
                };
                $match?: undefined;
            })[];
            as: string;
        };
    }>;
    unwindCustomer(): Promise<{
        $unwind: {
            path: string;
            preserveNullAndEmptyArrays: boolean;
        };
    }>;
    lookupVendor(): Promise<{
        $lookup: {
            from: string;
            let: {
                vendor_id: string;
            };
            pipeline: ({
                $match: {
                    $expr: {
                        $eq: string[];
                    };
                };
                $project?: undefined;
            } | {
                $project: {
                    _id: number;
                    name: number;
                    email: number;
                    phone_no: number;
                    country_code: number;
                    profile_pic: number;
                };
                $match?: undefined;
            })[];
            as: string;
        };
    }>;
    unwindVendor(): Promise<{
        $unwind: {
            path: string;
            preserveNullAndEmptyArrays: boolean;
        };
    }>;
    sortByCreatedAt(): Promise<{
        $sort: {
            created_at: number;
        };
    }>;
    projectData(): Promise<{
        $project: {
            orders: string;
            total: {
                $arrayElemAt: (string | number)[];
            };
        };
    }>;
    lookupProduct(): Promise<{
        $lookup: {
            from: string;
            let: {
                product_id: string;
            };
            pipeline: ({
                $match: {
                    $expr: {
                        $eq: string[];
                    };
                };
                $project?: undefined;
            } | {
                $project: {
                    _id: number;
                    name: number;
                    description: number;
                    price: number;
                    image: number;
                };
                $match?: undefined;
            })[];
            as: string;
        };
    }>;
    unwindProduct(): Promise<{
        $unwind: {
            path: string;
            preserveNullAndEmptyArrays: boolean;
        };
    }>;
    lookupOrderHistories(): Promise<{
        $lookup: {
            from: string;
            let: {
                order_id: string;
            };
            pipeline: ({
                $match: {
                    $expr: {
                        $eq: string[];
                    };
                };
                $project?: undefined;
            } | {
                $project: {
                    _id: number;
                    history_status: number;
                    created_at: number;
                };
                $match?: undefined;
            })[];
            as: string;
        };
    }>;
}
