import type { ClientConnectionHolder } from "./baseClient"; import type { BaseRawConnection } from "./baseConn"; import { type Executor, type QueryArgs, type SQLQueryArgs } from "./ifaces"; import type { Options } from "./options"; export declare enum TransactionState { ACTIVE = 0, COMMITTED = 1, ROLLEDBACK = 2, FAILED = 3 } export declare class TransactionImpl { protected _holder: ClientConnectionHolder; private _rawConn; private _state; private _opInProgress; private constructor(); _runOp(opname: string, op: () => Promise, errMessage?: string): Promise; _runFetchOp(opName: string, ...args: Parameters): Promise; } export declare class Transaction implements Executor { private impl; private options; constructor(impl: TransactionImpl, options: Options); withSQLRowMode(mode: "array" | "object"): Transaction; execute(query: string, args?: QueryArgs): Promise; executeSQL(query: string, args?: SQLQueryArgs): Promise; query(query: string, args?: QueryArgs): Promise; querySQL(query: string, args?: SQLQueryArgs): Promise; queryJSON(query: string, args?: QueryArgs): Promise; querySingle(query: string, args?: QueryArgs): Promise; querySingleJSON(query: string, args?: QueryArgs): Promise; queryRequired(query: string, args?: QueryArgs): Promise<[T, ...T[]]>; queryRequiredJSON(query: string, args?: QueryArgs): Promise; queryRequiredSingle(query: string, args?: QueryArgs): Promise; queryRequiredSingleJSON(query: string, args?: QueryArgs): Promise; }