jelenjs
Version:
Core runtime library for JelenJS - an experimental UI framework with fine-grained reactivity
20 lines (19 loc) • 736 B
TypeScript
/**
* Signal implementation for reactive state management
*/
export type Setter<T> = (value: T | ((prev: T) => T)) => T;
export type Getter<T> = () => T;
export type Signal<T> = [get: Getter<T>, set: Setter<T>];
export type ReadonlySignal<T> = Getter<T>;
/**
* Check if a function is a signal getter
*/
export declare function isSignalGetter(fn: any): boolean;
/**
* Create a reactive signal with optimized getter/setter
*
* @param initialValue The initial value of the signal
* @param equals Optional equality function to determine when to trigger updates
* @returns A tuple of [getter, setter] functions
*/
export declare function createSignal<T>(initialValue: T, equals?: (value1: any, value2: any) => boolean): Signal<T>;