import { Resume } from '@typed/env'; import { Maybe } from '@typed/maybe'; import { Capabilities, Effects } from '../Effect'; export declare type FailEnv = { readonly [Key in K]: Fail; }; export declare type Fail = (error: Err) => Resume>; export declare const Fail: Fail; export declare type FailureTypes> = keyof FailuresOf; export declare type FailuresOf> = Pick, FailureKeys>>; export declare type ErrorOf, K extends FailureTypes> = FailuresOf[K] extends Fail ? R : never; declare type FailureKeys = { [K in keyof A]: A[K] extends Fail ? K : never; }[keyof A]; export declare class Failure { readonly error: Err; readonly value: Maybe; static of: (error: Err_1, value?: Maybe) => Failure; constructor(error: Err, value: Maybe); readonly unpack: (left: (err: Err) => B, right: (value: A) => B) => B; } export {}; //# sourceMappingURL=Failure.d.ts.map