import { Task } from "./task.mjs"; //#region src/models/taskGraph.d.ts /** True when a non-empty list has no visible work left to finish. */ export 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. */ export declare function detectCycle(taskList: readonly Task[], taskId: number, newBlockedBy: readonly number[]): boolean; /** Inverse adjacency: for each task, which tasks list it in their blockedBy. */ export 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. */ export declare function unresolvedBlockers(taskList: readonly Task[], task: Task): number[]; export declare function isBlocked(taskList: readonly Task[], task: Task): boolean; //#endregion //# sourceMappingURL=taskGraph.d.mts.map