import type { Spec } from '../../types/spec/core.js';
/**
 * SPEC-686 Scenarios 3, 9, 10, 11:
 * Filter out specs whose dependencies have not been completed.
 *
 * - Scenario 3: specs with deps on non-done specs are excluded
 * - Scenario 9: cyclic dependencies → all cycle members excluded
 * - Scenario 10: malformed dependencies (non-array) treated as []
 * - Scenario 11: missing dependencies key treated as []
 *
 * @param specs - candidate specs to filter (typically approved only)
 * @param allSpecs - full spec list (for dependency status lookup)
 * @returns specs that are not blocked by any unmet or cyclic dependency
 */
export declare function filterBlocked(specs: Spec[], allSpecs: Spec[]): Spec[];
/**
 * SPEC-686 Scenario 9: Detect all spec IDs that are part of a dependency cycle.
 * Uses DFS iterative coloring (white/gray/black).
 */
export declare function detectCycleMembers(allSpecs: Spec[]): Set<string>;
//# sourceMappingURL=dependency-filter.d.ts.map