import { Repository } from "typeorm";
import { CreateRatingDto } from "../dto/create-rating.dto";
import { UpdateRatingDto } from "../dto/update-rating.dto";
import { RatingRepository } from "../repositories/rating.repository";
import { GetRatingsDto } from "../dto/get-ratings.dto";
import { TripFleetAssignment } from "src/modules/trips/entities/fleet-trip-management.entity";
import { RatingType } from "../constants/rating-type.constants";
import { CreateNoRatingDto } from "../dto/create-no-rating.dto";
export declare class RatingService {
    private readonly ratingRepository;
    private readonly tripFleetAssignmentRepository;
    constructor(ratingRepository: RatingRepository, tripFleetAssignmentRepository: Repository<TripFleetAssignment>);
    getCustomerRatingTags(): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    getDriverRatingTags(): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    create(createRatingDto: CreateRatingDto, isCustomer: boolean): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    findAll(queryParams: GetRatingsDto): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    update(id: number, updateRatingDto: UpdateRatingDto): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    remove(id: number): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    hasOptedOut(tripId: number, raterId: number, ratingType: RatingType): Promise<boolean>;
    hasAlreadyRated(tripId: number, raterId: number, ratingType: RatingType): Promise<boolean>;
    setNoRating(createNoRatingDto: CreateNoRatingDto): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    getDriverLastTripWithRatingStatus(driverId: number): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    getCustomerLastTripWithRatingStatus(customerId: number): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
}
