import { TReentrantLock } from "@effect/core/stm/TReentrantLock/definition";
import { Effect } from "@effect/core/io/Effect/definition";
/**
 * Runs the specified workflow with a lock.
 * @tsplus fluent ets/TReentrantLock withLock
 * @tsplus location "@effect/core/stm/TReentrantLock/operations/TReentrantLock/withLock"
 */
export declare function withLock_<R, E, A>(self: TReentrantLock, effect: Effect<R, E, A>, __tsplusTrace?: string): Effect<R, E, A>;
/**
 * Runs the specified workflow with a write lock.
 * @tsplus static ets/TReentrantLock/Aspects withLock
 * @tsplus pipeable ets/TReentrantLock withLock
 * @tsplus location "@effect/core/stm/TReentrantLock/operations/TReentrantLock/withLock"
 */
export declare const withLock: <R, E, A>(effect: import("../../../../io/Effect").Effect<R, E, A>, __tsplusTrace?: string) => (self: TReentrantLock) => import("../../../../io/Effect").Effect<R, E, A>;
//# sourceMappingURL=withLock.d.ts.map