import { WorkspaceRepository, type TaskCommentRow } from "@mcoda/db"; import type { WorkspaceResolution } from "../../workspace/WorkspaceManager.js"; export interface DependencySummary { taskId: string; key: string; status: string; relationType: string; } export interface TaskLogSummary { taskRunId: string; timestamp: string; level?: string | null; source?: string | null; message?: string | null; command?: string; status?: string; details?: Record | null; } export interface TaskRevisionSummary { id: string; jobId?: string | null; commandRunId?: string | null; changedAt: string; statusBefore?: string; statusAfter?: string; storyPointsBefore?: number | null; storyPointsAfter?: number | null; changedFields?: string[]; snapshotBefore?: Record | null; snapshotAfter?: Record | null; } export interface TaskDetailRecord { id: string; key: string; title: string; description?: string | null; type?: string | null; status: string; storyPoints?: number | null; priority?: number | null; assignedAgentId?: string | null; assignedAgentSlug?: string | null; assigneeHuman?: string | null; vcsBranch?: string | null; vcsBaseBranch?: string | null; vcsLastCommitSha?: string | null; metadata?: Record | null; project: { id: string; key: string; name?: string | null; }; epic: { id: string; key: string; title: string; }; story: { id: string; key: string; title: string; }; createdAt: string; updatedAt: string; } export interface TaskDetailResult { task: TaskDetailRecord; dependencies: { upstream: DependencySummary[]; downstream: DependencySummary[]; }; comments: TaskCommentRow[]; logs?: TaskLogSummary[]; history?: TaskRevisionSummary[]; } export interface TaskDetailOptions { taskKey: string; projectKey?: string; includeLogs?: boolean; includeHistory?: boolean; commentsLimit?: number; logsLimit?: number; historyLimit?: number; } export declare class TaskDetailService { private workspace; private db; private repo; private globalRepo?; private apiResolver; private constructor(); static create(workspace: WorkspaceResolution): Promise; close(): Promise; getRepository(): WorkspaceRepository; getTaskDetail(options: TaskDetailOptions): Promise; private resolveTask; private getDependencies; private resolveTaskById; private getLogs; private resolveAgentSlug; private getHistory; private safeParse; private pickField; private diffFields; } //# sourceMappingURL=TaskDetailService.d.ts.map