import type { Spec } from '../../types/spec/core.js';
/**
 * SPEC-686 Scenario 4: Filter out candidates that share files with implementing specs.
 *
 * A conflict exists when candidate.technicalFiles ∩ activeSpec.technicalFiles is non-empty.
 * technicalFiles extracted from spec.technical?.filesToModify + spec.technical?.filesToCreate.
 *
 * Specs with no file info (draft/rough specs) are treated as conflict-free and included.
 *
 * @param candidates - specs to evaluate (approved, not blocked by deps)
 * @param activeSpecs - all specs currently with status === 'implementing'
 */
export declare function filterConflicting(candidates: Spec[], activeSpecs: Spec[]): Spec[];
/**
 * Extract all file paths from a spec's technical section.
 * Reads filesToModify and filesToCreate from spec.technical.
 */
export declare function extractFiles(spec: Spec): string[];
/**
 * Check if two specs share any files (used by orchestration planner).
 */
export declare function hasFileConflict(specA: Spec, specB: Spec): boolean;
//# sourceMappingURL=conflict-filter.d.ts.map