import { AttendanceService } from './attendance.service';
import { FilterAttendanceDto } from './dto/filter-attendance.dto';
import { MarkAttendanceDto } from './dto/mark-attendance.dto';
import { StudentMonthQueryDto } from './dto/student-month.dto';
import { BulkMarkDto } from './dto/bulk-mark.dto';
import { ReportDto } from './dto/report.dto';
export declare class AttendanceController {
    private svc;
    constructor(svc: AttendanceService);
    bulkMark(teacherId: string, userRole: string, body: BulkMarkDto, ayId?: string): Promise<{
        matched: any;
        modified: any;
        upserted: any;
        skipped: number;
    }>;
    mark(teacherId: string, userRole: string, dto: MarkAttendanceDto, ayId?: string): Promise<import("mongoose").FlattenMaps<{
        studentId: string;
        classId?: string | undefined;
        sectionId?: string | undefined;
        academicYearId?: string | undefined;
        date: string;
        status: import("./schemas/attendance.schema").AttendanceStatus;
        markedBy: string;
        _id: string;
        __v: number;
        createdAt?: Date | undefined;
        updatedAt?: Date | undefined;
    }> & Required<{
        _id: string;
    }>>;
    summary(query: FilterAttendanceDto & {
        summary?: string;
    }, ayId?: string): Promise<(import("mongoose").FlattenMaps<{
        studentId: string;
        classId?: string | undefined;
        sectionId?: string | undefined;
        academicYearId?: string | undefined;
        date: string;
        status: import("./schemas/attendance.schema").AttendanceStatus;
        markedBy: string;
        _id: string;
        __v: number;
        createdAt?: Date | undefined;
        updatedAt?: Date | undefined;
    }> & Required<{
        _id: string;
    }>)[] | {
        date: string;
        present: number;
        absent: number;
        total: number;
    }[]>;
    report(query: ReportDto, ayId?: string): Promise<{
        label: string;
        present: number;
        absent: number;
        total: number;
    }[]>;
    teacherHistory(teacherId: string): Promise<(import("mongoose").FlattenMaps<{
        studentId: string;
        classId?: string | undefined;
        sectionId?: string | undefined;
        academicYearId?: string | undefined;
        date: string;
        status: import("./schemas/attendance.schema").AttendanceStatus;
        markedBy: string;
        _id: string;
        __v: number;
        createdAt?: Date | undefined;
        updatedAt?: Date | undefined;
    }> & Required<{
        _id: string;
    }>)[]>;
    sectionDay(sectionId: string, date: string, ayId?: string): Promise<(import("mongoose").FlattenMaps<{
        studentId: string;
        classId?: string | undefined;
        sectionId?: string | undefined;
        academicYearId?: string | undefined;
        date: string;
        status: import("./schemas/attendance.schema").AttendanceStatus;
        markedBy: string;
        _id: string;
        __v: number;
        createdAt?: Date | undefined;
        updatedAt?: Date | undefined;
    }> & Required<{
        _id: string;
    }>)[]>;
    myAttendance(studentId: string, from?: string, to?: string, ayId?: string): Promise<(import("mongoose").FlattenMaps<{
        studentId: string;
        classId?: string | undefined;
        sectionId?: string | undefined;
        academicYearId?: string | undefined;
        date: string;
        status: import("./schemas/attendance.schema").AttendanceStatus;
        markedBy: string;
        _id: string;
        __v: number;
        createdAt?: Date | undefined;
        updatedAt?: Date | undefined;
    }> & Required<{
        _id: string;
    }>)[]>;
    myMonth(studentId: string, q: StudentMonthQueryDto, ayId?: string): Promise<{
        dates: any[];
    }>;
    studentMonth(studentId: string, q: StudentMonthQueryDto, ayId?: string): Promise<{
        dates: any[];
    }>;
    getAttendanceStats(ayId?: string): Promise<{
        date: any;
        present: any;
        absent: any;
        total: any;
    }[]>;
}
