/// import { AsyncLocalStorage } from "async_hooks"; import { ClientSession, ClientSessionOptions, Collection, Db } from "mongodb"; import { Connection } from "./connection"; export type DatabaseSessionTransaction = { session: ClientSession; database: Database; }; export declare class Database { /** * MongoDB Internal Database instance */ database: Db; /** * Current Connection */ connection: Connection; sessionsContainer: AsyncLocalStorage; /** * Set connection instance */ setConnection(connection: Connection): this; /** * Set database instance */ setDatabase(database: Db): this; /** * Get database collection instance */ collection(collection: string): Collection; /** * List collection names */ listCollectionNames(): Promise; /** * Drop database */ drop(): Promise; /** * Start a new session */ startSession(callback: (transaction: DatabaseSessionTransaction) => Promise, sessionOptions?: ClientSessionOptions): any; /** * Create a new transaction session and wrap it with a context */ startSessionContext(callback: (transaction: DatabaseSessionTransaction) => Promise, sessionOptions?: ClientSessionOptions): Promise; /** * Get active session */ getActiveSession(): DatabaseSessionTransaction; } export declare const database: Database; //# sourceMappingURL=database.d.ts.map