import { Response } from 'express';
import { ResponseService } from 'src/common/response-handling/response-handler';
import { AuthenticatedRequest } from 'src/common/interfaces/authenticated-request.interface';
import { OnlineAttendanceService } from './online-attendance.service';
import { AttendanceReportQueryDto } from './dto/attendance-report-query.dto';
import { JoinSessionDto } from './dto/join-session.dto';
import { MarkAttendanceDto, SetAttendanceDto } from './dto/mark-attendance.dto';
export declare class OnlineAttendanceController {
    private readonly service;
    private readonly responseService;
    constructor(service: OnlineAttendanceService, responseService: ResponseService);
    join(sessionId: number, dto: JoinSessionDto, req: AuthenticatedRequest, res: Response): Promise<void>;
    markAttendance(sessionId: number, dto: SetAttendanceDto, req: AuthenticatedRequest, res: Response): Promise<void>;
    undoAttendance(sessionId: number, dto: MarkAttendanceDto, req: AuthenticatedRequest, res: Response): Promise<void>;
    unmarkAttendance(sessionId: number, dto: MarkAttendanceDto, req: AuthenticatedRequest, res: Response): Promise<void>;
    lockAttendance(sessionId: number, req: AuthenticatedRequest, res: Response): Promise<void>;
    unlockAttendance(sessionId: number, req: AuthenticatedRequest, res: Response): Promise<void>;
    sessionReport(sessionId: number, query: AttendanceReportQueryDto, res: Response): Promise<void>;
    programReport(programId: number, query: AttendanceReportQueryDto, res: Response): Promise<void>;
}
