import { CycleService } from '../services/cycle.service';
import { ResultService } from '../services/result.service';
import { CreateCycleDto, UpdateCycleDto, QueryCycleDto } from '../dto/cycle.dto';
import { PublishResultsDto } from '../dto/result.dto';
export declare class CycleController {
    private readonly cycleService;
    private readonly resultService;
    constructor(cycleService: CycleService, resultService: ResultService);
    findAll(query: QueryCycleDto): Promise<{
        items: ({
            gradeConfig: {
                id: string;
                createdAt: Date;
                name: string;
                updatedAt: Date;
                deletedAt: Date | null;
                description: string | null;
                organizationId: string | null;
                isActive: boolean;
                createdBy: string;
                isDefault: boolean;
                grades: import("@prisma/client/runtime/library").JsonValue;
            } | null;
        } & {
            type: import("@prisma/client").$Enums.CycleType;
            id: string;
            createdAt: Date;
            status: import("@prisma/client").$Enums.CycleStatus;
            name: string;
            startDate: Date;
            endDate: Date;
            updatedAt: Date;
            deletedAt: Date | null;
            organizationId: string;
            createdBy: string;
            resultsPublishedAt: Date | null;
            resultsPublishedBy: string | null;
            gradeConfigId: string | null;
            parentCycleId: string | null;
        })[];
        total: number;
        page: number;
        limit: number;
        totalPages: number;
        hasNext: boolean;
        hasPrev: boolean;
    }>;
    findForSelect(organizationId?: string): Promise<{
        id: string;
        name: string;
    }[]>;
    findActiveCycle(organizationId?: string): Promise<({
        gradeConfig: {
            id: string;
            createdAt: Date;
            name: string;
            updatedAt: Date;
            deletedAt: Date | null;
            description: string | null;
            organizationId: string | null;
            isActive: boolean;
            createdBy: string;
            isDefault: boolean;
            grades: import("@prisma/client/runtime/library").JsonValue;
        } | null;
    } & {
        type: import("@prisma/client").$Enums.CycleType;
        id: string;
        createdAt: Date;
        status: import("@prisma/client").$Enums.CycleStatus;
        name: string;
        startDate: Date;
        endDate: Date;
        updatedAt: Date;
        deletedAt: Date | null;
        organizationId: string;
        createdBy: string;
        resultsPublishedAt: Date | null;
        resultsPublishedBy: string | null;
        gradeConfigId: string | null;
        parentCycleId: string | null;
    }) | null>;
    getStatistics(id: string): Promise<{
        totalEmployees: number;
        kpiStats: {
            total: number;
            selfEvaluated: number;
            managerEvaluated: number;
            confirmed: number;
        };
        evaluation360Stats: {
            total: number;
            completed: number;
            pending: number;
        };
    }>;
    getGoalSettingProgress(id: string): Promise<{
        totalEmployees: number;
        submittedCount: number;
        draftCount: number;
        notStartedCount: number;
        total: number;
        submitted: number;
        draft: number;
        notStarted: number;
        departments: {
            id: string;
            name: string;
            total: number;
            submitted: number;
            draft: number;
            notStarted: number;
        }[];
        pendingEmployees: {
            employeeId: string;
            employeeName: string;
            departmentName: string;
        }[];
    }>;
    getEvaluationProgress(id: string): Promise<{
        totalEmployees: number;
        selfEvaluated: number;
        managerEvaluated: number;
        e360Total: number;
        e360Completed: number;
        departments: {
            id: string;
            name: string;
            total: number;
            selfEvaluated: number;
            managerEvaluated: number;
            e360Completed: number;
        }[];
        pendingEmployees: {
            id: string;
            name: string;
            employeeId: string;
            employeeName: string;
            departmentName: string;
            pendingType: string;
            e360Pending: boolean;
        }[];
    }>;
    getCalibrationProgress(id: string): Promise<{
        totalEmployees: number;
        total: number;
        calibrated: number;
        gradeDistribution: {
            grade: string;
            count: number;
        }[];
        departments: {
            name: string;
            total: number;
            calibrated: number;
            pendingEmployees: {
                id: string;
                name: string;
                employeeId: string;
                employeeName: string;
                departmentName: string;
                currentGrade: string;
                avgScore: number;
            }[];
        }[];
    }>;
    getCycleResultsSummary(id: string): Promise<{
        total: number;
        avgScore: number;
        gradeDistribution: never[];
        confirmed: number;
        appealed: number;
        totalEmployees?: undefined;
        viewed?: undefined;
        completionStats?: undefined;
        departments?: undefined;
    } | {
        totalEmployees: number;
        total: number;
        avgScore: number;
        gradeDistribution: {
            grade: "D" | "S" | "B" | "A" | "C";
            code: "D" | "S" | "B" | "A" | "C";
            name: "D" | "S" | "B" | "A" | "C";
            count: number;
            percentage: number;
            color: string;
        }[];
        confirmed: number;
        appealed: number;
        viewed: number;
        completionStats: {
            selfEval: {
                completed: number;
                total: number;
            };
            managerEval: {
                completed: number;
                total: number;
            };
            e360: {
                completed: number;
                total: number;
            };
            calibration: {
                completed: number;
                total: number;
            };
        };
        departments: {
            name: string;
            total: number;
            confirmed: number;
            avgScore: number;
            grades: {
                code: "D" | "S" | "B" | "A" | "C";
                name: "D" | "S" | "B" | "A" | "C";
                count: number;
                color: string;
            }[];
            pendingEmployees: {
                employeeId: string;
                employeeName: any;
                departmentName: string;
                gradeCode: string | null;
                totalScore: number;
                confirmStatus: import("@prisma/client").$Enums.ResultConfirmStatus;
                viewedByEmployee: boolean;
            }[];
        }[];
    }>;
    findById(id: string): Promise<{
        gradeConfig: {
            id: string;
            createdAt: Date;
            name: string;
            updatedAt: Date;
            deletedAt: Date | null;
            description: string | null;
            organizationId: string | null;
            isActive: boolean;
            createdBy: string;
            isDefault: boolean;
            grades: import("@prisma/client/runtime/library").JsonValue;
        } | null;
        kpiAssignments: {
            id: string;
            employeeId: string;
            createdAt: Date;
            status: import("@prisma/client").$Enums.KpiAssignmentStatus;
            name: string;
            updatedAt: Date;
            deletedAt: Date | null;
            description: string | null;
            parentId: string | null;
            unit: string | null;
            cycleId: string;
            weight: import("@prisma/client/runtime/library").Decimal;
            baseTarget: string | null;
            stretchTarget: string | null;
            targetValue: import("@prisma/client/runtime/library").Decimal | null;
            seq: number | null;
            maturityScore: import("@prisma/client/runtime/library").Decimal | null;
        }[];
        evaluations: {
            id: string;
            createdAt: Date;
            status: import("@prisma/client").$Enums.Evaluation360Status;
            updatedAt: Date;
            deletedAt: Date | null;
            targetId: string;
            templateId: string | null;
            createdBy: string;
            cycleId: string;
            deadline: Date;
            minEvaluators: number | null;
        }[];
    } & {
        type: import("@prisma/client").$Enums.CycleType;
        id: string;
        createdAt: Date;
        status: import("@prisma/client").$Enums.CycleStatus;
        name: string;
        startDate: Date;
        endDate: Date;
        updatedAt: Date;
        deletedAt: Date | null;
        organizationId: string;
        createdBy: string;
        resultsPublishedAt: Date | null;
        resultsPublishedBy: string | null;
        gradeConfigId: string | null;
        parentCycleId: string | null;
    }>;
    create(dto: CreateCycleDto, userId: string): Promise<{
        gradeConfig: {
            id: string;
            createdAt: Date;
            name: string;
            updatedAt: Date;
            deletedAt: Date | null;
            description: string | null;
            organizationId: string | null;
            isActive: boolean;
            createdBy: string;
            isDefault: boolean;
            grades: import("@prisma/client/runtime/library").JsonValue;
        } | null;
        kpiAssignments: {
            id: string;
            employeeId: string;
            createdAt: Date;
            status: import("@prisma/client").$Enums.KpiAssignmentStatus;
            name: string;
            updatedAt: Date;
            deletedAt: Date | null;
            description: string | null;
            parentId: string | null;
            unit: string | null;
            cycleId: string;
            weight: import("@prisma/client/runtime/library").Decimal;
            baseTarget: string | null;
            stretchTarget: string | null;
            targetValue: import("@prisma/client/runtime/library").Decimal | null;
            seq: number | null;
            maturityScore: import("@prisma/client/runtime/library").Decimal | null;
        }[];
        evaluations: {
            id: string;
            createdAt: Date;
            status: import("@prisma/client").$Enums.Evaluation360Status;
            updatedAt: Date;
            deletedAt: Date | null;
            targetId: string;
            templateId: string | null;
            createdBy: string;
            cycleId: string;
            deadline: Date;
            minEvaluators: number | null;
        }[];
    } & {
        type: import("@prisma/client").$Enums.CycleType;
        id: string;
        createdAt: Date;
        status: import("@prisma/client").$Enums.CycleStatus;
        name: string;
        startDate: Date;
        endDate: Date;
        updatedAt: Date;
        deletedAt: Date | null;
        organizationId: string;
        createdBy: string;
        resultsPublishedAt: Date | null;
        resultsPublishedBy: string | null;
        gradeConfigId: string | null;
        parentCycleId: string | null;
    }>;
    update(id: string, dto: UpdateCycleDto): Promise<{
        gradeConfig: {
            id: string;
            createdAt: Date;
            name: string;
            updatedAt: Date;
            deletedAt: Date | null;
            description: string | null;
            organizationId: string | null;
            isActive: boolean;
            createdBy: string;
            isDefault: boolean;
            grades: import("@prisma/client/runtime/library").JsonValue;
        } | null;
        kpiAssignments: {
            id: string;
            employeeId: string;
            createdAt: Date;
            status: import("@prisma/client").$Enums.KpiAssignmentStatus;
            name: string;
            updatedAt: Date;
            deletedAt: Date | null;
            description: string | null;
            parentId: string | null;
            unit: string | null;
            cycleId: string;
            weight: import("@prisma/client/runtime/library").Decimal;
            baseTarget: string | null;
            stretchTarget: string | null;
            targetValue: import("@prisma/client/runtime/library").Decimal | null;
            seq: number | null;
            maturityScore: import("@prisma/client/runtime/library").Decimal | null;
        }[];
        evaluations: {
            id: string;
            createdAt: Date;
            status: import("@prisma/client").$Enums.Evaluation360Status;
            updatedAt: Date;
            deletedAt: Date | null;
            targetId: string;
            templateId: string | null;
            createdBy: string;
            cycleId: string;
            deadline: Date;
            minEvaluators: number | null;
        }[];
    } & {
        type: import("@prisma/client").$Enums.CycleType;
        id: string;
        createdAt: Date;
        status: import("@prisma/client").$Enums.CycleStatus;
        name: string;
        startDate: Date;
        endDate: Date;
        updatedAt: Date;
        deletedAt: Date | null;
        organizationId: string;
        createdBy: string;
        resultsPublishedAt: Date | null;
        resultsPublishedBy: string | null;
        gradeConfigId: string | null;
        parentCycleId: string | null;
    }>;
    delete(id: string): Promise<{
        id: string;
    }>;
    publish(id: string): Promise<{
        gradeConfig: {
            id: string;
            createdAt: Date;
            name: string;
            updatedAt: Date;
            deletedAt: Date | null;
            description: string | null;
            organizationId: string | null;
            isActive: boolean;
            createdBy: string;
            isDefault: boolean;
            grades: import("@prisma/client/runtime/library").JsonValue;
        } | null;
        kpiAssignments: {
            id: string;
            employeeId: string;
            createdAt: Date;
            status: import("@prisma/client").$Enums.KpiAssignmentStatus;
            name: string;
            updatedAt: Date;
            deletedAt: Date | null;
            description: string | null;
            parentId: string | null;
            unit: string | null;
            cycleId: string;
            weight: import("@prisma/client/runtime/library").Decimal;
            baseTarget: string | null;
            stretchTarget: string | null;
            targetValue: import("@prisma/client/runtime/library").Decimal | null;
            seq: number | null;
            maturityScore: import("@prisma/client/runtime/library").Decimal | null;
        }[];
        evaluations: {
            id: string;
            createdAt: Date;
            status: import("@prisma/client").$Enums.Evaluation360Status;
            updatedAt: Date;
            deletedAt: Date | null;
            targetId: string;
            templateId: string | null;
            createdBy: string;
            cycleId: string;
            deadline: Date;
            minEvaluators: number | null;
        }[];
    } & {
        type: import("@prisma/client").$Enums.CycleType;
        id: string;
        createdAt: Date;
        status: import("@prisma/client").$Enums.CycleStatus;
        name: string;
        startDate: Date;
        endDate: Date;
        updatedAt: Date;
        deletedAt: Date | null;
        organizationId: string;
        createdBy: string;
        resultsPublishedAt: Date | null;
        resultsPublishedBy: string | null;
        gradeConfigId: string | null;
        parentCycleId: string | null;
    }>;
    startExecution(id: string): Promise<{
        gradeConfig: {
            id: string;
            createdAt: Date;
            name: string;
            updatedAt: Date;
            deletedAt: Date | null;
            description: string | null;
            organizationId: string | null;
            isActive: boolean;
            createdBy: string;
            isDefault: boolean;
            grades: import("@prisma/client/runtime/library").JsonValue;
        } | null;
        kpiAssignments: {
            id: string;
            employeeId: string;
            createdAt: Date;
            status: import("@prisma/client").$Enums.KpiAssignmentStatus;
            name: string;
            updatedAt: Date;
            deletedAt: Date | null;
            description: string | null;
            parentId: string | null;
            unit: string | null;
            cycleId: string;
            weight: import("@prisma/client/runtime/library").Decimal;
            baseTarget: string | null;
            stretchTarget: string | null;
            targetValue: import("@prisma/client/runtime/library").Decimal | null;
            seq: number | null;
            maturityScore: import("@prisma/client/runtime/library").Decimal | null;
        }[];
        evaluations: {
            id: string;
            createdAt: Date;
            status: import("@prisma/client").$Enums.Evaluation360Status;
            updatedAt: Date;
            deletedAt: Date | null;
            targetId: string;
            templateId: string | null;
            createdBy: string;
            cycleId: string;
            deadline: Date;
            minEvaluators: number | null;
        }[];
    } & {
        type: import("@prisma/client").$Enums.CycleType;
        id: string;
        createdAt: Date;
        status: import("@prisma/client").$Enums.CycleStatus;
        name: string;
        startDate: Date;
        endDate: Date;
        updatedAt: Date;
        deletedAt: Date | null;
        organizationId: string;
        createdBy: string;
        resultsPublishedAt: Date | null;
        resultsPublishedBy: string | null;
        gradeConfigId: string | null;
        parentCycleId: string | null;
    }>;
    startEvaluation(id: string): Promise<{
        gradeConfig: {
            id: string;
            createdAt: Date;
            name: string;
            updatedAt: Date;
            deletedAt: Date | null;
            description: string | null;
            organizationId: string | null;
            isActive: boolean;
            createdBy: string;
            isDefault: boolean;
            grades: import("@prisma/client/runtime/library").JsonValue;
        } | null;
        kpiAssignments: {
            id: string;
            employeeId: string;
            createdAt: Date;
            status: import("@prisma/client").$Enums.KpiAssignmentStatus;
            name: string;
            updatedAt: Date;
            deletedAt: Date | null;
            description: string | null;
            parentId: string | null;
            unit: string | null;
            cycleId: string;
            weight: import("@prisma/client/runtime/library").Decimal;
            baseTarget: string | null;
            stretchTarget: string | null;
            targetValue: import("@prisma/client/runtime/library").Decimal | null;
            seq: number | null;
            maturityScore: import("@prisma/client/runtime/library").Decimal | null;
        }[];
        evaluations: {
            id: string;
            createdAt: Date;
            status: import("@prisma/client").$Enums.Evaluation360Status;
            updatedAt: Date;
            deletedAt: Date | null;
            targetId: string;
            templateId: string | null;
            createdBy: string;
            cycleId: string;
            deadline: Date;
            minEvaluators: number | null;
        }[];
    } & {
        type: import("@prisma/client").$Enums.CycleType;
        id: string;
        createdAt: Date;
        status: import("@prisma/client").$Enums.CycleStatus;
        name: string;
        startDate: Date;
        endDate: Date;
        updatedAt: Date;
        deletedAt: Date | null;
        organizationId: string;
        createdBy: string;
        resultsPublishedAt: Date | null;
        resultsPublishedBy: string | null;
        gradeConfigId: string | null;
        parentCycleId: string | null;
    }>;
    startCalibration(id: string): Promise<{
        gradeConfig: {
            id: string;
            createdAt: Date;
            name: string;
            updatedAt: Date;
            deletedAt: Date | null;
            description: string | null;
            organizationId: string | null;
            isActive: boolean;
            createdBy: string;
            isDefault: boolean;
            grades: import("@prisma/client/runtime/library").JsonValue;
        } | null;
        kpiAssignments: {
            id: string;
            employeeId: string;
            createdAt: Date;
            status: import("@prisma/client").$Enums.KpiAssignmentStatus;
            name: string;
            updatedAt: Date;
            deletedAt: Date | null;
            description: string | null;
            parentId: string | null;
            unit: string | null;
            cycleId: string;
            weight: import("@prisma/client/runtime/library").Decimal;
            baseTarget: string | null;
            stretchTarget: string | null;
            targetValue: import("@prisma/client/runtime/library").Decimal | null;
            seq: number | null;
            maturityScore: import("@prisma/client/runtime/library").Decimal | null;
        }[];
        evaluations: {
            id: string;
            createdAt: Date;
            status: import("@prisma/client").$Enums.Evaluation360Status;
            updatedAt: Date;
            deletedAt: Date | null;
            targetId: string;
            templateId: string | null;
            createdBy: string;
            cycleId: string;
            deadline: Date;
            minEvaluators: number | null;
        }[];
    } & {
        type: import("@prisma/client").$Enums.CycleType;
        id: string;
        createdAt: Date;
        status: import("@prisma/client").$Enums.CycleStatus;
        name: string;
        startDate: Date;
        endDate: Date;
        updatedAt: Date;
        deletedAt: Date | null;
        organizationId: string;
        createdBy: string;
        resultsPublishedAt: Date | null;
        resultsPublishedBy: string | null;
        gradeConfigId: string | null;
        parentCycleId: string | null;
    }>;
    startConfirming(id: string): Promise<{
        gradeConfig: {
            id: string;
            createdAt: Date;
            name: string;
            updatedAt: Date;
            deletedAt: Date | null;
            description: string | null;
            organizationId: string | null;
            isActive: boolean;
            createdBy: string;
            isDefault: boolean;
            grades: import("@prisma/client/runtime/library").JsonValue;
        } | null;
        kpiAssignments: {
            id: string;
            employeeId: string;
            createdAt: Date;
            status: import("@prisma/client").$Enums.KpiAssignmentStatus;
            name: string;
            updatedAt: Date;
            deletedAt: Date | null;
            description: string | null;
            parentId: string | null;
            unit: string | null;
            cycleId: string;
            weight: import("@prisma/client/runtime/library").Decimal;
            baseTarget: string | null;
            stretchTarget: string | null;
            targetValue: import("@prisma/client/runtime/library").Decimal | null;
            seq: number | null;
            maturityScore: import("@prisma/client/runtime/library").Decimal | null;
        }[];
        evaluations: {
            id: string;
            createdAt: Date;
            status: import("@prisma/client").$Enums.Evaluation360Status;
            updatedAt: Date;
            deletedAt: Date | null;
            targetId: string;
            templateId: string | null;
            createdBy: string;
            cycleId: string;
            deadline: Date;
            minEvaluators: number | null;
        }[];
    } & {
        type: import("@prisma/client").$Enums.CycleType;
        id: string;
        createdAt: Date;
        status: import("@prisma/client").$Enums.CycleStatus;
        name: string;
        startDate: Date;
        endDate: Date;
        updatedAt: Date;
        deletedAt: Date | null;
        organizationId: string;
        createdBy: string;
        resultsPublishedAt: Date | null;
        resultsPublishedBy: string | null;
        gradeConfigId: string | null;
        parentCycleId: string | null;
    }>;
    complete(id: string): Promise<{
        gradeConfig: {
            id: string;
            createdAt: Date;
            name: string;
            updatedAt: Date;
            deletedAt: Date | null;
            description: string | null;
            organizationId: string | null;
            isActive: boolean;
            createdBy: string;
            isDefault: boolean;
            grades: import("@prisma/client/runtime/library").JsonValue;
        } | null;
        kpiAssignments: {
            id: string;
            employeeId: string;
            createdAt: Date;
            status: import("@prisma/client").$Enums.KpiAssignmentStatus;
            name: string;
            updatedAt: Date;
            deletedAt: Date | null;
            description: string | null;
            parentId: string | null;
            unit: string | null;
            cycleId: string;
            weight: import("@prisma/client/runtime/library").Decimal;
            baseTarget: string | null;
            stretchTarget: string | null;
            targetValue: import("@prisma/client/runtime/library").Decimal | null;
            seq: number | null;
            maturityScore: import("@prisma/client/runtime/library").Decimal | null;
        }[];
        evaluations: {
            id: string;
            createdAt: Date;
            status: import("@prisma/client").$Enums.Evaluation360Status;
            updatedAt: Date;
            deletedAt: Date | null;
            targetId: string;
            templateId: string | null;
            createdBy: string;
            cycleId: string;
            deadline: Date;
            minEvaluators: number | null;
        }[];
    } & {
        type: import("@prisma/client").$Enums.CycleType;
        id: string;
        createdAt: Date;
        status: import("@prisma/client").$Enums.CycleStatus;
        name: string;
        startDate: Date;
        endDate: Date;
        updatedAt: Date;
        deletedAt: Date | null;
        organizationId: string;
        createdBy: string;
        resultsPublishedAt: Date | null;
        resultsPublishedBy: string | null;
        gradeConfigId: string | null;
        parentCycleId: string | null;
    }>;
    publishResults(id: string, dto: PublishResultsDto, publishedBy: string): Promise<{
        cycleId: string;
        published: number;
        alreadyPublished: number;
        notified: number;
    }>;
    archive(id: string): Promise<{
        gradeConfig: {
            id: string;
            createdAt: Date;
            name: string;
            updatedAt: Date;
            deletedAt: Date | null;
            description: string | null;
            organizationId: string | null;
            isActive: boolean;
            createdBy: string;
            isDefault: boolean;
            grades: import("@prisma/client/runtime/library").JsonValue;
        } | null;
        kpiAssignments: {
            id: string;
            employeeId: string;
            createdAt: Date;
            status: import("@prisma/client").$Enums.KpiAssignmentStatus;
            name: string;
            updatedAt: Date;
            deletedAt: Date | null;
            description: string | null;
            parentId: string | null;
            unit: string | null;
            cycleId: string;
            weight: import("@prisma/client/runtime/library").Decimal;
            baseTarget: string | null;
            stretchTarget: string | null;
            targetValue: import("@prisma/client/runtime/library").Decimal | null;
            seq: number | null;
            maturityScore: import("@prisma/client/runtime/library").Decimal | null;
        }[];
        evaluations: {
            id: string;
            createdAt: Date;
            status: import("@prisma/client").$Enums.Evaluation360Status;
            updatedAt: Date;
            deletedAt: Date | null;
            targetId: string;
            templateId: string | null;
            createdBy: string;
            cycleId: string;
            deadline: Date;
            minEvaluators: number | null;
        }[];
    } & {
        type: import("@prisma/client").$Enums.CycleType;
        id: string;
        createdAt: Date;
        status: import("@prisma/client").$Enums.CycleStatus;
        name: string;
        startDate: Date;
        endDate: Date;
        updatedAt: Date;
        deletedAt: Date | null;
        organizationId: string;
        createdBy: string;
        resultsPublishedAt: Date | null;
        resultsPublishedBy: string | null;
        gradeConfigId: string | null;
        parentCycleId: string | null;
    }>;
}
