import { PrismaService } from "../../../core/database/prisma/prisma.service";
export declare class AnalyticsService {
    private readonly prisma;
    constructor(prisma: PrismaService);
    getPersonalOverview(userId: string, cycleId?: string): Promise<{
        avgScore: number;
        gradeCode: string | null;
    }>;
    getPersonalTrend(userId: string, limit?: number): Promise<{
        cycle: string;
        score: number;
    }[]>;
    getTeamStatistics(managerId: string, cycleId?: string): Promise<{
        avgScore: number;
        distribution: {
            gradeCode: string | null;
            count: number;
        }[];
    }>;
    getDepartmentReport(departmentId: string, cycleId: string): Promise<{
        cycleId: string;
        cycleName: string;
        departmentId: string;
        employeeCount: number;
        kpiStats: {
            avgScore: number;
            highest: number;
            lowest: number;
            total: number;
        };
        e360Stats: {
            total: number;
            byStatus: Record<string, number>;
        };
        gradeDistribution: {
            grade: string;
            gradeName: string;
            count: number;
            percentage: string;
        }[];
        scoreDistribution: {
            range: string;
            count: number;
        }[];
    }>;
    getCompanyReport(cycleId: string): Promise<{
        cycleId: string;
        cycleName: string;
        cycleStatus: import("@prisma/client").$Enums.CycleStatus;
        summary: {
            totalEmployees: any;
            avgScore: number;
            avgKpiScore: number;
            avgE360Score: number;
            highestScore: number;
            lowestScore: number;
        };
        gradeDistribution: {
            grade: string;
            gradeName: string;
            count: number;
            percentage: string;
        }[];
        departmentRanking: {
            departmentId: string;
            departmentName: string;
            employeeCount: number;
            avgScore: number;
        }[];
        completion: {
            kpi: {
                total: number;
                evaluated: number;
                completionRate: string;
            };
            e360: {
                total: number;
                completed: number;
                completionRate: string;
            };
        };
    }>;
    getGradeDistributionReport(cycleId: string, departmentId?: string): Promise<{
        distribution: {
            gradeCode: string | null;
            count: number;
        }[];
    }>;
    getCycleComparison(cycleIds: string[]): Promise<{
        cycle: string;
        avgScore: number;
    }[]>;
    private getSubordinateIds;
    private buildGradeMap;
    private buildGradeMapFromScores;
    private formatGradeDistribution;
    private calculateScoreStats;
}
