import type { AsyncResult, MaybeAsyncResult, Result } from './types'; export declare const thenMap: (fn: (data: T) => S) => (asyncRes: AsyncResult) => AsyncResult; export declare const thenMapErr: (fn: (error: E) => F) => (asyncRes: AsyncResult) => AsyncResult; export declare const thenChain: (next: (data: T) => MaybeAsyncResult) => (asyncRes: AsyncResult) => AsyncResult; export declare const thenChainErr: (next: (error: E) => MaybeAsyncResult) => (asyncRes: AsyncResult) => AsyncResult; export declare const thenMatch: (okMatcher: (data: T) => TR, errMatcher: (error: E) => ER) => (asyncRes: AsyncResult) => Promise; export declare const thenUnwrap: (asyncRes: AsyncResult) => Promise; export declare const thenUnwrapOr: (fallback: S) => (asyncRes: AsyncResult) => Promise; export declare const thenUnwrapOrElse: (fallback: (error: E) => S) => (asyncRes: AsyncResult) => Promise; export declare const thenUnwrapOrReject: (asyncRes: AsyncResult) => Promise; export declare const thenUnwrapErr: (asyncRes: AsyncResult) => Promise; export declare const thenUnwrapErrOr: (fallback: F) => (asyncRes: AsyncResult) => Promise; export declare const thenUnwrapErrOrElse: (fallback: (data: T) => F) => (asyncRes: AsyncResult) => Promise; export declare const thenTap: (fn: (data: T) => void) => (asyncRes: AsyncResult) => AsyncResult; export declare const thenTapAndWait: (fn: (data: T) => Promise) => (asyncRes: AsyncResult) => AsyncResult; export declare const thenTapErr: (fn: (error: E) => void) => (asyncRes: AsyncResult) => AsyncResult; export declare const thenTapErrAndWait: (fn: (error: E) => Promise) => (asyncRes: AsyncResult) => AsyncResult; export declare const flip: (result: Result, E | Promise>) => AsyncResult; export declare const from: (result: Result) => AsyncResult; export declare const thenUnpack: (asyncRes: AsyncResult) => Promise; export type ResolveAwaitedOks

= { [K in keyof P]: P[K] extends Awaited> ? T : P[K]; };