import { Evaluation360Status, EvaluationTaskStatus, RelationType } from '@prisma/client';
export declare class CreateEvaluation360Dto {
    cycleId: string;
    targetId?: string;
    evaluateeId?: string;
    deadline?: string;
    templateId?: string;
    minEvaluators?: number;
    evaluators?: AddEvaluatorDto[];
    anonymityLevel?: string;
}
export declare class UpdateEvaluation360Dto {
    deadline?: string;
    templateId?: string;
    minEvaluators?: number;
}
export declare class QueryEvaluation360Dto {
    cycleId?: string;
    evaluateeId?: string;
    status?: Evaluation360Status;
    page?: number;
    pageSize?: number;
}
export declare class AddEvaluatorDto {
    evaluatorId: string;
    relationType?: RelationType;
    relationship?: string;
    isAnonymous?: boolean;
}
export declare class AddEvaluatorsDto {
    evaluators: AddEvaluatorDto[];
}
export declare class QueryTaskDto {
    evaluationId?: string;
    evaluatorId?: string;
    status?: EvaluationTaskStatus;
    page?: number;
    pageSize?: number;
}
export declare class DimensionScoreDto {
    dimension: string;
    score: number;
    comment?: string;
}
export declare class SubmitFeedbackDto {
    responses: DimensionScoreDto[];
    overallComment?: string;
}
export declare class Evaluation360ResponseDto {
    id: string;
    cycleId: string;
    targetId: string;
    status: Evaluation360Status;
    templateId?: string;
    deadline: Date;
    minEvaluators?: number;
    createdBy: string;
    createdAt: Date;
    updatedAt: Date;
    tasks?: TaskResponseDto[];
}
export declare class TaskResponseDto {
    id: string;
    evaluationId: string;
    evaluatorId: string;
    relationType: RelationType;
    status: EvaluationTaskStatus;
    isAnonymous: boolean;
    submittedAt?: Date;
    createdAt: Date;
}
export declare class EvaluationResultDto {
    evaluationId: string;
    targetId: string;
    overallScore: number;
    dimensionScores: {
        dimension: string;
        avgScore: number;
        responses: number;
    }[];
    relationBreakdown: {
        relationType: RelationType;
        avgScore: number;
        count: number;
    }[];
    completedTasks: number;
    totalTasks: number;
}
