zeno-db
Version:
A lightweight, offline-first client-side database with automatic sync capabilities
42 lines (41 loc) • 1.35 kB
TypeScript
import { SyncEvent, SyncStatus, ClientConfig } from './types';
interface StoredItem {
id: string;
[key: string]: any;
}
export declare class ZenoDB {
private config;
private storageAdapter;
private syncAdapter;
private syncSubscribers;
private syncStatus;
private softDeleteConfig;
private isInitialized;
constructor(config: ClientConfig);
private updateSyncStatus;
private notifySyncSubscribers;
subscribe(callback: (event: SyncEvent) => void): () => void;
getSyncStatus(): SyncStatus;
init(): Promise<void>;
private syncOfflineChanges;
get(key: string, includeDeleted?: boolean): Promise<any>;
set(key: string, value: any): Promise<void>;
delete(key: string, permanent?: boolean): Promise<void>;
keys(): Promise<string[]>;
close(): Promise<void>;
getAll(includeDeleted?: boolean): Promise<StoredItem[]>;
restore(key: string): Promise<void>;
purgeDeleted(): Promise<void>;
/**
* Batch get multiple items by keys. Returns an array of values in the same order as keys.
*/
getMany(keys: string[], includeDeleted?: boolean): Promise<any[]>;
/**
* Batch set multiple items. Each item must have an 'id' property.
*/
setMany(items: {
id: string;
[key: string]: any;
}[]): Promise<void>;
}
export {};