/**
 * 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>;
