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.
83 lines (82 loc) • 3.89 kB
TypeScript
/**
* Signal-Σ Universal Plugin Adapter for Svelte 5
* Provides the EXACT same API as React, SolidJS, Vue, Qwik
*
* This file uses Svelte stores for proven reactivity
*/
declare global {
function $state<T>(initial: T): T;
function $derived<T>(fn: () => T): T;
function $effect(fn: () => void | (() => void)): void;
}
/**
* Universal useSignal - adapted for Svelte 5 reactivity
* @param {any} initialValue - Initial value for the signal
* @param {Function} plugins - Optional composed plugins to apply
* @returns {[any, Function]} - [reactiveValue, setValue] tuple
*/
export declare function useSignal(initialValue: any, plugins?: any): [() => any, (value: any) => void];
/**
* Universal useComputed - same API across all frameworks!
* @param {Function} compute - Computation function
* @param {Function} plugins - Optional composed plugins to apply
* @returns {Function} - getValue function
*/
export declare function useComputed(compute: () => any, _plugins?: any): () => unknown;
/**
* Universal useEffect - same API across all frameworks!
* @param {Function} effect - Effect function that may return cleanup
* @param {Array} deps - Optional dependency array
*/
export declare function useEffect(effect: () => void | (() => void), deps?: any[] | null): void;
/**
* Universal useMachine - same API across all frameworks!
* @param {any} initialState - Initial state
* @param {Function} reducer - State reducer function
* @param {Function} plugins - Optional composed plugins to apply
* @returns {[Function, Function]} - [getState, send]
*/
export declare function useMachine(initialState: any, reducer: (state: any, action: any) => any, plugins?: any): ((action: any) => any)[];
/**
* Universal useFetch - same API across all frameworks!
* @param {Function} fetcher - Async function to fetch data
* @param {Function} plugins - Optional composed plugins to apply
* @returns {[Function, Function, Function]} - [getState, refetch, retry]
*/
export declare function useFetch(fetcher: () => Promise<any>, _plugins?: any): ((times: number) => void)[];
/**
* Universal useAsyncSignal - same API across all frameworks!
* @param {Function} asyncFn - Async function
* @param {any} initialValue - Initial value
* @param {Function} plugins - Optional composed plugins to apply
* @returns {[Function, Function, Function]} - [getState, refetch, setValue]
*/
export declare function useAsyncSignal(asyncFn: () => Promise<any>, initialValue?: any, _plugins?: any): ((value: any) => void)[];
/**
* Universal usePersistentSignal - same API across all frameworks!
* @param {string} key - Storage key
* @param {any} initialValue - Initial value
* @param {Function} plugins - Optional composed plugins to apply
* @returns {[Function, Function]} - [getValue, setValue]
*/
export declare function usePersistentSignal(key: string, initialValue: any, _plugins?: any): [() => any, (value: any) => void];
/**
* Universal useDebouncedSignal - same API across all frameworks!
* @param {any} initialValue - Initial value
* @param {number} delay - Debounce delay in ms
* @param {Function} plugins - Optional composed plugins to apply
* @returns {[Function, Function, Function]} - [getImmediate, setImmediate, getDebounced]
*/
export declare function useDebouncedSignal(initialValue: any, delay: number, _plugins?: any): [() => any, (value: any) => void, () => any];
/**
* Universal useValidatedSignal - same API across all frameworks!
* @param {any} initialValue - Initial value
* @param {Function} validator - Validation function
* @param {Function} plugins - Optional composed plugins to apply
* @returns {[Function, Function, Function]} - [getValue, setValue, getIsValid]
*/
export declare function useValidatedSignal(initialValue: any, validator: (value: any) => boolean, _plugins?: any): [
() => any,
(value: any) => void,
() => boolean
];