import { SyncEngine, SyncOptions } from './sync-engine.js'; import { SyncAdapter, SyncResult } from './sync-adapter.js'; export interface AutoSyncOptions { debounceMs?: number; pollIntervalMs?: number; syncOptions?: SyncOptions; onSync?: (table: string, result: SyncResult) => void; onError?: (table: string, error: Error) => void; } export declare class Database { private name; private version?; private db; private models; private engine; private syncUser; private autoSyncAdapter; private autoSyncOpts; private pendingSyncTables; private debounceTimer; private pollTimer; private inFlight; constructor(name: string, version?: number | undefined); setUser(userId: string): void; getUser(): string | null; private resolveVersion; private needsUpgrade; connect(): Promise; registerModel(model: any): void; private handleUpgrade; close(): Promise; migrateUp(): Promise; getDB(): IDBDatabase; getSyncEngine(): SyncEngine; sync(table: string, adapter: SyncAdapter, options?: SyncOptions): Promise; /** * Merge any declared `static columns` from the registered model into the * SyncOptions passed to the engine. Caller-supplied columns take precedence. */ private withModelColumns; /** * Enable automatic syncing. After any CUD operation on a model with * enableSync = true, a debounced sync will be scheduled. If pollIntervalMs * is set, all sync-enabled tables are also pulled periodically. */ enableAutoSync(adapter: SyncAdapter, options?: AutoSyncOptions): void; disableAutoSync(): void; private scheduleDebouncedSync; private runWhenIdle; private flushAutoSync; } //# sourceMappingURL=database.d.ts.map