import { ShellApiWithMongoClass } from './decorators'; import type { ClientSessionOptions, ClientSession, TransactionOptions, ClusterTime, TimestampType, ServerSessionId } from '@mongosh/service-provider-core'; import { asPrintable } from './enums'; import type Mongo from './mongo'; import type { DatabaseWithSchema } from './database'; import type { GenericServerSideSchema, StringKey } from './helpers'; export default class Session extends ShellApiWithMongoClass { id: ServerSessionId | undefined; _session: ClientSession; _options: ClientSessionOptions; _mongo: Mongo; private _databases; constructor(mongo: Mongo, options: ClientSessionOptions, session: ClientSession); [asPrintable](): ServerSessionId | undefined; getDatabase>(name: K): DatabaseWithSchema; advanceOperationTime(ts: TimestampType): void; advanceClusterTime(clusterTime: ClusterTime): void; endSession(): Promise; hasEnded(): boolean | undefined; getClusterTime(): ClusterTime | undefined; getOperationTime(): TimestampType | undefined; getOptions(): ClientSessionOptions; startTransaction(options?: TransactionOptions): void; commitTransaction(): Promise; abortTransaction(): Promise; withTransaction any>(fn: T, options?: TransactionOptions): Promise>; }