/** * @license * Copyright 2022-2026 Matter.js Authors * SPDX-License-Identifier: Apache-2.0 */ import { LogLevel } from "#log/LogLevel.js"; import type { Transaction } from "./Transaction.js"; /** * The lifecycle of a transaction adheres to the following discrete stages. */ export declare enum Status { /** * Transaction may be used only for read operations. */ ReadOnly = "read only", /** * Transaction is registered but there are no ACID guarantees. */ Shared = "shared", /** * Transaction is waiting to obtain exclusive access to resources. */ Waiting = "waiting", /** * Transaction has exclusive access. Reads will maintain consistency * and writes are allowed. */ Exclusive = "exclusive", /** * Transaction is in the process of committing, phase one. */ CommittingPhaseOne = "committing phase one", /** * Transaction is in the process of committing, phase two. */ CommittingPhaseTwo = "committing phase two", /** * Transaction is in the process of rolling back. */ RollingBack = "rolling back", /** * Transaction is destroyed, no further operations permitted. */ Destroyed = "destroyed" } export declare namespace Status { function assert(transaction: Transaction, acceptable: Status[], target: Status): void; function formatStatus(status: Status): string; /** * If an asynchronous transaction holds an exclusive (write) lock for an extended period it will write details of * the lock to the log. Set this value to configure the length of the reporting window. * * A value of 0 forces lock reports for all async transactions; a negative value disables reporting. */ let slowTransactionTime: import("../index.js").Duration; /** * The log level for slow transaction reporting. */ let slowLogLevel: LogLevel; } //# sourceMappingURL=Status.d.ts.map