import { ShellApiClass } from './decorators'; import type { ChangeStreamOptions, Document, ListDatabasesOptions, ReadConcernLevel, ReadPreference, ReadPreferenceLike, ReadPreferenceMode, ServiceProvider, AutoEncryptionOptions as SPAutoEncryption, ServerApi, ServerApiVersion, WriteConcern, AnyClientBulkWriteModel, ClientBulkWriteOptions } from '@mongosh/service-provider-core'; import type { ConnectionInfo } from '@mongosh/arg-parser'; import type { DatabaseWithSchema } from './database'; import type ShellInstanceState from './shell-instance-state'; import { ClientBulkWriteResult } from './result'; import { CommandResult } from './result'; import { asPrintable } from './enums'; import Session from './session'; import type { GenericServerSideSchema, StringKey } from './helpers'; import ChangeStreamCursor from './change-stream-cursor'; import type { ClientSideFieldLevelEncryptionOptions } from './field-level-encryption'; import { KeyVault, ClientEncryption } from './field-level-encryption'; import type { CollectionWithSchema } from './collection'; import type { BSON, ShellBson } from '@mongosh/shell-bson'; import type { MQLPipeline } from './mql-types'; export default class Mongo extends ShellApiClass { private __serviceProvider; readonly _databases: Record, DatabaseWithSchema>; private _connectionId; _instanceState: ShellInstanceState; _connectionInfo: ConnectionInfo; private _explicitEncryptionOnly; private _keyVault; private _clientEncryption; private _readPreferenceWasExplicitlyRequested; private _cachedDatabaseNames; constructor(instanceState: ShellInstanceState, uri?: string | Mongo, fleOptions?: ClientSideFieldLevelEncryptionOptions, otherOptions?: { api?: ServerApi | ServerApiVersion; }, sp?: ServiceProvider); get _uri(): string; get _fleOptions(): SPAutoEncryption | undefined; get _serviceProvider(): ServiceProvider; set _serviceProvider(sp: ServiceProvider); _displayBatchSize(): Promise; [asPrintable](): string; private _emitMongoApiCall; connect(username?: string, password?: string): Promise; _getDb>(name: K): DatabaseWithSchema; getDB>(db: K): DatabaseWithSchema; getCollection, KC extends StringKey>(name: `${KD}.${KC}`): CollectionWithSchema; _getConnectionId(): string; getURI(): string; use(db: StringKey): string; _listDatabases(opts?: ListDatabasesOptions): Promise<{ databases: { name: string; sizeOnDisk: number | BSON['Long']['prototype']; empty: boolean; }[]; ok: 1; }>; _getDatabaseNamesForCompletion(): Promise; getDBs(options?: ListDatabasesOptions): Promise<{ databases: { name: string; sizeOnDisk: number | BSON['Long']['prototype']; empty: boolean; }[]; ok: 1; }>; bulkWrite(models: AnyClientBulkWriteModel[], options?: ClientBulkWriteOptions): Promise; getDBNames(options?: ListDatabasesOptions): Promise[]>; show(cmd: string, arg?: string, tracked?: boolean): Promise; close(): Promise; _suspend(): Promise<() => Promise>; getReadPrefMode(): ReadPreferenceMode; getReadPrefTagSet(): Record[] | undefined; getReadPref(): ReadPreference; _getExplicitlyRequestedReadPref(): { readPreference: ReadPreference; } | undefined; getReadConcern(): string | undefined; getWriteConcern(): WriteConcern | undefined; setReadPref(mode: ReadPreferenceLike, tagSet?: Record[], hedgeOptions?: Document): Promise; setReadConcern(level: ReadConcernLevel): Promise; setWriteConcern(concern: WriteConcern): Promise; setWriteConcern(wValue: string | number, wtimeoutMSValue?: number | undefined, jValue?: boolean | undefined): Promise; startSession(options?: Document): Session; setCausalConsistency(): void; isCausalConsistency(): void; setSlaveOk(): void; setSecondaryOk(): Promise; watch(pipeline?: MQLPipeline | ChangeStreamOptions, options?: ChangeStreamOptions): Promise; getClientEncryption(): ClientEncryption; getKeyVault(): Promise; convertShardKeyToHashed(value: any): Promise; }