/**
 * Sync Event Queue
 *
 * Replaces direct LivingDocsSync/SyncCoordinator calls in trigger paths.
 * Events are appended to .specweave/state/event-queue/pending.jsonl
 * and drained by explicit CLI commands (specweave complete, sw:sync-progress).
 *
 * Design:
 * - Append-only JSONL (one JSON object per line)
 * - appendFile is atomic-ish for single-line appends on all major OS
 * - No locking needed: worst case is reordered lines, not data loss
 *
 * @module core/sync/event-queue
 */
/**
 * A queued sync event waiting to be processed.
 */
export interface SyncEvent {
    incrementId: string;
    eventType: string;
    metadata?: Record<string, any>;
    timestamp: string;
}
/**
 * Append a sync event to the pending queue.
 *
 * Creates the queue directory and file if they don't exist.
 * Uses appendFile for atomic-ish single-line writes.
 *
 * @param projectRoot - Project root directory
 * @param incrementId - Increment identifier (e.g., '0618-simplify-sync-setup')
 * @param eventType - Event type (e.g., 'task.completed', 'status.changed')
 * @param metadata - Optional metadata (taskId, newStatus, etc.)
 */
export declare function queueSyncEvent(projectRoot: string, incrementId: string, eventType: string, metadata?: Record<string, any>): Promise<void>;
/**
 * Read all pending events from the queue.
 *
 * @param projectRoot - Project root directory
 * @returns Array of pending SyncEvent objects
 */
export declare function readPendingEvents(projectRoot: string): Promise<SyncEvent[]>;
//# sourceMappingURL=event-queue.d.ts.map