import { ResourceController } from "@defikitdotnet/agent-framework-backend";
import type { Request, Response } from "express";
import { EducationalContentResource } from "../models/EducationalContent";
import { EducationModuleAdapter } from "../database/EducationModuleAdapter";
/**
 * Educational Content API controller
 */
export declare class EducationalContentController extends ResourceController<EducationalContentResource> {
    private educationModuleAdapter;
    private configService;
    constructor();
    setEducationModuleAdapter(adapter: EducationModuleAdapter): void;
    /**
     * Get all educational content items
     */
    findAll(req: Request, res: Response): Promise<void>;
    /**
     * Create educational content using database adapter
     */
    create(req: Request, res: Response): Promise<void>;
    /**
     * Update educational content using database adapter
     */
    update(req: Request, res: Response): Promise<void>;
    /**
     * Delete educational content using database adapter
     */
    delete(req: Request, res: Response): Promise<void>;
    /**
     * Get educational content by ID using database adapter
     */
    getById(req: Request, res: Response): Promise<void>;
    /**
     * Generate educational content
     */
    generateContent(req: Request, res: Response): Promise<void>;
    /**
     * Generate quiz
     */
    generateQuiz(req: Request, res: Response): Promise<void>;
    /**
     * Question answering endpoint
     */
    answerQuestion(req: Request, res: Response): Promise<void>;
    /**
     * Search for educational content
     */
    searchContent(req: Request, res: Response): Promise<void>;
    /**
     * Get content by subject
     */
    getBySubject(req: Request, res: Response): Promise<void>;
    /**
     * Get content by educational level
     */
    getByLevel(req: Request, res: Response): Promise<void>;
    /**
     * Get available configuration options
     */
    getConfig(req: Request, res: Response): Promise<void>;
    /**
     * Check if a subject is valid according to configuration
     */
    private isValidSubject;
    /**
     * Check if an educational level is valid according to configuration
     */
    private isValidLevel;
    /**
     * Check if content type is valid
     */
    private isValidContentType;
    /**
     * Validate a subject value
     */
    private validateSubject;
    /**
     * Validate an educational level value
     */
    private validateEducationalLevel;
}
