export type Success = { isSuccess: true; isFailure: false; value: T; }; export type Failure = { isSuccess: false; isFailure: true; error: E; }; export type Result = Success | Failure; export declare const ok: (value: T) => Result; export declare const fail: (error: E) => Result; export declare const catchResult: ( f: () => T, exceptionMapper: (err: Error) => E ) => Result; export declare const bind: ( binder: (value: TIn) => Result ) => (result: Result) => Result; export declare const map: ( mapper: (value: TIn) => TOut ) => (result: Result) => Result; export declare const tap: ( action: (value: T) => void ) => (result: Result) => Result; export declare const tapError: ( action: (error: E) => void ) => (result: Result) => Result; export declare const mapError: ( mapper: (error: EIn) => EOut ) => (result: Result) => Result; export declare const match: ( onSuccess: (value: T) => TResult, onFailure: (error: E) => TResult ) => (result: Result) => TResult; export declare const switch_: ( onSuccess: (value: T) => void, onFailure: (error: E) => void ) => (result: Result) => void; export declare const pipe: ( result: Result, ...fns: Array<(arg: Result) => Result> ) => Result;