import { ITicketAuditedEntity } from './Common'; export declare enum TicketTaskStatus { PENDING = "PENDING", IN_PROGRESS = "IN_PROGRESS", BLOCKED = "BLOCKED", COMPLETED = "COMPLETED", CANCELLED = "CANCELLED" } export declare enum TicketTaskDependencyType { FINISH_TO_START = "FINISH_TO_START", START_TO_START = "START_TO_START", FINISH_TO_FINISH = "FINISH_TO_FINISH" } export interface ITicketChecklistItemDefinition { id: string; title: string; order: number; required: boolean; } export interface ITicketTaskDefinition { id: string; parentDefinitionId?: string; title: string; description?: string; order: number; required: boolean; assigneeId?: string; assignedGroupId?: string; collaboratorGroupIds?: string[]; dueAfterMinutes?: number; checklist?: ITicketChecklistItemDefinition[]; } export interface ITicketTaskTemplate extends ITicketAuditedEntity { name: string; description?: string; categoryIds?: string[]; tasks: ITicketTaskDefinition[]; dependencies?: ITicketTaskDefinitionDependency[]; enabled: boolean; } export interface ITicketTaskDefinitionDependency { predecessorDefinitionId: string; successorDefinitionId: string; type: TicketTaskDependencyType; } export interface ITicketChecklistItem extends ITicketChecklistItemDefinition { completed: boolean; completedAt?: Date; completedBy?: string; } export interface ITicketTask { id: string; spaceId: string; ticketId: string; templateId?: string; definitionId?: string; parentTaskId?: string; title: string; description?: string; status: TicketTaskStatus; assigneeId?: string; assignedGroupId?: string; collaboratorGroupIds?: string[]; required: boolean; order?: number; dueAt?: Date; checklist?: ITicketChecklistItem[]; version: number; createdAt: Date; createdBy: string; startedAt?: Date; completedAt?: Date; completedBy?: string; cancelledAt?: Date; } export interface ITicketTaskDependency { id: string; ticketId: string; predecessorTaskId: string; successorTaskId: string; type: TicketTaskDependencyType; } export interface ITicketTaskSummary { total: number; completed: number; blocked: number; overdue: number; requiredIncomplete: number; } export interface ICreateTicketTaskDto { expectedTicketVersion: number; parentTaskId?: string; title: string; description?: string; assigneeId?: string; assignedGroupId?: string; collaboratorGroupIds?: string[]; required?: boolean; dueAt?: Date; checklist?: ITicketChecklistItemDefinition[]; } export interface IUpdateTicketTaskDto { expectedTaskVersion: number; title?: string; description?: string; status?: TicketTaskStatus; assigneeId?: string; assignedGroupId?: string; collaboratorGroupIds?: string[]; required?: boolean; dueAt?: Date; } export interface ICompleteTicketChecklistItemDto { expectedTaskVersion: number; taskId: string; checklistItemId: string; completed: boolean; } export interface IApplyTicketTaskTemplateDto { expectedTicketVersion: number; templateId: string; }