/** * Sync Scheduler * * 주기적으로 MemorySynchronizer.sync()를 실행하는 스케줄러. * CLI `sync --watch` 또는 라이브러리로 사용 가능. */ import type { MemorySynchronizer, SyncResult } from './synchronizer.js'; import type { HookLogger } from '../utils/logger.js'; export interface SyncSchedulerOptions { /** 동기화 주기 (ms). 기본: 1800000 (30분). 0이면 비활성 */ intervalMs: number; /** 시작 시 즉시 sync 실행 여부. 기본: true */ syncOnStart?: boolean; /** sync 완료 콜백 */ onSync?: (result: SyncResult) => void; /** 에러 콜백 */ onError?: (error: Error) => void; } export interface SyncSchedulerStatus { running: boolean; syncing: boolean; syncCount: number; lastSyncAt: string | null; lastResult: SyncResult | null; intervalMs: number; nextSyncAt: string | null; } export declare class SyncScheduler { private synchronizer; private options; private logger?; private timer; private running; private syncing; private syncCount; private lastSyncAt; private lastResult; private startedAt; constructor(synchronizer: MemorySynchronizer, options: SyncSchedulerOptions, logger?: HookLogger | undefined); /** * 스케줄러 시작 */ start(): Promise; /** * 스케줄러 중지 */ stop(): void; /** * 실행 중 여부 */ isRunning(): boolean; /** * 현재 sync 중 여부 */ isSyncing(): boolean; /** * 스케줄러 상태 */ getStatus(): SyncSchedulerStatus; /** * 수동으로 즉시 sync 실행 (스케줄러 타이머와 무관) */ syncNow(): Promise; /** * 한 번의 sync 사이클 */ private tick; } //# sourceMappingURL=scheduler.d.ts.map