import { TRef } from "@effect/core/stm/TRef/definition";
import { Maybe } from "@tsplus/stdlib/data/Maybe/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 modifySome
 * @tsplus location "@effect/core/stm/TRef/operations/modifySome"
 */
export declare function modifySome_<A, B>(self: TRef<A>, def: B, pf: (a: A) => Maybe<Tuple<[B, A]>>): USTM<B>;
/**
 * Updates the value of the variable, returning a function of the specified
 * value.
 * @tsplus static ets/TRef/Aspects modifySome
 * @tsplus pipeable ets/TRef modifySome
 * @tsplus location "@effect/core/stm/TRef/operations/modifySome"
 */
export declare const modifySome: <A, B>(def: B, pf: (a: A) => import("@tsplus/stdlib/data/Maybe").Maybe<import("@tsplus/stdlib/data/Tuple").Tuple<[B, A]>>) => (self: import("../definition").TRef<A>) => import("../../STM").USTM<B>;
//# sourceMappingURL=modifySome.d.ts.map