/** Grainlet reactive primitives */ export type Accessor = () => T; export type Setter = { (value: T): void; (updater: (prev: T) => T): void; }; export type Signal = [get: Accessor, set: Setter]; export declare function createSignal(): Signal; export declare function createSignal(initialValue: T): Signal; export declare function createEffect(fn: () => void | (() => void)): () => void; export declare function createMemo(fn: () => T): Accessor; export declare function onCleanup(fn: () => void): void; export declare function onMount(fn: () => void | (() => void)): void; export declare function untrack(fn: () => T): T; export declare function batch(fn: () => T): T; export declare function startTransition(fn: () => void): Promise; export declare function useTransition(): [ pending: Accessor, start: typeof startTransition, ]; export declare function createDeferred( source: Accessor, options?: { timeoutMs?: number } ): Accessor; export declare function isServer(): boolean;