import type { Request } from 'express';
import type { AuthenticatedUser } from '../../common/interfaces/authenticated-user.interface';
import { AuditService } from '../audit/audit.service';
import { CalculationsService } from '../calculations/calculations.service';
import { PeriodsService } from '../periods/periods.service';
import { AttendancesService } from './attendances.service';
import { BulkAttendancesDto } from './dto/bulk-attendances.dto';
import { DeleteAttendanceDto } from './dto/delete-attendance.dto';
import { UpsertCellDto } from './dto/upsert-attendance.dto';
export declare class AttendancesController {
    private readonly attendancesService;
    private readonly periodsService;
    private readonly calculationsService;
    private readonly auditService;
    constructor(attendancesService: AttendancesService, periodsService: PeriodsService, calculationsService: CalculationsService, auditService: AuditService);
    getGrid(periodId: number): Promise<{
        summaries: import("../calculations/calculations.service").WorkerSummary[];
        period: import("../periods/entities/period.entity").Period;
        workers: import("../workers/entities/worker.entity").Worker[];
        attendances: import("./entities/attendance.entity").Attendance[];
        dates: string[];
        jobTitles: import("../job-titles/entities/job-title.entity").JobTitle[];
        attendanceTypes: import("./entities/attendance-type.entity").AttendanceType[];
        usersMap: Record<number, import("./attendances.service").GridUserRef>;
    }>;
    upsert(periodId: number, dto: UpsertCellDto, user: AuthenticatedUser, req: Request): Promise<import("./entities/attendance.entity").Attendance[]>;
    deleteOne(periodId: number, dto: DeleteAttendanceDto, user: AuthenticatedUser, req: Request): Promise<void>;
    upsertBulk(periodId: number, dto: BulkAttendancesDto, user: AuthenticatedUser, req: Request): Promise<{
        saved: number;
    }>;
}
export declare class PeriodSummaryController {
    private readonly calculationsService;
    private readonly periodsService;
    constructor(calculationsService: CalculationsService, periodsService: PeriodsService);
    getSummary(periodId: number): Promise<{
        period: import("../periods/entities/period.entity").Period;
        summaries: import("../calculations/calculations.service").WorkerSummary[];
    }>;
}
