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<void>;
    /**
     * Create a new course
     */
    createCourse(req: Request, res: Response): Promise<void>;
    /**
     * Get all courses for a teacher
     */
    getCoursesByTeacherId(req: Request, res: Response): Promise<void>;
    /**
     * Get a course by ID with all sections, lectures, and quizzes
     */
    getCourseDetail(req: Request, res: Response): Promise<void>;
    createCourseContent(req: Request, res: Response): Promise<void>;
    /**
     * Update a course
     */
    updateCourse(req: Request, res: Response): Promise<void>;
    /**
     * Delete a course
     */
    deleteCourse(req: Request, res: Response): Promise<void>;
    /**
     * Get courses by category
     */
    getCoursesByCategory(req: Request, res: Response): Promise<void>;
    /**
     * Generate course using AI
     */
    generateCourse(req: Request, res: Response): Promise<void>;
    /**
     * Create course from AI-generated structure
     */
    createFromAI(req: Request, res: Response): Promise<void>;
}
