/**
 * engine/living-spec/bidirectional-sync.ts — AC-9: Bidirectional sync
 *
 * Pure functions for bidirectional synchronization between specs and code:
 * - TODO comment generation (spec-to-code): surface pending criteria as code annotations
 * - Progress updates (code-to-spec): promote criteria status when annotations are found
 * - Conflict detection: flag criteria with annotations whose spec status is "drift" or "regression"
 * - Sync log entries: structured audit trail for each sync operation
 * - Result builders: assemble SyncResult objects for spec-to-code and code-to-spec directions
 */
import type { TodoComment, ProgressUpdate, SyncConflict, SyncLogEntry, SyncResult, SyncDirection, SpecAnnotation, CriterionInfo } from '../../types/index.js';
/**
 * Generate TODO comments for pending criteria that lack annotations in code.
 */
export declare function generateTodoComments(pendingCriteria: CriterionInfo[], existingAnnotations: SpecAnnotation[], defaultFile: string): TodoComment[];
/**
 * Generate progress updates based on annotations found in code.
 */
export declare function generateProgressUpdates(annotations: SpecAnnotation[], criteriaStatuses: Map<string, string>): ProgressUpdate[];
/**
 * Detect conflicts between code state and spec state.
 */
export declare function detectConflicts(annotations: SpecAnnotation[], criteriaStatuses: Map<string, string>, direction: SyncDirection): SyncConflict[];
/**
 * Create a sync log entry.
 */
export declare function createSyncLogEntry(direction: SyncDirection, specId: string, action: string, details: string): SyncLogEntry;
/**
 * Build a spec-to-code sync result.
 */
export declare function buildSpecToCodeResult(specId: string, todos: TodoComment[], conflicts: SyncConflict[]): SyncResult;
/**
 * Build a code-to-spec sync result.
 */
export declare function buildCodeToSpecResult(specId: string, updates: ProgressUpdate[], conflicts: SyncConflict[]): SyncResult;
//# sourceMappingURL=bidirectional-sync.d.ts.map