import { TeamResolutionService } from '../domain/team/TeamResolutionService';
import { LeaveRepository } from '../repositories/LeaveRepository';
import { NotificationFactory } from '../factories/NotificationFactory';
import { CompensationFacade } from './CompensationFacade';
import { HolidayRepository } from '../repositories/HolidayRepository';
import { EmployeeSettingsService } from '../services/EmployeeSettingsService';
import { AutoWeekdayAttendanceService } from '../services/AutoWeekdayAttendanceService';
export declare class AttendanceFacade {
    private teamService;
    private leaveRepo;
    private holidayRepo;
    private notifications;
    private compensationFacade;
    private employeeSettings;
    private autoWeekdayAttendance;
    private monthCounters;
    constructor(teamService: TeamResolutionService | undefined, leaveRepo: LeaveRepository | undefined, holidayRepo: HolidayRepository | undefined, notifications: NotificationFactory, compensationFacade?: CompensationFacade, employeeSettings?: EmployeeSettingsService, autoWeekdayAttendance?: AutoWeekdayAttendanceService);
    private prisma;
    private getShiftTimes;
    recordLogin(employeeId: string, timestamp: string, source?: string): Promise<{
        duplicate: boolean;
        status?: undefined;
        lateCountMonth?: undefined;
    } | {
        status: string;
        lateCountMonth: number;
        duplicate?: undefined;
    }>;
    recordLogout(employeeId: string, timestamp: string, source?: string): Promise<{
        status: import(".prisma/client").$Enums.attendance_daily_summary_status;
        workingHours: number;
        earlyLeave: boolean;
    }>;
    getStatus(employeeId: string, date: string): Promise<{
        employeeId: string;
        date: string;
        status: string;
        workingHours: number;
        lateCountMonth: number;
    }>;
    myHistory(employeeId: string, from?: string, to?: string): Promise<{
        items: {
            date: string;
            status: import(".prisma/client").$Enums.attendance_daily_summary_status;
            workingHours: number;
            isLate: boolean;
        }[];
    }>;
    teamMemberHistory(actorId: string, targetEmployeeId: string, from?: string, to?: string): Promise<{
        items: {
            date: string;
            status: import(".prisma/client").$Enums.attendance_daily_summary_status;
            workingHours: number;
            isLate: boolean;
        }[];
    }>;
    private historyForEmployee;
    syncAutoWeekdayAttendance(from?: string, to?: string): Promise<{
        synced: number;
        employeeCount: number;
        from: string;
        to: string;
    }>;
    markAbsents(dateStr: string): Promise<{
        skipped: boolean;
        marked?: undefined;
        autoPresent?: undefined;
        date?: undefined;
    } | {
        marked: number;
        autoPresent: number;
        date: string;
        skipped?: undefined;
    }>;
}
//# sourceMappingURL=AttendanceFacade.d.ts.map