import { TMap } from "@effect/core/stm/TMap/definition";
import { Maybe } from "@tsplus/stdlib/data/Maybe/definition";
import { USTM } from "@effect/core/stm/STM/definition/base";
/**
 * Updates the mapping for the specified key with the specified function,
 * which takes the current value of the key as an input, if it exists, and
 * either returns `Some` with a new value to indicate to update the value in
 * the map or `None` to remove the value from the map. Returns `Some` with the
 * updated value or `None` if the value was removed from the map.
 * @tsplus fluent ets/TMap updateWith
 * @tsplus location "@effect/core/stm/TMap/operations/updateWith"
 */
export declare function updateWith_<K, V, R, E>(self: TMap<K, V>, k: K, f: (v: Maybe<V>) => Maybe<V>): USTM<Maybe<V>>;
/**
 * Updates the mapping for the specified key with the specified function,
 * which takes the current value of the key as an input, if it exists, and
 * either returns `Some` with a new value to indicate to update the value in
 * the map or `None` to remove the value from the map. Returns `Some` with the
 * updated value or `None` if the value was removed from the map.
 * @tsplus static ets/TMap/Aspects updateWith
 * @tsplus pipeable ets/TMap updateWith
 * @tsplus location "@effect/core/stm/TMap/operations/updateWith"
 */
export declare const updateWith: <K, V>(k: K, f: (v: import("@tsplus/stdlib/data/Maybe").Maybe<V>) => import("@tsplus/stdlib/data/Maybe").Maybe<V>) => <R, E>(self: import("../definition").TMap<K, V>) => import("../../STM").USTM<import("@tsplus/stdlib/data/Maybe").Maybe<V>>;
//# sourceMappingURL=updateWith.d.ts.map