import { STM } from "@effect/core/stm/STM/definition/base";
/**
 * Recovers from specified error.
 * @tsplus fluent ets/STM catch
 * @tsplus location "@effect/core/stm/STM/operations/catch"
 */
export declare function catch_<N extends keyof E, K extends E[N] & string, E, R, A, R1, E1, A1>(self: STM<R, E, A>, tag: N, k: K, f: (e: Extract<E, {
    [n in N]: K;
}>) => STM<R1, E1, A1>): STM<R | R1, Exclude<E, {
    [n in N]: K;
}> | E1, A | A1>;
/**
 * Recovers from specified error.
 * @tsplus static ets/STM/Aspects catch
 * @tsplus location "@effect/core/stm/STM/operations/catch"
 */
export declare function _catch<N extends keyof E, K extends E[N] & string, E, R1, E1, A1>(tag: N, k: K, f: (e: Extract<E, {
    [n in N]: K;
}>) => STM<R1, E1, A1>): <R, A>(self: import("../definition").STM<R, E, A>) => import("../definition").STM<R1 | R, E1 | Exclude<E, { [n in N]: K; }>, A1 | A>;
export { _catch as catch };
//# sourceMappingURL=catch.d.ts.map