/** * SDN Storage - IndexedDB-based local storage for SDS data */ import { SchemaName } from './schemas'; export interface LogSyncState { publisherPeerID: string; schema: string; lastSyncedSequence: number; lastSyncedAt: number; } export interface StoredRecord { cid: string; schema: string; peerId: string; timestamp: number; data: Uint8Array; signature: Uint8Array; } export interface QueryFilter { peerId?: string; since?: Date; limit?: number; } export declare class SDNStorage { private db; private dbName; private constructor(); /** * Open or create the storage database */ static open(dbName?: string): Promise; private init; /** * Store a record */ store(schema: SchemaName, data: Uint8Array, peerId: string, signature: Uint8Array): Promise; /** * Get a record by CID */ get(schema: SchemaName, cid: string): Promise; /** * Query records with optional filters */ query(schema: SchemaName, filter?: QueryFilter): Promise; /** * Delete a record by CID */ delete(cid: string): Promise; /** * Get record count by schema */ count(schema: SchemaName): Promise; /** * Get statistics for all schemas */ stats(): Promise>; /** * Clear old records */ garbageCollect(maxAgeMs: number): Promise; /** * Close the database */ close(): Promise; /** * Get the last synced sequence for a (publisher, schema) pair. */ getLogSyncState(publisherPeerID: string, schema: string): Promise; /** * Update the last synced sequence for a (publisher, schema) pair. */ setLogSyncState(publisherPeerID: string, schema: string, sequence: number): Promise; /** * Delete the entire database */ static deleteDatabase(dbName?: string): Promise; } //# sourceMappingURL=storage.d.ts.map