export interface LocalBlob { id?: number | string; client_proposed_id?: string; data: string; updated_at?: string; deleted_at?: string | null; [key: string]: unknown; } export interface ConflictResolution { blobs: LocalBlob[]; renameMap: Record; renamedCount: number; } /** * Resolve ID conflicts between local-only blobs and server-side proposed IDs. * * Steps: * 1. Identify root-collisions (local memories blob with id ∈ serverRootIds). * 2. Assign next free root ID per collision (avoiding both server + already-assigned). * 3. Rewrite every local blob: data.id, data.root_id, data.parent_id (memory_nodes), * outer client_proposed_id, and cross-link references [P00XX] / [P00XX.y.z] in body text. * 4. Return all blobs (renamed + unchanged-id-but-body-rewritten) plus the rename map. */ export declare function resolveConflicts(serverRootIds: Set, localBlobs: LocalBlob[]): ConflictResolution;