import { ReviewAggregation } from "./review.aggregation";
import mongoose, { Types } from 'mongoose';
import { AddReviewDto } from './dto/review.dto';
import { BookingService } from 'src/booking/booking.service';
import { DbService } from 'src/db/db.service';
import { CommonService } from 'src/common/common.service';
export declare class ReviewService {
    private readonly bookingService;
    private readonly model;
    private readonly commonService;
    private readonly reviewAggregation;
    constructor(bookingService: BookingService, model: DbService, commonService: CommonService, reviewAggregation: ReviewAggregation);
    create(body: AddReviewDto, payload: any, req: any): Promise<{
        message: any;
    }>;
    findAll_old(payload: any, page: any, limit: any): Promise<{
        count: any;
        overall_rating: string;
        data: any;
    }>;
    findAll(payload: any, page?: number, limit?: number): Promise<{
        count: number;
        overall_rating: number;
        data: (mongoose.FlattenMaps<{
            booking_id: string;
            driver_id: string;
            customer_id: string;
            rate: number;
            description: string;
            type: string;
            created_at: number;
            updated_at: number;
        }> & {
            _id: Types.ObjectId;
        } & {
            __v: number;
        })[];
    }>;
    update_rating(booking: any, payload: any): Promise<void>;
    RateRestaurant(body: any, payload: any): Promise<{
        data: mongoose.Document<unknown, {}, import("./schema/reviews.schema").Reviews, {}, {}> & import("./schema/reviews.schema").Reviews & {
            _id: Types.ObjectId;
        } & {
            __v: number;
        };
    }>;
    rateDriver(body: any, payload: any): Promise<{
        data: mongoose.Document<unknown, {}, import("./schema/reviews.schema").Reviews, {}, {}> & import("./schema/reviews.schema").Reviews & {
            _id: Types.ObjectId;
        } & {
            __v: number;
        };
    }>;
    rateCustomer(body: any, payload: any): Promise<{
        data: mongoose.Document<unknown, {}, import("./schema/reviews.schema").Reviews, {}, {}> & import("./schema/reviews.schema").Reviews & {
            _id: Types.ObjectId;
        } & {
            __v: number;
        };
    }>;
    UpdateCustomerRating(body: any): Promise<void>;
    UpdateRestaurantRating(body: any): Promise<void>;
    UpdateDriverRating(body: any): Promise<void>;
    UpdateFoodRating(body: any): Promise<void>;
    RestaurantReview(restaurant_id: any, page: any, limit: any): Promise<{
        restaurant_name: string;
        overall_rating: number;
        count: any;
        data: any;
    }>;
    driverReview(driver_id: any, page: any, limit: any): Promise<{
        driver_name: string;
        overall_rating: number;
        count: any;
        data: any;
    }>;
    customerReview(customer_id: string, page: number, limit: number): Promise<{
        customer_name: string;
        overall_rating: number;
        count: any;
        data: any;
    }>;
    vendorReviewListing(payload: any, page?: number, limit?: number): Promise<{
        vendor_name: string;
        restaurant_id: Types.ObjectId;
        restaurant_name: string;
        overall_rating: number;
        count: any;
        data: any;
    }>;
}
