import { DatabaseResult } from "../definitions/database-definition"; import { SqlCompilable } from "../crud/sql-compilable"; import { SqlExecutable } from "../crud/sql-executable"; import { SingleTransactionManager } from "./single-transaction-manager"; import { Observable } from "rxjs"; /** * Manages better and homogeneous transaction between providers */ export declare class ManagedTransaction { private _database; private _singleTransactionManager; private _idTransaction; private _status; private _stack; /** * return transaction id */ get id(): string; /** * Set transaction status */ private set status(value); constructor(_database: { sqlBatch(sqlStatements: Array<(string | string[] | any)>): Promise; executeSql(statement: string, params: any): Promise; }, _singleTransactionManager: SingleTransactionManager); /** * Add command statement in transaction * @param statement command to apply * @param params command params */ addStatement(statement: string, params: any[]): void; /** * Add command compilable in transaction * @param compilable command compilable for add in transaction */ add(compilable: SqlCompilable & { __allowInTransaction: boolean; }): void; /** * @deprecated Será removido, pois não tem utilidade real e não funciona de forma homegenea entre providers * @param executable */ executeImmediate(executable: SqlExecutable): Promise; /** * Commit a transaction */ commit(): Observable; /** * Rollback in current transaction */ rollback(): Promise; private sqlBatch; private executeSql; /** * Commit a transaction */ private commitExecuteObservable; /** * Commit a transaction */ private commitExecute; /** * Execute stack in Database */ private executeStack; private checkParametersAllowedInTransaction; /** * check transaction is active (open, stated, released) and throw error if inactive */ private checkTransactionActive; /** * return true if transaction is active (open, stated, released) */ private isTransactionActive; /** * Finish transaction and set status * @param status Status for finished transaction */ private finishTransaction; /** * Clear stack transaction */ private clearStackTransaction; /** * Convert Array commands for SqlBatch format * @param compiled Array commands */ private buildSqlBatch; /** * Convert Array commands for SqlExecute format * @param compiled Array commands */ private buildSqlExecute; /** * Begin transaction */ private beginTransaction; /** * Command commit transaction */ private commandCommitTransaction; /** * Command roolback transaction */ private commandRollbackTransaction; }