import type { Request, Response, NextFunction } from "express";
import { EducationModuleAdapter } from "../database/EducationModuleAdapter";
import type { IDatabaseAdapter } from "@elizaos/core";
import { StudentRepository } from "../repositories/StudentRepository";
import { QuizService } from "../services/QuizService";
import { QuizQuestionService } from "../services/QuizQuestionService";
import { QuizSubmissionService } from "../services/QuizSubmissionService";
/**
 * Student Controller - Handles student access, PROFILE management, and LOGIN
 */
export declare class StudentController {
    private quizService;
    private quizQuestionService;
    private quizSubmissionService;
    private educationModuleAdapter;
    private mainDatabaseAdapter;
    private studentRepository;
    path: string;
    constructor(mainDatabaseAdapter: IDatabaseAdapter, quizService: QuizService, quizQuestionService: QuizQuestionService, quizSubmissionService: QuizSubmissionService, studentRepository: StudentRepository);
    setEducationModuleAdapter(adapter: EducationModuleAdapter): void;
    initRoutes(): void;
    /**
     * Register a new student profile
     */
    registerStudent(req: Request, res: Response, next: NextFunction): Promise<void>;
    /**
     * Get published content for students
     */
    getPublishedContent(req: Request, res: Response): Promise<void>;
    /**
     * Get specific content by ID
     */
    getContentById(req: Request, res: Response): Promise<void>;
    /**
     * Submit assessment/quiz answers (Old endpoint - likely unused)
     */
    submitAssessment(req: Request, res: Response): Promise<void>;
    /**
     * Get feedback on submitted assessment
     */
    getAssessmentFeedback(req: Request, res: Response): Promise<void>;
    /**
     * Submit answers for a specific Quiz identified by quizId
     */
    submitQuiz(req: Request, res: Response): Promise<void>;
    /**
     * Get courses for a specific teacher
     * Requires student authentication
     */
    getCoursesByTeacherId(req: Request, res: Response): Promise<void>;
    /**
     * Login a student using email and password (Moved from AuthController)
     */
    loginStudent(req: Request, res: Response, next: NextFunction): Promise<void>;
}
