/** * Storage Manager * * Unified storage interface that: * - Uses embedded storage by default (no Docker required) * - Falls back to embedded if server connections fail * - Allows individual component override via config/environment * * This is the main entry point for all storage operations in CodeSeeker. */ import { IStorageProvider, IVectorStore, IGraphStore, ICacheStore, IProjectStore, ITextStore, StorageMode } from './interfaces'; export interface StorageManagerConfig { /** Storage mode: 'embedded' (default), 'server', or 'auto' (try server, fallback to embedded) */ mode?: 'embedded' | 'server' | 'auto'; /** Data directory for embedded storage */ dataDir?: string; /** Flush interval in seconds */ flushIntervalSeconds?: number; /** Individual component overrides */ overrides?: { /** Use server PostgreSQL for vectors even in embedded mode */ vectorStore?: 'embedded' | 'server'; /** Use server Neo4j for graph even in embedded mode */ graphStore?: 'embedded' | 'server'; /** Use server Redis for cache even in embedded mode */ cacheStore?: 'embedded' | 'server'; }; /** Server configuration (for 'server' or 'auto' mode) */ server?: { postgres?: { host: string; port: number; database: string; user: string; password: string; }; neo4j?: { uri: string; user: string; password: string; }; redis?: { host: string; port: number; password?: string; }; }; } export declare class StorageManager implements IStorageProvider { private embeddedProvider; private config; private initialized; private mode; private vectorStoreMode; private graphStoreMode; private cacheStoreMode; private serverVectorStore?; private serverGraphStore?; private serverCacheStore?; private serverProjectStore?; constructor(config?: StorageManagerConfig); /** * Initialize storage, testing server connections if needed */ initialize(): Promise; /** * Test if server connections are available */ private testServerConnections; /** * Initialize server connections */ private initializeServerConnections; /** * Apply individual component overrides */ private applyOverrides; /** * Load configuration from environment and config file */ private loadConfig; private getConfigPath; private getDefaultDataDir; getVectorStore(): IVectorStore; getGraphStore(): IGraphStore; getCacheStore(): ICacheStore; getProjectStore(): IProjectStore; getTextStore(): ITextStore; getMode(): StorageMode; flushAll(): Promise; closeAll(): Promise; healthCheck(): Promise<{ healthy: boolean; details: Record; }>; /** * Get storage status for display */ getStatus(): { mode: StorageMode; dataDir: string; components: { vectorStore: 'embedded' | 'server'; graphStore: 'embedded' | 'server'; cacheStore: 'embedded' | 'server'; }; }; } /** * Get the global storage manager instance */ export declare function getStorageManager(config?: StorageManagerConfig): Promise; /** * Reset the storage manager (for testing). * Always nulls the singleton even if closeAll() throws (e.g. already-closed DB). */ export declare function resetStorageManager(): Promise; /** * Check if storage is using embedded mode */ export declare function isUsingEmbeddedStorage(): boolean; //# sourceMappingURL=storage-manager.d.ts.map