import type { AnyAsyncFunction, AnyFunction } from './types.js' import { Effect } from 'effect' export type WrapInEffect = < TViemFunction extends AnyFunction, TErrorType extends Error, >( viemFunction: TViemFunction, ) => WrappedInEffect export type WrappedInEffect< TViemFunction extends AnyFunction, TErrorType extends Error, > = >( ...args: TParams ) => Effect.Effect< never, TErrorType, TViemFunction extends AnyAsyncFunction ? Awaited> : ReturnType > export const wrapInEffect: WrapInEffect