/**
 * Task Assignment Interface
 */
export interface TaskAssignment {
    taskId: string;
    assigneeId: string;
    assignerId: string;
    assignedAt: string;
    dueDate?: string;
    workloadPoints?: number;
    notes?: string;
}
/**
 * User Workload Summary
 */
export interface WorkloadSummary {
    userId: string;
    totalTasks: number;
    activeTasks: number;
    completedTasks: number;
    overdueTasks: number;
    totalWorkloadPoints: number;
    averageCompletionTime?: number;
    upcomingDeadlines: {
        taskId: string;
        title: string;
        dueDate: string;
    }[];
}
/**
 * Assignment Recommendation
 */
export interface AssignmentRecommendation {
    userId: string;
    userName: string;
    currentWorkload: number;
    availability: number;
    skillMatch?: number;
    recommendationScore: number;
    reason: string;
}
/**
 * Assignment Service
 * Manages task assignments and workload distribution
 */
export declare class AssignmentService {
    private client;
    constructor();
    private initializeClient;
    /**
     * Assign a task to a user
     */
    assignTask(taskId: string, assigneeId: string, assignerId: string, options?: {
        dueDate?: string;
        workloadPoints?: number;
        notes?: string;
    }): Promise<TaskAssignment>;
    /**
     * Reassign a task to a different user
     */
    reassignTask(taskId: string, newAssigneeId: string, reassignerId: string, reason?: string): Promise<TaskAssignment>;
    /**
     * Unassign a task
     */
    unassignTask(taskId: string, unassignerId: string): Promise<void>;
    /**
     * Get tasks assigned to a user
     */
    getAssignedTasks(userId: string, options?: {
        includeCompleted?: boolean;
        projectId?: string;
        status?: string;
        sort?: string;
        limit?: number;
    }): Promise<any[]>;
    /**
     * Get workload summary for a user
     */
    getWorkloadSummary(userId: string): Promise<WorkloadSummary>;
    /**
     * Get assignment recommendations for a task
     */
    getAssignmentRecommendations(taskId: string, options?: {
        maxRecommendations?: number;
        projectTeamOnly?: boolean;
    }): Promise<AssignmentRecommendation[]>;
    /**
     * Batch assign multiple tasks
     */
    batchAssignTasks(assignments: {
        taskId: string;
        assigneeId: string;
        dueDate?: string;
        workloadPoints?: number;
    }[], assignerId: string): Promise<TaskAssignment[]>;
    /**
     * Auto-balance workload across team
     */
    autoBalanceWorkload(projectId: string, balancerId: string): Promise<{
        reassignments: number;
        details: any[];
    }>;
    /**
     * Get project team members
     */
    private getProjectTeamMembers;
}
export declare const assignmentService: AssignmentService;
//# sourceMappingURL=assignment.service.d.ts.map