import type { FilledMangoQuery, MangoQuerySelector, MangoQuerySortPart, RxDocumentData, RxJsonSchema } from '../../types/index.d.ts'; import { Sort as MongoSort, MongoClient } from 'mongodb'; import { MongoDBPreparedQuery, MongoQuerySelector } from './mongodb-types.ts'; export declare const RX_STORAGE_NAME_MONGODB = "mongodb"; export declare const MONGO_OPTIONS_DRIVER_INFO: { driverInfo: { name: string; version: string; }; }; /** * MongoDB uses the _id field by itself (max 12 bytes) * so we have to substitute the _id field if * it is used in the RxDocType. */ export declare const MONGO_ID_SUBSTITUTE_FIELDNAME = "__id"; export declare function primarySwapMongoDBQuerySelector(primaryKey: keyof RxDocType, selector: MangoQuerySelector): MongoQuerySelector; export declare function prepareMongoDBQuery(schema: RxJsonSchema>, mutateableQuery: FilledMangoQuery): MongoDBPreparedQuery; export declare function swapMongoToRxDoc(docData: any): RxDocumentData; export declare function swapRxDocToMongo(docData: RxDocumentData): any; export declare function swapToMongoSort(sort: MangoQuerySortPart[]): MongoSort; export declare function getMongoDBIndexName(index: string[]): string; export declare const MONGO_CLIENT_CACHE: Map; closeTimeout?: ReturnType; }>; export declare function getMongoDBClient(connection: string): Promise; export declare function closeMongoDBClient(connection: string): Promise;