import { Database } from '../storage/db.js';
import type { Subject, Topic, PhaseWithTopics, ProgressStats } from '../types.js';
interface PhaseInput {
    name: string;
    description: string;
    topics: Array<{
        name: string;
        description: string;
    }>;
}
export declare class CurriculumService {
    private db;
    constructor(db: Database);
    createSubject(name: string, language?: string, source?: Subject['source']): Subject;
    listSubjects(): Subject[];
    getSubject(id: number): Subject | undefined;
    findSubjectByName(name: string): Subject | undefined;
    importCurriculum(subjectId: number, phases: PhaseInput[]): void;
    getCurriculum(subjectId: number): PhaseWithTopics[];
    getProgress(subjectId: number): ProgressStats;
    setTopicStatus(topicId: number, status: Topic['status']): void;
    getTopic(id: number): Topic | undefined;
    findTopic(subjectId: number, name: string): Topic | undefined;
}
export {};
