import { s as Task } from "./task-hLh4BOO7.mjs"; //#region src/models/taskGraph.d.ts /** True when a non-empty list has no visible work left to finish. */ declare function isTaskListComplete(taskList: readonly Task[]): boolean; /** * Would merging `newBlockedBy` into `taskId`'s dependencies introduce a cycle? * * Takes the proposed additions explicitly so the reducer can ask the question * before mutating anything. */ declare function detectCycle(taskList: readonly Task[], taskId: number, newBlockedBy: readonly number[]): boolean; /** Inverse adjacency: for each task, which tasks list it in their blockedBy. */ declare function deriveBlocks(taskList: readonly Task[]): Map; /** * Blocking dependencies of a task that are not yet resolved. * * `completed` clears a dependency; `failed` deliberately does not, so a failed * delegation keeps its dependents blocked instead of silently releasing work * that was never actually finished. */ declare function unresolvedBlockers(taskList: readonly Task[], task: Task): number[]; declare function isBlocked(taskList: readonly Task[], task: Task): boolean; //#endregion export { unresolvedBlockers as a, isTaskListComplete as i, detectCycle as n, isBlocked as r, deriveBlocks as t }; //# sourceMappingURL=taskGraph-YQXCfXTn.d.mts.map