/** * MongoDB-compatible Document Database Implementation * * Main database class that provides collection management and transactions * Built on Cloudflare D1 with schema-free architecture */ import { Document, CollectionOptions, CollectionInfo, ClientSession, TransactionOptions, IDocumentDatabase, IDocumentCollection, DocumentStorageConfig } from './interface.js'; import { ChangeStreamManager } from './change-streams.js'; import { DynamicIndexManager } from './schema-manager.js'; /** * MongoDB-compatible Document Database */ export declare class DocumentDatabase implements IDocumentDatabase { readonly name: string; d1: any; private kvStore?; private r2Bucket?; private changeStreamManager; private indexManager; private collections; private sessions; private config; constructor(name: string, config: DocumentStorageConfig); /** * Initialize the database */ initialize(): Promise; /** * Get a collection instance */ collection(name: string): IDocumentCollection; /** * Create a collection with options */ createCollection(name: string, options?: CollectionOptions): Promise; /** * Drop a collection */ dropCollection(name: string): Promise; /** * List all collections */ listCollections(): Promise; /** * Rename a collection */ renameCollection(fromName: string, toName: string, options?: { dropTarget?: boolean; }): Promise; /** * Get database statistics */ stats(): Promise; /** * Drop the database */ drop(): Promise; /** * Start a new session */ startSession(options?: any): Promise; /** * Execute operations in a transaction */ withTransaction(session: ClientSession, fn: () => Promise, options?: TransactionOptions): Promise; /** * Create a database backup */ backup(options?: { includeIndexes?: boolean; compress?: boolean; destination?: string; }): Promise; /** * Restore from backup */ restore(backupId: string, options?: { dropExisting?: boolean; source?: 'kv' | 'r2'; }): Promise; /** * Get database health status */ healthCheck(): Promise<{ status: 'healthy' | 'warning' | 'critical'; checks: Record; }>; private createSystemTables; private collectionExists; private generateCollectionId; private cleanupSessions; private compressData; /** * Get change stream manager for external use */ getChangeStreamManager(): ChangeStreamManager; /** * Get index manager for external use */ getIndexManager(): DynamicIndexManager; /** * Get configuration */ getConfig(): DocumentStorageConfig; } //# sourceMappingURL=database.d.ts.map