import { Model } from 'mongoose';
import { StudentDocument } from '../students/schemas/student.schema';
import { TeacherDocument } from '../teachers/schemas/teacher.schema';
import { ClassDocument } from '../classes/schemas/class.schema';
import { SectionDocument } from '../sections/schemas/section.schema';
import { AttendanceDocument } from '../attendance/schemas/attendance.schema';
import { EnrollmentDocument } from '../students/schemas/enrollment.schema';
import { AcademicYearDocument } from 'src/academic-year/academic-year.schema';
export declare class DashboardService {
    private studentModel;
    private teacherModel;
    private classModel;
    private sectionModel;
    private academicYearModel;
    private attendanceModel;
    private enrollmentModel;
    constructor(studentModel: Model<StudentDocument>, teacherModel: Model<TeacherDocument>, classModel: Model<ClassDocument>, sectionModel: Model<SectionDocument>, academicYearModel: Model<AcademicYearDocument>, attendanceModel: Model<AttendanceDocument>, enrollmentModel: Model<EnrollmentDocument>);
    getAdminOverview(academicYearId: string | null): Promise<{
        scope: {
            academicYearId: string;
        };
        totalStudents: number;
        totalTeachers: number;
        totalClasses: number;
        totalSections: number;
        activeAcademicYear: string;
        genderBreakdown: {
            male: number;
            female: number;
        };
    } | {
        scope: {
            academicYearId: null;
        };
        totalStudents: number;
        totalTeachers: number;
        totalClasses: number;
        totalSections: number;
        activeAcademicYear: string;
        genderBreakdown: {
            male: number;
            female: number;
        };
    }>;
    getTeacherOverview(teacherId: string, academicYearId: string | null): Promise<{
        scope: {
            academicYearId: string;
        };
        totalAssignedSections: number;
        assignedSections: {
            sectionId: string;
            name: string;
            classId: string;
            className: string | null;
        }[];
        totalStudentsInAssignedSections: number;
        genderBreakdown: {
            male: number;
            female: number;
        };
    } | {
        scope: {
            academicYearId: null;
        };
        totalAssignedSections: number;
        assignedSections: {
            sectionId: string;
            name: string;
            classId: string;
            className: string | null;
        }[];
        totalStudentsInAssignedSections: number;
        genderBreakdown: {
            male: number;
            female: number;
        };
    }>;
    getStudentOverview(studentId: string, academicYearId: string | null): Promise<{
        scope: {
            academicYearId: string | null;
        };
        name: string;
        email: string | undefined;
        rollNumber: string;
        gender: string;
        guardianName: string | undefined;
        phone: string | undefined;
        class: string;
        section: string;
        academicYear: string;
        attendanceSummary: {
            present: number;
            absent: number;
            total: number;
        };
    }>;
}
