import { TMap } from "@effect/core/stm/TMap/definition";
import { Tuple } from "@tsplus/stdlib/data/Tuple/definition";
import { STM } from "@effect/core/stm/STM/definition/base";
import { Maybe } from "@tsplus/stdlib/data/Maybe/definition";
import { Chunk } from "@tsplus/stdlib/collections/Chunk/definition";
/**
 * Takes all matching values, or retries until there is at least one.
 * @tsplus fluent ets/TMap takeSomeSTM
 * @tsplus location "@effect/core/stm/TMap/operations/takeSomeSTM"
 */
export declare function takeSomeSTM_<K, V, R, E, A>(self: TMap<K, V>, pf: (kv: Tuple<[K, V]>) => STM<R, Maybe<E>, A>): STM<R, E, Chunk<A>>;
/**
 * Takes all matching values, or retries until there is at least one.
 * @tsplus static ets/TMap/Aspects takeSomeSTM
 * @tsplus pipeable ets/TMap takeSomeSTM
 * @tsplus location "@effect/core/stm/TMap/operations/takeSomeSTM"
 */
export declare const takeSomeSTM: <K, V, R, E, A>(pf: (kv: import("@tsplus/stdlib/data/Tuple").Tuple<[K, V]>) => import("../../STM").STM<R, import("@tsplus/stdlib/data/Maybe").Maybe<E>, A>) => (self: import("../definition").TMap<K, V>) => import("../../STM").STM<R, E, import("@tsplus/stdlib/collections/Chunk").Chunk<A>>;
//# sourceMappingURL=takeSomeSTM.d.ts.map