import { TSet } from "@effect/core/stm/TSet/definition";
import { Maybe } from "@tsplus/stdlib/data/Maybe/definition";
import { USTM } from "@effect/core/stm/STM/definition/base";
/**
 * Takes the first matching value, or retries until there is one.
 * @tsplus fluent ets/TSet takeFirst
 * @tsplus location "@effect/core/stm/TSet/operations/takeFirst"
 */
export declare function takeFirst_<A, B>(self: TSet<A>, pf: (a: A) => Maybe<B>): USTM<B>;
/**
 * Takes the first matching value, or retries until there is one.
 * @tsplus static ets/TSet/Aspects takeFirst
 * @tsplus pipeable ets/TSet takeFirst
 * @tsplus location "@effect/core/stm/TSet/operations/takeFirst"
 */
export declare const takeFirst: <A, B>(pf: (a: A) => import("@tsplus/stdlib/data/Maybe").Maybe<B>) => (self: import("../definition").TSet<A>) => import("../../STM").USTM<B>;
//# sourceMappingURL=takeFirst.d.ts.map