type Success<T> = {
    success: true;
    data: T;
    error?: never;
};
type Failure<E> = {
    success: false;
    data?: never;
    error: E;
};
type SafeResult<T, E = Error> = Success<T> | Failure<E>;
declare function tryCatch<T, E = Error>(promise: Promise<T>): Promise<SafeResult<T, E>>;

export { tryCatch };
