import * as react from 'react'; import { EffectCallback, DependencyList, useLayoutEffect, useEffect, RefObject, MutableRefObject } from 'react'; declare function useConstant(initializer: () => T): T; declare function useComputed(compute: () => T, dependencies?: any[], sync?: boolean): { readonly value: T; }; /** Trigger a re-render when reading signal properties of an object. */ declare function useDeepSignal(target: T, synchronous?: (property: keyof T, oldValue: any, newValue: any) => boolean): T; declare function useImmediateEffect(callback: EffectCallback, _?: DependencyList): void; /** * A hook that resolves to useEffect on the server and useLayoutEffect on the client * @param callback {function} Callback function that is invoked when the dependencies of the hook change */ declare const useIsomorphicLayoutEffect: typeof useLayoutEffect; declare function useLatest(value: T): react.RefObject; declare function useOnValueChange(value: T, onChange: (value: T, oldValue: T) => void, effect?: typeof useEffect, compare?: (value1: any, value2: any) => boolean): void; type Ref = RefObject | MutableRefObject; type RefOrValue = T | Ref | null | undefined; declare function useOnElementChange(value: RefOrValue, onChange: (value: Element | undefined) => void): void; export { useComputed, useConstant, useDeepSignal, useImmediateEffect, useIsomorphicLayoutEffect, useLatest, useOnElementChange, useOnValueChange };