/** * Unblock opportunities analysis. * @task T4784 */ import type { TaskRef } from '@cleocode/contracts'; import type { DataAccessor } from '../store/data-accessor.js'; export interface HighImpactTask { taskId: string; title: string; wouldUnblock: number; dependents: string[]; } export interface SingleBlockerTask { taskId: string; title: string; remainingBlocker: Pick; } export interface CommonBlocker { taskId: string; title: string; blocksCount: number; blockedTasks: string[]; } export interface UnblockResult { highImpact: HighImpactTask[]; singleBlocker: SingleBlockerTask[]; commonBlockers: CommonBlocker[]; } /** * Analyze selected project tasks for dependency-unblocking opportunities. * @param cwd - Explicit owning project root, when supplied. * @param accessor - Optional canonical accessor already bound to that project. * @returns Existing potential-impact rankings and unresolved single/common blockers. * @throws Error when selected tasks or required dependency records cannot be read. * @remarks Done and archived dependencies satisfy the shared spawn policy; * cancelled and missing dependencies remain blockers. Lookup-only archive rows * never expand selected tasks. High-impact counts are transitive potential, not * proof that every dependent is immediately runnable or admitted. * @example * ```ts * const opportunities = await getUnblockOpportunities(projectRoot, accessor); * ``` */ export declare function getUnblockOpportunities(cwd?: string, accessor?: DataAccessor): Promise; //# sourceMappingURL=unblock.d.ts.map