/** * SyncConfigRepository - Manages sync configuration state * * Handles the singleton sync_config record for registry sync settings. */ import type { Database as DatabaseType } from '../db/database-interface.js'; /** * Sync frequency options */ export type SyncFrequency = 'daily' | 'weekly'; /** * Interval in milliseconds for each frequency */ export declare const FREQUENCY_INTERVALS: Record; /** * Sync configuration */ export interface SyncConfig { id: string; enabled: boolean; frequency: SyncFrequency; intervalMs: number; lastSyncAt: string | null; nextSyncAt: string | null; lastSyncCount: number; lastSyncError: string | null; createdAt: string; updatedAt: string; } /** * Partial update input */ export interface SyncConfigUpdate { enabled?: boolean; frequency?: SyncFrequency; } /** * Repository for sync configuration management */ export declare class SyncConfigRepository { private db; private stmts; constructor(db: DatabaseType); /** * Ensure sync_config table exists and has default row */ private ensureTable; private prepareStatements; private rowToConfig; /** * Get current sync configuration */ getConfig(): SyncConfig; /** * Update sync configuration */ updateConfig(update: SyncConfigUpdate): SyncConfig; /** * Record successful sync completion */ setLastSync(timestamp: string, count: number): void; /** * Record sync error */ setLastSyncError(error: string): void; /** * Clear any stored error */ clearError(): void; /** * Calculate next sync time based on last sync and interval */ calculateNextSync(lastSyncAt: string, intervalMs: number): string; /** * Check if sync is due based on current time */ isSyncDue(): boolean; /** * Enable automatic sync */ enable(): SyncConfig; /** * Disable automatic sync */ disable(): SyncConfig; /** * Set sync frequency */ setFrequency(frequency: SyncFrequency): SyncConfig; } //# sourceMappingURL=SyncConfigRepository.d.ts.map