/** * StorageEngine interface - Unified abstraction over Cloudflare storage services * Designed for sub-10ms latency and edge-native performance */ import { StorageResult, StorageError, Document, DocumentQuery, VectorData, VectorQuery, VectorSearchResult, TimeSeriesPoint, TimeSeriesQuery, TransactionContext, BatchOperation, StorageConfig, PerformanceMetrics, ShardInfo, ChangeEvent, StreamConfig, IndexedField, AdapterConfig } from '../types'; export { StorageResult, StorageError, Document, DocumentQuery, VectorData, VectorQuery, VectorSearchResult, TimeSeriesPoint, TimeSeriesQuery, TransactionContext, BatchOperation, StorageConfig, PerformanceMetrics, ShardInfo, ChangeEvent, StreamConfig, IndexedField, AdapterConfig }; export interface StorageEngine { initialize(config: StorageConfig): Promise; destroy(): Promise; health(): Promise<{ healthy: boolean; shards: ShardInfo[]; }>; insertDocument(collection: string, document: Document): Promise>; findDocuments(collection: string, query: DocumentQuery): Promise>; updateDocument(collection: string, id: string, update: Partial): Promise>; deleteDocument(collection: string, id: string): Promise>; countDocuments(collection: string, filter?: Record): Promise>; insertMany(collection: string, documents: Document[]): Promise>; updateMany(collection: string, filter: Record, update: Partial): Promise>; deleteMany(collection: string, filter: Record): Promise>; insertVector(collection: string, vector: VectorData): Promise>; searchVectors(collection: string, query: VectorQuery): Promise>; deleteVector(collection: string, id: string): Promise>; upsertVector(collection: string, vector: VectorData): Promise>; insertHybrid(collection: string, document: Document, vector: VectorData): Promise>; searchHybrid(collection: string, vectorQuery: VectorQuery, documentFilter?: Record): Promise>>; insertTimeSeriesPoint(point: TimeSeriesPoint): Promise>; insertTimeSeriesBatch(points: TimeSeriesPoint[]): Promise>; queryTimeSeries(query: TimeSeriesQuery): Promise>; aggregateTimeSeries(query: TimeSeriesQuery): Promise>>; executeSQL(sql: string, params?: any[]): Promise>; executeBatchSQL(operations: Array<{ sql: string; params?: any[]; }>): Promise>; putBlob(key: string, data: ArrayBuffer | Uint8Array, metadata?: Record): Promise>; getBlob(key: string): Promise; }>>; deleteBlob(key: string): Promise>; listBlobs(prefix?: string, limit?: number): Promise>>; putKV(key: string, value: any, options?: { ttl?: number; metadata?: Record; }): Promise>; getKV(key: string): Promise; }>>; deleteKV(key: string): Promise>; listKV(prefix?: string, limit?: number): Promise; }>>>; ensureIndex(collection: string, field: string, options?: { unique?: boolean; sparse?: boolean; }): Promise>; dropIndex(collection: string, field: string): Promise>; getIndexes(collection: string): Promise>>; optimizeCollection(collection: string): Promise>; beginTransaction(isolation?: 'read_committed' | 'serializable'): Promise>; commitTransaction(context: TransactionContext): Promise>; rollbackTransaction(context: TransactionContext): Promise>; executeBatch(batch: BatchOperation): Promise>; watchCollection(collection: string, config: StreamConfig): Promise>; createStream(config: StreamConfig): Promise; getMetrics(): Promise; getShardInfo(): Promise; optimizePerformance(): Promise>; createBackup(collections?: string[]): Promise>; restoreBackup(backupId: string): Promise>; createCollection(name: string, options?: { sharding?: any; indexing?: any; }): Promise>; dropCollection(name: string): Promise>; listCollections(): Promise>>; } export interface StorageAdapter { readonly backend: string; initialize(config: any): Promise; destroy(): Promise; health(): Promise; getMetrics(): Promise; } export interface SQLAdapter extends StorageAdapter { execute(sql: string, params?: any[]): Promise>; executeBatch(operations: Array<{ sql: string; params?: any[]; }>): Promise>; beginTransaction(): Promise; commitTransaction(txId: string): Promise; rollbackTransaction(txId: string): Promise; } export interface DocumentAdapter extends StorageAdapter { insert(collection: string, document: Document): Promise>; find(collection: string, query: DocumentQuery): Promise>; update(collection: string, id: string, update: Partial): Promise>; delete(collection: string, id: string): Promise>; } export interface VectorAdapter extends StorageAdapter { insert(collection: string, vector: VectorData): Promise>; search(collection: string, query: VectorQuery): Promise>; delete(collection: string, id: string): Promise>; buildIndex(collection: string, options?: any): Promise>; } export interface KeyValueAdapter extends StorageAdapter { put(key: string, value: any, options?: any): Promise>; get(key: string): Promise>; delete(key: string): Promise>; list(prefix?: string, limit?: number): Promise>>; } export interface BlobAdapter extends StorageAdapter { put(key: string, data: ArrayBuffer | Uint8Array, metadata?: Record): Promise>; get(key: string): Promise; }>>; delete(key: string): Promise>; list(prefix?: string, limit?: number): Promise>>; } export interface StatefulAdapter extends StorageAdapter { getState(key: string): Promise>; setState(key: string, value: any): Promise>; deleteState(key: string): Promise>; listStates(prefix?: string): Promise>>; acquireLock(key: string, ttl?: number): Promise>; releaseLock(key: string, lockId: string): Promise>; } //# sourceMappingURL=storage-engine.d.ts.map