import { TRef } from "@effect/core/stm/TRef/definition";
import { Tuple } from "@tsplus/stdlib/data/Tuple/definition";
import { USTM } from "@effect/core/stm/STM/definition/base";
/**
 * Updates the value of the variable, returning a function of the specified
 * value.
 * @tsplus fluent ets/TRef modify
 * @tsplus location "@effect/core/stm/TRef/operations/modify"
 */
export declare function modify_<A, B>(self: TRef<A>, f: (a: A) => Tuple<[B, A]>): USTM<B>;
/**
 * Updates the value of the variable, returning a function of the specified
 * value.
 * @tsplus static ets/TRef/Aspects modify
 * @tsplus pipeable ets/TRef modify
 * @tsplus location "@effect/core/stm/TRef/operations/modify"
 */
export declare const modify: <A, B>(f: (a: A) => import("@tsplus/stdlib/data/Tuple").Tuple<[B, A]>) => (self: import("../definition").TRef<A>) => import("../../STM").USTM<B>;
//# sourceMappingURL=modify.d.ts.map