import { Model } from './model'; import { Schema } from './schema'; export interface DatabaseConfig { storage?: 'memory' | 'file' | 'sqlite' | 'wiredtiger'; file?: { dataPath: string; persistMode?: 'immediate' | 'debounced'; debounceMs?: number; compaction?: { operationThreshold?: number; intervalMs?: number; sizeThresholdBytes?: number; walDataRatio?: number; emergencyOperations?: number; emergencySizeBytes?: number; emergencyRatio?: number; debounceMs?: number; useWorkerThread?: boolean; workerThreshold?: number; }; }; sqlite?: { dataPath: string; }; wiredtiger?: { dataPath: string; cacheSize?: string; compressor?: 'snappy' | 'lz4' | 'zstd' | 'zlib' | 'none'; }; } export declare class Database { private _storage; private _modelRegistry; private _config; private _ttlManager; constructor(config?: DatabaseConfig); /** * Create a model in this database * @param name Model name * @param schema Schema definition * @returns Model instance */ model(name: string, schema: Schema): Model; /** * Get a model from this database's registry * @param name Model name * @returns Model instance or undefined */ getModel>(name: string): Model | undefined; /** * Clear all models in this database and their storage */ clearModels(): Promise; /** * Drop the entire database - deletes all physical storage files and clears all models * This is a destructive operation that cannot be undone */ dropDatabase(): Promise; /** * Disconnect and cleanup */ disconnect(): Promise; } //# sourceMappingURL=database.d.ts.map