import { Result } from "./Result"; export declare class AsyncResult implements PromiseLike> { readonly promise: Promise>; static of(result: Result): AsyncResult; static of(result: Promise>): AsyncResult; static of(result: Promise>, catchFun: (error: unknown) => F): AsyncResult; static make(neverThrowExecutor: (success: (value: V) => void, failure: (error: E) => void) => void): AsyncResult; static success(v: V): AsyncResult; static failure(e: E): AsyncResult; static try(tryFun: () => V | Promise): AsyncResult; static try(tryFun: () => V | Promise, catchFun: (e: unknown) => E): AsyncResult; private constructor(); then, TResult2 = never>(onfulfilled?: ((value: Result) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: unknown) => TResult2 | PromiseLike) | undefined | null): Promise; match(onSuccess: (value: V) => X, onFailure: (error: E) => Y): Promise; value(): Promise; error(): Promise; orNull(): Promise; orUndefined(): Promise; orReject(f?: (e: E) => F): Promise; orDefault(value: V): Promise; orRecover(neverThrowFun: (e: E) => V): Promise; onSuccess(neverThrowFun: (value: V) => void): AsyncResult; onFailure(neverThrowFun: (e: E) => void): AsyncResult; and(other: AsyncResult): AsyncResult; or(other: AsyncResult): AsyncResult; map(neverThrowFun: (v: V) => U): AsyncResult; tryMap(tryFun: (v: V) => U): AsyncResult; tryMap(tryFun: (v: V) => U, catchFun: (error: unknown) => F): AsyncResult; flatMap(neverThrowFun: (v: V) => AsyncResult): AsyncResult; tryFlatMap(tryFun: (v: V) => AsyncResult): AsyncResult; tryFlatMap(tryFun: (v: V) => AsyncResult, catchFun: (error: unknown) => G): AsyncResult; recover(neverThrowFun: (e: E) => V): AsyncResult; tryRecover(tryFun: (error: E) => V): AsyncResult; tryRecover(tryFun: (error: E) => V, catchFun: (error: unknown) => F): AsyncResult; flatRecover(neverThrowFun: (e: E) => AsyncResult): AsyncResult; tryFlatRecover(tryFun: (error: E) => AsyncResult): AsyncResult; tryFlatRecover(tryFun: (error: E) => AsyncResult, catchFun: (error: unknown) => G): AsyncResult; mapError(neverThrowFun: (error: E) => F): AsyncResult; tryMapError(tryFun: (error: E) => F): AsyncResult; tryMapError(tryFun: (error: E) => F, catchFun: (error: unknown) => G): AsyncResult; }