/** * Coalesces multiple synchronous signal mutations into a single subscriber * pass. Without batch(), each `signal.value = ...` immediately triggers every * effect/computed/watch that depends on it — so 3 sequential mutations cause * 3 renders. With batch(), the mutations queue their subscribers and the * subscribers run once when batch() returns. * * Nested batch() calls are supported — only the outermost unwinds the queue. * Errors inside fn() still unwind the depth correctly via try/finally. */ export declare function batch(fn: () => T): T; export interface Signal { get value(): T; set value(v: T); readonly peek: T; } export interface ComputedSignal { readonly value: T; } export type StopFn = () => void; export declare function signal(initialValue: T): Signal; export declare function computed(getter: () => T): ComputedSignal; export declare function effect(fn: () => void): StopFn; export declare function watch(source: Signal | ComputedSignal, callback: (newValue: T, oldValue: T) => void, options?: { immediate?: boolean; }): StopFn; //# sourceMappingURL=signals.d.ts.map