import { TMap } from "@effect/core/stm/TMap/definition";
import { Tuple } from "@tsplus/stdlib/data/Tuple/definition";
import { USTM } from "@effect/core/stm/STM/definition/base";
import { Chunk } from "@tsplus/stdlib/collections/Chunk/definition";
/**
 * Retains bindings matching predicate and returns removed bindings.
 * @tsplus fluent ets/TMap retainIf
 * @tsplus location "@effect/core/stm/TMap/operations/retainIf"
 */
export declare function retainIf_<K, V>(self: TMap<K, V>, f: (kv: Tuple<[K, V]>) => boolean): USTM<Chunk<Tuple<[K, V]>>>;
/**
 * Retains bindings matching predicate and returns removed bindings.
 * @tsplus static ets/TMap/Aspects retainIf
 * @tsplus pipeable ets/TMap retainIf
 * @tsplus location "@effect/core/stm/TMap/operations/retainIf"
 */
export declare const retainIf: <K, V>(f: (kv: import("@tsplus/stdlib/data/Tuple").Tuple<[K, V]>) => boolean) => (self: import("../definition").TMap<K, V>) => import("../../STM").USTM<import("@tsplus/stdlib/collections/Chunk").Chunk<import("@tsplus/stdlib/data/Tuple").Tuple<[K, V]>>>;
//# sourceMappingURL=retainIf.d.ts.map