interface BaseResult { map(fn: (data: T) => N): Result; mapErr(fn: (data: E) => N): Result; isOk(): this is ResultOk; isErr(): this is ResultErr; unwrap(): T; } export declare class UnwrapError extends Error { readonly data: E; constructor(data: E); } export type Result = ResultOk | ResultErr; export type ResultPromise = Promise>; export declare class R { static map(transform: (data: T) => Result | Promise>): (result: Result) => Promise>; static map(transform: (data: T) => N | Promise): (result: Result) => Promise>; static mapErr(transform: (data: E) => Result | Promise>): (result: Result) => Promise>; static mapErr(transform: (data: E) => N | Promise): (result: Result) => Promise>; static flatMap(results: Result[]): Result; } export declare class ResultOk implements BaseResult { readonly data: T; constructor(data: T); map(transform: (data: T) => N): Result; mapErr(): Result; isOk(): this is ResultOk; isErr(): this is ResultErr; unwrap(): T; } export declare class ResultErr implements BaseResult { readonly data: E; constructor(data: E); map(): Result; mapErr(fn: (data: E) => N): Result; isOk(): this is ResultOk; isErr(): this is ResultErr; unwrap(): never; } export declare function Ok(data: T): Result; export declare function Err(data: E): Result; export declare function wrapOk(data: T | Result): Result; export declare function wrapErr(data: E | Result): Result; export {};