import Stack from 'ts-data.stack'; import { TransactionContextHolder } from './TransactonContextHolder'; import { CursorSpecification } from '../cursor/CursorSpecification'; import { QuerySpecification } from '../query/QuerySpecification'; import { Cursor } from '../cursor/Cursor'; import { Connection } from '../connection/Connection'; import { TransactionOptions } from './Transactional'; export declare class Transaction { readonly contextHolder: TransactionContextHolder; readonly id: string; readonly callStack: Stack; readonly connectionRegistry: Map; readonly cursors: Cursor[]; private readonly logger; private readonly connectionMutex; private _options; constructor(options: TransactionOptions, contextHolder: TransactionContextHolder); get description(): string; get databases(): string[]; get connections(): Connection[]; query(spec: QuerySpecification, database: string): Promise; openCursor(spec: CursorSpecification, database: string): Promise>; pushContext(context: string | symbol): Promise; popContext(isRoot: boolean): Promise; popContextWithError(e: Error, isRoot: boolean): Promise; markAsRollback(): void; get options(): TransactionOptions; set options(options: TransactionOptions); private connectionFor; private releaseClient; }