import { QuizSubmissionRepository } from "../repositories/QuizSubmissionRepository";
import { QuizSubmission, CreateQuizSubmissionData } from "../models/QuizSubmission";
export declare class QuizSubmissionService {
    private quizSubmissionRepository;
    constructor(quizSubmissionRepository: QuizSubmissionRepository);
    /**
     * Creates a new quiz submission.
     * Performs validation before calling the repository.
     * @param submissionData - Data for the submission.
     * @returns The created QuizSubmission object.
     * @throws Error if creation fails.
     */
    createSubmission(submissionData: CreateQuizSubmissionData): Promise<QuizSubmission>;
    /**
     * Retrieves submissions for a specific student.
     * @param studentId - The ID of the student.
     * @returns An array of QuizSubmission objects.
     */
    getSubmissionsByStudent(studentId: string): Promise<QuizSubmission[]>;
    /**
     * Retrieves submissions for a specific quiz.
     * @param quizId - The ID of the quiz.
     * @returns An array of QuizSubmission objects.
     */
    getSubmissionsByQuiz(quizId: string): Promise<QuizSubmission[]>;
    /**
     * Retrieves a specific submission by its ID.
     * @param submissionId - The ID of the submission.
     * @returns The QuizSubmission object or null if not found.
     */
    getSubmissionById(submissionId: string): Promise<QuizSubmission | null>;
}
