UNPKG

resig.js

Version:

Universal reactive signal library with complete platform features: signals, animations, CRDTs, scheduling, DOM integration. Works identically across React, SolidJS, Svelte, Vue, and Qwik.

49 lines (48 loc) 1.85 kB
import { MutableSignal as Signal } from '../core/signal'; import { Effect } from '../core/effect'; /** * React Hooks for Signal-Σ - NO dependency arrays needed! * All hooks use useSyncExternalStore for automatic re-renders */ export declare function useSignal<T>(initialValue: T): [T, (value: T) => void]; export declare function useComputed<T>(compute: () => T): T; export declare function useEffect<T>(initialValue: T): [T, (value: T) => void, Effect<T>]; export declare function useMachine<S, A>(initialState: S, reducer: (state: S, action: A) => S): [S, (action: A) => void]; export declare function useFetch<T>(fetcher: () => Promise<T>): [ { data?: T; loading: boolean; error?: Error; }, () => void, (n: number) => void ]; export declare function useDerived<T>(derive: () => T): T; export declare function useValidatedSignal<T>(initialValue: T, validator: (value: T) => boolean, onError?: (value: T) => void): [T, (value: T) => void, boolean]; export declare function useDebouncedSignal<T>(initialValue: T, delay: number): [T, (value: T) => void, T]; export declare function usePersistentSignal<T>(key: string, initialValue: T): [T, (value: T) => void]; export declare function useAsyncSignal<T>(asyncFn: () => Promise<T>, initialValue?: T): [ { data?: T; loading: boolean; error?: Error; }, () => void, (value: T) => void ]; export declare function useAsyncComputed<T>(asyncCompute: () => Promise<T>, deps?: unknown[]): { data?: T; loading: boolean; error?: Error; }; export declare function useAsyncComputedSignal<T>(asyncCompute: () => Promise<T>, deps?: unknown[]): Signal<{ data?: T; loading: boolean; error?: Error; }> & { _set: (value: { data?: T; loading: boolean; error?: Error; }) => void; };