import type { Router } from "../router.js"; type AutoContinueRunRecord = { id?: string; initiativeId?: string; status?: string; startedAt?: string; stoppedAt?: string | null; updatedAt?: string | null; tokenBudget?: number | null; maxParallelSlices?: number; parallelMode?: string; activeSliceRunIds?: string[]; activeTaskIds?: string[]; laneByWorkstreamId?: Record; tickMs?: number; }; type NextUpQueueItem = { initiativeId: string; initiativeTitle: string; initiativeStatus: string; initiativePriority?: string | null; initiativePriorityNum?: number | null; workstreamId: string; workstreamTitle: string; workstreamStatus: string; nextTaskId: string | null; nextTaskTitle: string | null; nextTaskPriority: number | null; nextTaskDueAt: string | null; nextTaskMilestoneId?: string | null; runnerAgentId?: string | null; runnerAgentName?: string | null; runnerAgents?: SliceRunnerAgent[]; runnerSource?: "assigned" | "inferred" | "fallback"; queueState: "queued" | "running" | "blocked" | "idle" | "completed"; blockReason?: string | null; sliceScope?: "task" | "milestone" | "workstream" | null; sliceTaskIds?: string[]; sliceTaskCount?: number | null; sliceMilestoneId?: string | null; milestoneBreakdown?: MilestoneBreakdownEntry[]; canStartNow?: boolean; startReasonCode?: string | null; startReasonLabel?: string | null; dispatchableTask?: { id: string; title: string; scope: "task" | "milestone" | "workstream"; milestoneId?: string | null; } | null; isPinned?: boolean; pinnedRank?: number | null; compositeScore?: number; scoringTier?: "urgent" | "ready" | "waiting" | "deferred"; objectiveScore?: number; roiPerToken?: number; expectedTokens?: number; expectedValueUsd?: number; updatedAt?: string | null; }; type SliceRunnerAgent = { id: string; name: string; }; type NextUpQueue = { items: NextUpQueueItem[]; degraded: string[]; summary?: { visibleTotal: number; stateCounts: Record; }; }; type MilestoneBreakdownTask = { id: string; title: string; status: string; }; type MilestoneBreakdownEntry = { id: string; title: string; tasks: MilestoneBreakdownTask[]; totalTasks: number; doneTasks: number; }; type RegisterMissionControlReadRoutesDeps = { autoContinueRuns: Map; restoreAutoContinueRun?: (initiativeId: string) => Promise; defaultAutoContinueTokenBudget: () => number | null; defaultAutoContinueMaxParallelSlices?: () => number; autoContinueTickMs: number; buildMissionControlGraph: (initiativeId: string) => Promise; applyLocalInitiativeOverrideToGraph: (graph: unknown) => unknown; listInitiativeIdsForProject: (input: { projectId: string; }) => Promise; buildNextUpQueue: (input: { initiativeId: string | null; projectId?: string | null; }) => Promise; rawRequest?: (requestMethod: "GET" | "POST" | "PATCH" | "PUT" | "DELETE", requestPath: string, body?: unknown) => Promise; sendJson: (res: TRes, status: number, payload: unknown) => void; safeErrorMessage: (err: unknown) => string; }; export declare function registerMissionControlReadRoutes(router: Router, TReq, TRes>, deps: RegisterMissionControlReadRoutesDeps): void; export {};