import type { Predicate, Refinement } from "../Function/index.js";
import type { Effect } from "./effect.js";
/**
* Dies with specified `unknown` if the predicate fails.
*
* @ets_data_first filterOrDie_
*/
export declare function filterOrDie(p: Refinement, dieWith: (a: Exclude) => unknown, __trace?: string): (fa: Effect) => Effect;
export declare function filterOrDie(p: Predicate, dieWith: (a: A) => unknown, __trace?: string): (fa: Effect) => Effect;
/**
* Dies with specified `unknown` if the predicate fails.
*/
export declare function filterOrDie_(fa: Effect, p: Refinement, dieWith: (a: Exclude) => unknown, __trace?: string): Effect;
export declare function filterOrDie_(fa: Effect, p: Predicate, dieWith: (a: A) => unknown, __trace?: string): Effect;
/**
* Fails with `failWith` if the predicate fails.
*
* @ets_data_first filterOrFail_
*/
export declare function filterOrFail(p: Refinement, failWith: (a: Exclude) => E1, __trace?: string): (fa: Effect) => Effect;
export declare function filterOrFail(p: Predicate, failWith: (a: A) => E1, __trace?: string): (fa: Effect) => Effect;
/**
* Fails with `failWith` if the predicate fails.
*/
export declare function filterOrFail_(fa: Effect, p: Refinement, failWith: (a: Exclude) => E1, __trace?: string): Effect;
export declare function filterOrFail_(fa: Effect, p: Predicate, failWith: (a: A) => E1, __trace?: string): Effect;
/**
* Applies `or` if the predicate fails.
*
* @ets_data_first filterOrElse_
*/
export declare function filterOrElse(p: Refinement, or: (a: Exclude) => Effect, __trace?: string): (fa: Effect) => Effect;
export declare function filterOrElse(p: Predicate, or: (a: A) => Effect, __trace?: string): (fa: Effect) => Effect;
/**
* Applies `or` if the predicate fails.
*/
export declare function filterOrElse_(fa: Effect, p: Refinement, or: (a: Exclude) => Effect, __trace?: string): Effect;
export declare function filterOrElse_(fa: Effect, p: Predicate, or: (a: A) => Effect, __trace?: string): Effect;
/**
* Dies with a `Error` having the specified text message
* if the predicate fails.
*
* @ets_data_first filterOrDieMessage_
*/
export declare function filterOrDieMessage(p: Refinement, message: (a: Exclude) => string, __trace?: string): (fa: Effect) => Effect;
export declare function filterOrDieMessage(p: Predicate, message: (a: A) => string, __trace?: string): (fa: Effect) => Effect;
/**
* Dies with a `Error` having the specified text message
* if the predicate fails.
*/
export declare function filterOrDieMessage_(fa: Effect, p: Refinement, message: (a: Exclude) => string, __trace?: string): Effect;
export declare function filterOrDieMessage_(fa: Effect, p: Predicate, message: (a: A) => string, __trace?: string): Effect;
//# sourceMappingURL=filterOr.d.ts.map