import { Repository } from 'typeorm';
import { Enrollment } from './enrollment.entity';
import { CourseProgress } from '../progress/course-progress.entity';
import { Course } from '../course/course.entity';
import { Lesson } from '../lessons/lesson.entity';
import { Step } from '../steps/step.entity';
import { ConfigService } from '@nestjs/config';
import { MailService } from '../mail/mail.service';
export declare class EnrollmentsService {
    private readonly enrollRepo;
    private readonly courseRepo;
    private readonly lessonRepo;
    private readonly stepRepo;
    private readonly progressRepo;
    private readonly config;
    private readonly mailService;
    constructor(enrollRepo: Repository<Enrollment>, courseRepo: Repository<Course>, lessonRepo: Repository<Lesson>, stepRepo: Repository<Step>, progressRepo: Repository<CourseProgress>, config: ConfigService, mailService: MailService);
    myCourses(id: number): Promise<{
        course: Course;
        subscribedAt: Date;
        status: import("./enrollment.entity").EnrollmentStatus;
        user: import("../users/user.entity").User;
        progress: CourseProgress | null;
    }[]>;
    updateProgress(userId: number, courseId: number, lastLessonId?: number, lastStepId?: number): Promise<CourseProgress>;
    getCourseContentForUser(id: number, courseId: number): Promise<{
        enrollment: {
            status: import("./enrollment.entity").EnrollmentStatus;
            subscribedAt: Date;
        };
        progress: {
            lastLesson: {
                id: number;
                title: string;
            } | null;
            lastStep: {
                id: number;
                title: string;
            } | null;
            percent: number;
            completed: boolean;
            updatedAt: Date;
        } | null;
        course: {
            id: number;
            title: string;
            description: string;
            duration: string;
            price: number;
            discountPrice: number | null;
            level: string;
            isPublished: boolean;
            trainer: import("../users/user.entity").User;
            lessons: {
                id: number;
                title: string;
                description: string;
                steps: any[];
            }[];
        };
    }>;
}
