import { Repository } from 'typeorm';
import { LeaveRequest, LeaveStatus } from '../leaves/entities/leave-request.entity';
import { LeaveBalance } from '../leaves/entities/leave-balance.entity';
import { User, Role } from '../users/entities/user.entity';
export declare class ReportsDashboardService {
    private readonly leaveRequestRepo;
    private readonly leaveBalanceRepo;
    private readonly userRepo;
    constructor(leaveRequestRepo: Repository<LeaveRequest>, leaveBalanceRepo: Repository<LeaveBalance>, userRepo: Repository<User>);
    getDashboardKPIs(currentUser: User): Promise<{
        role: Role;
        kpis: {
            total_users: number;
            online_users: number;
            absent_today: number;
            absent_rate_today: number;
            pending_requests: number;
            critical_balances: number;
            month_leaves: number;
            approved_this_month: number;
            rejected_this_month: number;
        };
        absent_today: {
            user_id: number;
            user_name: string;
            team: string;
            leave_type: string;
            end_date: string;
            days_left: number;
        }[];
        pending_requests: {
            id: number;
            user_name: string;
            team: string;
            leave_type: string;
            start_date: string;
            end_date: string;
            days_count: number;
            status: LeaveStatus;
            waiting_since: string;
        }[];
        critical_balances: {
            user_id: number;
            user_name: string;
            team: string;
            leave_type: string;
            remaining: number;
        }[];
        my_balances: {
            leave_type: string;
            acquired: number;
            taken: number;
            adjusted: number;
            remaining: number;
        }[] | null;
        period: {
            today: string;
            month_start: string;
            month_end: string;
            year: number;
        };
    }>;
}
