import * as solid_js from 'solid-js'; import { Accessor } from 'solid-js'; import { MaybeAccessor } from '@solidjs-use/shared'; import { OnOptions } from 'solid-js/types/reactive/signal'; interface UseClonedOptions extends OnOptions { /** * Custom clone function. * * By default, it use `JSON.parse(JSON.stringify(value))` to clone. */ clone?: (source: T) => T; /** * Manually sync the Accessor * * @default false */ manual?: boolean; } interface UseClonedReturn { /** * Cloned Accessor */ cloned: Accessor; /** * Sync cloned data with source manually */ sync: () => void; } type CloneFn = (x: F) => T; declare function cloneFnJSON(source: T): T; /** * Reactive clone of a Accessor. * * @see https://solidjs-use.github.io/solidjs-use/core/useCloned */ declare function useCloned(source: MaybeAccessor, options?: UseClonedOptions): { cloned: Accessor; setCloned: solid_js.Setter; sync: () => void; }; export { CloneFn, UseClonedOptions, UseClonedReturn, cloneFnJSON, useCloned };