/** * Real-Time Code Synchronization Engine * KILLER FEATURE: Operational Transform-based conflict resolution * Google Docs-level synchronization for code - Cursor can't do this! */ import { EventEmitter } from 'events'; export interface CodeOperation { id: string; type: 'insert' | 'delete' | 'retain'; position: number; content?: string; length?: number; author: string; timestamp: Date; sessionId: string; fileId: string; } export interface CodeDocument { id: string; sessionId: string; filePath: string; content: string; version: number; lastModified: Date; lastModifiedBy: string; operations: CodeOperation[]; collaborators: string[]; } export interface ConflictResolution { strategy: 'operational_transform' | 'last_writer_wins' | 'manual_merge' | 'ai_assisted'; resolvedBy?: string; originalOperations: CodeOperation[]; resolvedOperations: CodeOperation[]; conflictReason: string; resolutionTime: Date; } export interface SyncState { documentId: string; userId: string; localVersion: number; serverVersion: number; pendingOperations: CodeOperation[]; acknowledgedOperations: string[]; lastSyncTime: Date; } export declare class CodeSyncEngine extends EventEmitter { private documents; private syncStates; private operationQueues; private conflictHistory; constructor(); createDocument(sessionId: string, filePath: string, initialContent: string | undefined, createdBy: string): CodeDocument; getDocument(documentId: string): CodeDocument | null; joinDocument(documentId: string, userId: string): boolean; leaveDocument(documentId: string, userId: string): boolean; submitOperation(operation: CodeOperation): void; private processOperations; private operationsConflict; private getConflictReason; private transformOperation; private applyOperation; private handleConflicts; private broadcastDocumentChange; private startSyncProcessor; resolveConflictWithAI(documentId: string, conflictingOperations: CodeOperation[]): Promise; manualResolveConflict(documentId: string, resolution: ConflictResolution): void; getSyncState(documentId: string, userId: string): SyncState | null; updateSyncState(documentId: string, userId: string, updates: Partial): void; getDocumentAnalytics(documentId: string): { documentId: string; filePath: string; version: number; collaborators: number; totalOperations: number; totalConflicts: number; lastModified: Date; operationsByType: Record; operationsByAuthor: Record; conflictResolutionStrategies: Record; averageConflictResolutionTime: number; } | null; private groupOperationsByType; private groupOperationsByAuthor; private groupConflictsByStrategy; private calculateAverageResolutionTime; shutdown(): Promise; } //# sourceMappingURL=code-sync-engine.d.ts.map