import type { ProjectSummary, TaskComment, TaskDetail, TaskFilter, TaskId, TaskPriority, TaskStatus, TaskSummary } from "../domain/task"; export interface CreateTaskInput { title: string; description?: string | null; projectId?: string | null; labels?: string[]; } export interface UpdateTaskInput { taskId: TaskId; title?: string; status?: TaskStatus; priority?: TaskPriority; description?: string | null; labels?: string[]; assigneeActorIds?: string[]; } export interface AddTaskCommentInput { taskId: TaskId; content: string; } export interface DeleteTaskResult { taskId: TaskId; deleted: true; } export interface MoveTaskInput { taskId: TaskId; targetProjectId: string; } export interface MoveTaskResult { sourceTaskId: TaskId; targetTask: TaskDetail; } export interface TaskService { listTasks(filter?: TaskFilter): Promise; getTask(taskId: TaskId): Promise; createTask(input: CreateTaskInput): Promise; updateTask(input: UpdateTaskInput): Promise; addTaskComment(input: AddTaskCommentInput): Promise; listProjects(): Promise; getProject(projectId: string): Promise; deleteTask(taskId: TaskId): Promise; moveTask(input: MoveTaskInput): Promise; listTaskComments(taskId: TaskId): Promise; }