type Success<T> = {
    data: T;
    error: null;
};
type Failure<E> = {
    data: null;
    error: E;
};
type Result<T, E = Error> = Success<T> | Failure<E>;
export declare function goCatch<T, E = Error>(promiseOrFn: Promise<T> | (() => Promise<T>)): Promise<Result<T, E>>;
export {};
