/**
 * Dependency graph analysis — ready/blocked tasks, critical path, unlock impact.
 * Local-only; machine-readable JSON for MCP and CLI.
 */
import type { Database } from "bun:sqlite";
export declare const DEPENDENCY_GRAPH_SCHEMA = "todos.dependency_graph.v1";
export interface DependencyNode {
    id: string;
    short_id: string | null;
    title: string;
    status: string;
    priority: string;
    plan_id: string | null;
    project_id: string | null;
}
export interface BlockedTaskReport {
    schema_version: typeof DEPENDENCY_GRAPH_SCHEMA;
    task: DependencyNode;
    blockers: DependencyNode[];
    stale_blockers: DependencyNode[];
    missing_dependencies: string[];
}
export interface ReadyTaskReport {
    schema_version: typeof DEPENDENCY_GRAPH_SCHEMA;
    task: DependencyNode;
    plan_id: string | null;
    priority_score: number;
}
export interface CriticalPathEntry {
    schema_version: typeof DEPENDENCY_GRAPH_SCHEMA;
    task: DependencyNode;
    downstream_count: number;
    direct_dependents: number;
    depth: number;
}
export interface UnlockImpactReport {
    schema_version: typeof DEPENDENCY_GRAPH_SCHEMA;
    task_id: string;
    currently_blocking: number;
    would_unlock: DependencyNode[];
    still_blocked_after: DependencyNode[];
}
export interface DependencyGraphAnalysis {
    schema_version: typeof DEPENDENCY_GRAPH_SCHEMA;
    analyzed_at: string;
    project_id: string | null;
    plan_id: string | null;
    ready_count: number;
    blocked_count: number;
    cycles: string[][];
    missing_dependencies: Array<{
        task_id: string;
        missing_dep_id: string;
    }>;
    stale_blockers: BlockedTaskReport[];
    ready_tasks: ReadyTaskReport[];
    blocked_tasks: BlockedTaskReport[];
    critical_path: CriticalPathEntry[];
}
export interface GraphFilter {
    project_id?: string;
    plan_id?: string;
    status?: string[];
    limit?: number;
}
export declare function getReadyTasks(filter?: GraphFilter, db?: Database): ReadyTaskReport[];
export declare function getBlockedTaskReports(filter?: GraphFilter, db?: Database): BlockedTaskReport[];
export declare function getCriticalPath(filter?: GraphFilter, db?: Database): CriticalPathEntry[];
export declare function getUnlockImpact(taskId: string, db?: Database): UnlockImpactReport;
export declare function analyzeDependencyGraph(filter?: GraphFilter, db?: Database): DependencyGraphAnalysis;
export declare function getDependents(taskId: string, db?: Database): DependencyNode[];
export declare function getBlockers(taskId: string, db?: Database): BlockedTaskReport | null;
//# sourceMappingURL=dependency-graph.d.ts.map