import { TodoistApi } from '@doist/todoist-sdk'; import { ResolvedUser } from './user-resolver.js'; export declare const AssignmentErrorType: { readonly USER_NOT_FOUND: "USER_NOT_FOUND"; readonly USER_NOT_COLLABORATOR: "USER_NOT_COLLABORATOR"; readonly PROJECT_NOT_SHARED: "PROJECT_NOT_SHARED"; readonly TASK_NOT_ACCESSIBLE: "TASK_NOT_ACCESSIBLE"; readonly PERMISSION_DENIED: "PERMISSION_DENIED"; readonly PROJECT_NOT_FOUND: "PROJECT_NOT_FOUND"; readonly TASK_NOT_FOUND: "TASK_NOT_FOUND"; }; export type AssignmentErrorType = (typeof AssignmentErrorType)[keyof typeof AssignmentErrorType]; export type ValidationError = { type: AssignmentErrorType; message: string; suggestions?: string[]; }; export type ValidationResult = { isValid: boolean; resolvedUser?: ResolvedUser; error?: ValidationError; taskId?: string; projectId?: string; }; export type Assignment = { taskId?: string; projectId: string; responsibleUid: string; }; export declare class AssignmentValidator { /** * Validate a single assignment operation */ validateAssignment(client: TodoistApi, assignment: Assignment): Promise; /** * Validate multiple assignment operations in bulk */ validateBulkAssignment(client: TodoistApi, assignments: Assignment[]): Promise; /** * Validate assignment for task creation (no taskId required) */ validateTaskCreationAssignment(client: TodoistApi, projectId: string, responsibleUid: string): Promise; /** * Validate assignment for task update */ validateTaskUpdateAssignment(client: TodoistApi, taskId: string, responsibleUid: string | null): Promise; /** * Get detailed assignment eligibility information for troubleshooting */ getAssignmentEligibility(client: TodoistApi, projectId: string, responsibleUid: string, taskIds?: string[]): Promise<{ canAssign: boolean; projectInfo: { name: string; isShared: boolean; collaboratorCount: number; }; userInfo?: { resolvedName: string; isCollaborator: boolean; }; taskInfo?: { accessibleTasks: number; inaccessibleTasks: number; }; recommendations: string[]; }>; } export declare const assignmentValidator: AssignmentValidator; //# sourceMappingURL=assignment-validator.d.ts.map