import { Either } from 'fp-ts/Either'; import { Env } from './Env'; import { Resume } from './Resume'; /** * @since 0.9.2 * @category Model */ export declare type Fail = { readonly [_ in Key]: (e: E) => Resume; }; /** * @since 0.9.2 * @category Constructor */ export declare const throwError: (key: Key) => (err: E) => Env, never>; /** * @since 0.9.2 * @category Combinator */ export declare const catchErrorW: (key: Key) => (onError: (err: E) => Env) => (env: Env, B> | Env, B>) => Env; /** * @since 0.9.2 * @category Combinator */ export declare const catchError: (key: Key) => (onError: (err: E) => Env) => { (env: Env, A> | Env, A>): Env; (env: Env, A>): Env; }; /** * @since 0.9.2 * @category Combinator */ export declare const attempt: (key: Key) => (env: Env, B> | Env, B>) => Env>; /** * Creates a Provider for an Error which will throw an Exception. * Reserve this only for *critical* application errors * @since 0.13.4 * @category Environment */ export declare const criticalExpection: (key: K) => (f: (error: E) => string) => Fail; /** * @since 0.9.2 * @category Model */ export interface Failure { readonly throw: (err: E) => Env, never>; readonly catchW: (onError: (err: E) => Env) => (env: Env, B> | Env, B>) => Env; readonly catch: (onError: (err: E) => Env) => { (env: Env, A> | Env, A>): Env; (env: Env, A>): Env; }; readonly attempt: (env: Env, B> | Env, B>) => Env>; readonly criticalExpection: (f: (error: E) => string) => Fail; } /** * @since 0.9.2 * @category Constructor */ export declare const named: () => (name: K) => Failure; /** * @since 0.13.4 * @category Type-level */ export declare type ErrorOf = [A] extends [Failure] ? E : [A] extends [Fail] ? E : never; /** * @since 0.13.4 * @category Type-level */ export declare type KeyOf = [A] extends [Failure] ? K : [A] extends [Fail] ? K : never; /** * @since 0.13.4 * @category Type-level */ export declare type EnvOf = [A] extends [Failure] ? Fail : [A] extends [Fail] ? Fail : never; //# sourceMappingURL=Fail.d.ts.map