import { TArray } from "@effect/core/stm/TArray/definition";
import { Maybe } from "@tsplus/stdlib/data/Maybe/definition";
import { STM } from "@effect/core/stm/STM/definition/base";
/**
 * Finds the result of applying an transactional partial function to the first
 * value in its domain.
 * @tsplus fluent ets/TArray collectFirstSTM
 * @tsplus location "@effect/core/stm/TArray/operations/collectFirstSTM"
 */
export declare function collectFirstSTM_<A, E, B>(self: TArray<A>, pf: (a: A) => Maybe<STM<never, E, B>>): STM<never, E, Maybe<B>>;
/**
 * Finds the result of applying an transactional partial function to the first
 * value in its domain.
 * @tsplus static ets/TArray/Aspects collectFirstSTM
 * @tsplus pipeable ets/TArray collectFirstSTM
 * @tsplus location "@effect/core/stm/TArray/operations/collectFirstSTM"
 */
export declare const collectFirstSTM: <A, E, B>(pf: (a: A) => import("@tsplus/stdlib/data/Maybe").Maybe<import("../../STM").STM<never, E, B>>) => (self: import("../definition").TArray<A>) => import("../../STM").STM<never, E, import("@tsplus/stdlib/data/Maybe").Maybe<B>>;
//# sourceMappingURL=collectFirstSTM.d.ts.map