@donverduyn/react-runtime
Version:
effect-ts react integration
20 lines (19 loc) • 1.65 kB
TypeScript
import { ManagedRuntime } from 'effect';
import type { RuntimeContext, RuntimeInstance, RuntimeKey, ScopeId } from '@/types';
import type { PropService } from 'utils/effect';
export declare const useRuntimeApi: (scopeId: ScopeId) => {
create: <R>(module: RuntimeContext<R, never, PropService>, instances: Map<RuntimeKey, RuntimeInstance<any>>) => {
instance: ManagedRuntime.ManagedRuntime<any, never>;
use: <A, E>(effect: import("effect/Effect").Effect<A, E, R> | import("effect/Stream").Stream<A, E, R>, deps?: React.DependencyList) => NonNullable<import("utils/effect").InferSuccess<A>>;
useFn: <Fn extends (...args: any[]) => import("effect/Effect").Effect<any, any, any>>(target: Fn) => (...args: Fn extends (...args: infer A) => any ? A : never) => (Fn extends (...args: any[]) => infer R_1 ? R_1 : never) extends import("effect/Effect").Effect<infer A_1, any, any> ? import("effect/Effect").Effect<A_1> : never;
usePush: <Fn extends (...args: any[]) => import("effect/Effect").Effect<any, any, any>>(target: Fn) => (...args: Fn extends (...args: infer A) => any ? A : never) => Promise<(Fn extends (...args: any[]) => infer R_1 ? R_1 : never) extends import("effect/Effect").Effect<infer A_1, any, any> ? A_1 : never>;
useRun: <A, E_1>(effect: import("effect/Effect").Effect<A, E_1, import("effect/Scope").Scope | R>, deps?: React.DependencyList) => void;
};
createInert: <R>(stubValue: unknown) => {
instance: ManagedRuntime.ManagedRuntime<R, never>;
use: () => never;
useFn: () => () => never;
usePush: () => () => never;
useRun: () => never;
};
};