import { Database } from '../storage/db.js';
import { FileStore } from '../storage/files.js';
import type { Exercise, ExerciseResult } from '../types.js';
interface CreateExerciseData {
    title: string;
    type: Exercise['type'];
    description: string;
    difficulty?: Exercise['difficulty'];
    est_minutes?: number;
    source?: Exercise['source'];
    starter_code?: string;
    test_content?: string;
    quiz_json?: string;
}
interface QuizSubmitResult {
    score: number;
    total: number;
    passed: boolean;
    results: Array<{
        test_name: string;
        passed: boolean;
        output: string;
    }>;
}
export declare class ExerciseService {
    private db;
    private fileStore;
    constructor(db: Database, fileStore: FileStore);
    createExercise(topicId: number, data: CreateExerciseData): Exercise;
    runTests(exerciseId: number): Promise<ExerciseResult[]>;
    submitQuiz(exerciseId: number, answers: (number | boolean | string)[]): QuizSubmitResult;
    listForTopic(topicId: number): Exercise[];
    private getSubjectForTopic;
}
export {};
