import { PrismaService } from '../prisma/prisma.service';
import { CreateAssignmentDto, UpdateAssignmentDto } from './dto/assignment.dto';
import { MailService } from '../mail/mail.service';
export declare class AssignmentsService {
    private prisma;
    private mailService;
    constructor(prisma: PrismaService, mailService: MailService);
    create(createAssignmentDto: CreateAssignmentDto): Promise<{
        course: {
            id: number;
            level: string | null;
            createdAt: Date;
            updatedAt: Date;
            description: string | null;
            title: string;
            code: string;
            instructor: string | null;
            category: string;
            credits: number;
            semester: number | null;
            academicYear: string | null;
            language: string | null;
            learningOutcomes: string[];
            capacity: number | null;
            isPublished: boolean;
        };
    } & {
        id: number;
        status: string;
        type: import("@prisma/client").$Enums.AssignmentType;
        description: string | null;
        title: string;
        courseId: number;
        dueDate: Date;
        maxPoints: number;
    }>;
    findAll(): Promise<({
        course: {
            id: number;
            level: string | null;
            createdAt: Date;
            updatedAt: Date;
            description: string | null;
            title: string;
            code: string;
            instructor: string | null;
            category: string;
            credits: number;
            semester: number | null;
            academicYear: string | null;
            language: string | null;
            learningOutcomes: string[];
            capacity: number | null;
            isPublished: boolean;
        };
    } & {
        id: number;
        status: string;
        type: import("@prisma/client").$Enums.AssignmentType;
        description: string | null;
        title: string;
        courseId: number;
        dueDate: Date;
        maxPoints: number;
    })[]>;
    findOne(id: number): Promise<{
        course: {
            id: number;
            level: string | null;
            createdAt: Date;
            updatedAt: Date;
            description: string | null;
            title: string;
            code: string;
            instructor: string | null;
            category: string;
            credits: number;
            semester: number | null;
            academicYear: string | null;
            language: string | null;
            learningOutcomes: string[];
            capacity: number | null;
            isPublished: boolean;
        };
    } & {
        id: number;
        status: string;
        type: import("@prisma/client").$Enums.AssignmentType;
        description: string | null;
        title: string;
        courseId: number;
        dueDate: Date;
        maxPoints: number;
    }>;
    findByCourse(courseId: number): Promise<{
        id: number;
        status: string;
        type: import("@prisma/client").$Enums.AssignmentType;
        description: string | null;
        title: string;
        courseId: number;
        dueDate: Date;
        maxPoints: number;
    }[]>;
    update(id: number, updateAssignmentDto: UpdateAssignmentDto): Promise<{
        id: number;
        status: string;
        type: import("@prisma/client").$Enums.AssignmentType;
        description: string | null;
        title: string;
        courseId: number;
        dueDate: Date;
        maxPoints: number;
    }>;
    remove(id: number): Promise<{
        id: number;
        status: string;
        type: import("@prisma/client").$Enums.AssignmentType;
        description: string | null;
        title: string;
        courseId: number;
        dueDate: Date;
        maxPoints: number;
    }>;
}
