import { B as BaseStorage, S as StorageBackend, k as ModelMeta, p as TensorChunk, q as TokenizerData, n as SyncProgress, U as UserAdapter, r as TrainingLogEntry } from '../../base-storage-CfkDwX0r.js'; /** * OPFS Storage Implementation * * Uses Origin Private File System for model weight storage. * Provides best performance for large binary data in browsers. */ declare class OPFSStorage extends BaseStorage { readonly backend: StorageBackend; private root; private metaDb; private metaFile; /** * Initialize OPFS storage */ initialize(): Promise; private loadMetadata; private saveMetadata; private getModelDir; getModelMeta(modelId: string): Promise; setModelMeta(meta: ModelMeta): Promise; deleteModelMeta(modelId: string): Promise; listModels(): Promise; getTensorChunks(modelId: string, layerIndex: number): Promise; getTensorChunk(modelId: string, tensorName: string, chunkIndex: number): Promise; storeTensorChunk(chunk: TensorChunk): Promise; deleteTensorChunks(modelId: string): Promise; getTokenizer(modelId: string): Promise; setTokenizer(data: TokenizerData): Promise; getSyncProgress(modelId: string): Promise; updateSyncProgress(progress: SyncProgress): Promise; clearSyncProgress(modelId: string): Promise; getUserAdapter(modelId: string, userId: string, adapterId?: string): Promise; setUserAdapter(adapter: UserAdapter): Promise; deleteUserAdapter(adapterId: string): Promise; addTrainingLogEntry(entry: Omit): Promise; getTrainingLog(adapterId: string, limit?: number): Promise; isModelComplete(modelId: string): Promise; getStorageUsed(): Promise; clear(): Promise; } /** * IndexedDB Storage Implementation * * Fallback storage for browsers without OPFS support. * Uses IndexedDB with structured stores for model data. */ declare class IndexedDBStorage extends BaseStorage { readonly backend: StorageBackend; private db; /** * Initialize IndexedDB storage */ initialize(): Promise; private getStore; private promisify; getModelMeta(modelId: string): Promise; setModelMeta(meta: ModelMeta): Promise; deleteModelMeta(modelId: string): Promise; listModels(): Promise; getTensorChunks(modelId: string, layerIndex: number): Promise; getTensorChunk(modelId: string, tensorName: string, chunkIndex: number): Promise; storeTensorChunk(chunk: TensorChunk): Promise; deleteTensorChunks(modelId: string): Promise; getTokenizer(modelId: string): Promise; setTokenizer(data: TokenizerData): Promise; getSyncProgress(modelId: string): Promise; updateSyncProgress(progress: SyncProgress): Promise; clearSyncProgress(modelId: string): Promise; getUserAdapter(modelId: string, userId: string, adapterId?: string): Promise; setUserAdapter(adapter: UserAdapter): Promise; deleteUserAdapter(adapterId: string): Promise; addTrainingLogEntry(entry: Omit): Promise; getTrainingLog(adapterId: string, limit?: number): Promise; isModelComplete(modelId: string): Promise; getStorageUsed(): Promise; clear(): Promise; } /** * Memory Storage Implementation * * In-memory storage for testing and Node.js environments. * Does not persist data between sessions. */ declare class MemoryStorage extends BaseStorage { readonly backend: StorageBackend; private models; private tensorChunks; private tokenizers; private syncProgress; private userAdapters; private trainingLog; private nextLogId; initialize(): Promise; getModelMeta(modelId: string): Promise; setModelMeta(meta: ModelMeta): Promise; deleteModelMeta(modelId: string): Promise; listModels(): Promise; getTensorChunks(modelId: string, layerIndex: number): Promise; getTensorChunk(modelId: string, tensorName: string, chunkIndex: number): Promise; storeTensorChunk(chunk: TensorChunk): Promise; deleteTensorChunks(modelId: string): Promise; getTokenizer(modelId: string): Promise; setTokenizer(data: TokenizerData): Promise; getSyncProgress(modelId: string): Promise; updateSyncProgress(progress: SyncProgress): Promise; clearSyncProgress(modelId: string): Promise; getUserAdapter(modelId: string, userId: string, adapterId?: string): Promise; setUserAdapter(adapter: UserAdapter): Promise; deleteUserAdapter(adapterId: string): Promise; addTrainingLogEntry(entry: Omit): Promise; getTrainingLog(adapterId: string, limit?: number): Promise; isModelComplete(modelId: string): Promise; getStorageUsed(): Promise; clear(): Promise; } /** * Storage Factory * * Creates appropriate storage backend based on environment capabilities. */ interface StorageOptions { /** Preferred storage backend */ backend?: StorageBackend; /** Force the specified backend even if not optimal */ force?: boolean; } /** * Detect the best available storage backend */ declare function detectBestBackend(): StorageBackend; /** * Create a storage instance */ declare function createStorage(options?: StorageOptions): Promise; export { IndexedDBStorage, MemoryStorage, OPFSStorage, type StorageOptions, createStorage, detectBestBackend };