/** * Memory Synchronizer * 로컬 메모리(캐시)와 원격 A2A 서버(Single Source of Truth) 간 동기화 */ import type { MemoryDatabase } from '../db/database.js'; import type { A2AClient } from './client.js'; export interface SyncResult { pushed: number; pulled: number; conflicts: number; errors: string[]; duration: number; } export declare class MemorySynchronizer { private db; private client; private teamPath?; private nodeId?; private queue; private failures; private lastFailureAt; private readonly maxFailures; private readonly cooldownMs; constructor(db: MemoryDatabase, client: A2AClient, teamPath?: string | undefined, nodeId?: string | undefined); isCircuitOpen(): boolean; recordSuccess(): void; recordFailure(): void; /** * 양방향 동기화 (team 모드 시 TeamSynchronizer에 위임) */ sync(): Promise; /** * 로컬 양방향 동기화 (기존 로직) */ private syncLocal; /** * 로컬→원격 (SyncQueue에 위임) */ push(options?: { timeoutMs?: number; }): Promise; /** * 원격→로컬 (페이지네이션 적용) */ pull(): Promise; /** * 동기화 상태 확인 */ getStatus(): Promise<{ pendingPush: number; pendingPull: number; lastSyncedAt?: string; }>; } //# sourceMappingURL=synchronizer.d.ts.map