import type { Request, Response } from "express"; import { CourseService } from "../services/CourseService"; import { SectionService } from "../services/SectionService"; import { LectureService } from "../services/LectureService"; import { QuizService } from "../services/QuizService"; import { QuizQuestionService } from "../services/QuizQuestionService"; import { LectureRepository } from "../repositories/LectureRepository"; import { SectionRepository } from "../repositories/SectionRepository"; import { CourseRepository } from "../repositories/CourseRepository"; import { QuizRepository } from "../repositories/QuizRepository"; import { QuizQuestionRepository } from "../repositories/QuizQuestionRepository"; import { TeacherService } from "../services/TeacherService"; export declare class CourseController { private courseRepository; private sectionRepository; private lectureRepository; private quizRepository; private quizQuestionRepository; private courseService; private sectionService; private lectureService; private quizService; private quizQuestionService; private teacherService; constructor(courseRepository: CourseRepository, sectionRepository: SectionRepository, lectureRepository: LectureRepository, quizRepository: QuizRepository, quizQuestionRepository: QuizQuestionRepository, courseService: CourseService, sectionService: SectionService, lectureService: LectureService, quizService: QuizService, quizQuestionService: QuizQuestionService, teacherService: TeacherService); /** * Get public courses */ getPublicCourses(req: Request, res: Response): Promise; /** * Create a new course */ createCourse(req: Request, res: Response): Promise; /** * Get all courses for a teacher */ getCoursesByTeacherId(req: Request, res: Response): Promise; /** * Get a course by ID with all sections, lectures, and quizzes */ getCourseDetail(req: Request, res: Response): Promise; createCourseContent(req: Request, res: Response): Promise; /** * Update a course */ updateCourse(req: Request, res: Response): Promise; /** * Delete a course */ deleteCourse(req: Request, res: Response): Promise; /** * Get courses by category */ getCoursesByCategory(req: Request, res: Response): Promise; /** * Generate course using AI */ generateCourse(req: Request, res: Response): Promise; /** * Create course from AI-generated structure */ createFromAI(req: Request, res: Response): Promise; }