/** * NoSQL Document Storage Module * * MongoDB-compatible document storage with schema-free architecture * Built on Cloudflare D1 with automatic indexing and real-time capabilities * * @author NoSQL Team * @version 1.0.0 */ export { DocumentStorageEngine } from './storage-engine.js'; export { DocumentDatabase } from './database.js'; export { DocumentCollection } from './collection.js'; export { MongoQueryEngine } from './query-engine.js'; export { DynamicIndexManager } from './schema-manager.js'; export { ChangeStreamManager, DocumentChangeStream } from './change-streams.js'; export type { Document, ObjectId, BaseDocument, DocumentValue, QueryFilter, QueryOptions, FindOptions, ComparisonOperators, LogicalOperators, ElementOperators, EvaluationOperators, ArrayOperators, GeospatialOperators, QueryOperators, UpdateOperators, ReplaceOptions, UpdateOptions, AggregationStage, AggregationPipeline, AggregationOptions, AggregationCursor, IndexKey, IndexOptions, IndexSpec, IndexInfo, CollectionOptions, CollectionInfo, BulkWriteOperation, BulkWriteOptions, BulkWriteResult, ChangeStreamOptions, ChangeEvent, ChangeStream, TransactionOptions, ClientSession, SchemaEvolutionEvent, FieldAnalysis, CollectionAnalytics, StorageEngine, StorageLocation, DocumentStorage, IndexMapping, QueryPlan, QueryExplain, PerformanceMetrics, InsertOneResult, InsertManyResult, UpdateResult, DeleteResult, ReplaceOneResult, PaginationResult, Flatten, DeepPartial, DocumentStorageConfig } from './types.js'; export type { IDocumentCollection, IBulkOperationBuilder, IBulkFindOperations, IBulkUpsertOperations, IDocumentDatabase, IDocumentStorageEngine, IQueryEngine, IIndexManager, IChangeStreamManager } from './interface.js'; export { DocumentError, ValidationError, DuplicateKeyError, IndexError } from './types.js'; /** * Create a new document storage engine with simplified configuration */ export declare function createDocumentStorage(config: { d1Database: any; kvStore?: any; r2Bucket?: any; options?: { maxIndexedFields?: number; autoIndexThreshold?: number; queryTimeout?: number; maxDocumentSize?: number; enableQueryCache?: boolean; queryCacheTTL?: number; enableAutoIndexing?: boolean; enableSchemaEvolution?: boolean; enableChangeStreams?: boolean; maxChangeStreamConnections?: number; enableQueryLogging?: boolean; enablePerformanceMetrics?: boolean; }; }): Promise; /** * Validate MongoDB query syntax */ export declare function validateQuery(query: any): { valid: boolean; errors: string[]; }; /** * Generate a new ObjectId */ export declare function generateObjectId(): ObjectId; /** * Parse ObjectId timestamp */ export declare function getObjectIdTimestamp(objectId: ObjectId): Date; /** * Convert MongoDB query to human-readable string */ export declare function queryToString(query: any, indent?: number): string; /** * Create aggregation pipeline builder */ export declare class AggregationPipelineBuilder { private pipeline; match(filter: any): this; project(projection: any): this; group(groupSpec: any): this; sort(sortSpec: any): this; limit(count: number): this; skip(count: number): this; unwind(path: string | object): this; lookup(lookupSpec: { from: string; localField: string; foreignField: string; as: string; }): this; addFields(fields: any): this; build(): AggregationStage[]; clear(): this; } /** * Create a new aggregation pipeline builder */ export declare function createAggregationPipeline(): AggregationPipelineBuilder; export declare const VERSION = "1.0.0"; export declare const MONGODB_COMPATIBILITY_VERSION = "6.0"; export declare const FEATURES: { readonly schemaFree: true; readonly autoIndexing: true; readonly changeStreams: true; readonly transactions: true; readonly aggregation: true; readonly fullTextSearch: true; readonly vectorStorage: true; readonly geoSpatial: false; readonly gridFS: false; readonly sharding: true; readonly replication: true; }; /** * Example usage of the document storage system */ export declare const EXAMPLES: { basicCRUD: string; changeStreams: string; aggregation: string; transactions: string; }; //# sourceMappingURL=index.d.ts.map