import { Repository } from 'typeorm';
import { CourseFeedback } from './course-feedback.entity';
import { Enrollment } from '../enrollments/enrollment.entity';
import { Course } from '../course/course.entity';
import { CreateFeedbackDto } from './dto/create-feedback.dto';
import { UpdateFeedbackDto } from './dto/update-feedback.dto';
export declare class FeedbackService {
    private fbRepo;
    private enrollRepo;
    private courseRepo;
    constructor(fbRepo: Repository<CourseFeedback>, enrollRepo: Repository<Enrollment>, courseRepo: Repository<Course>);
    private recalcCourseRating;
    create(userId: number, courseId: number, dto: CreateFeedbackDto): Promise<CourseFeedback>;
    update(userId: number, courseId: number, id: number, dto: UpdateFeedbackDto, isAdminOrTrainer?: boolean): Promise<CourseFeedback>;
    remove(userId: number, courseId: number, id: number, isAdminOrTrainer?: boolean): Promise<{
        deleted: boolean;
    }>;
    listPublic(courseId: number, skip?: number, take?: number): Promise<{
        total: number;
        ratingAvg: string | number;
        ratingCount: number;
        items: {
            id: number;
            user: {
                id: number;
                email: string;
            };
            rating: number;
            comment: string | undefined;
            createdAt: Date;
        }[];
    }>;
}
