/** Storage item processor for parse/stringify value from storage automatically. */ export interface StorageValueProcessor { /** Receives item from storage and should return what you want to receive from hook as value. */ parse: (item: string | null) => T; /** Receives value and should return string for passing it as item to storage. */ stringify: (item: T) => string; } /** Options of `useStorageItem` hook. */ export interface UseStorageItemOptions { /** Storage. Usually localStorage or sessionStorage. */ storage: Storage | (() => Storage); /** Item value processor. */ processor: StorageValueProcessor; /** Default value. */ defaultValue?: string | null; } /** Return value type of `useStorageItem` hook. */ export type UseStorageItemReturn = [T, (value: T | null) => void]; /** * Hook for working with storage item. * You need to provide key and storage for getting actual value from storage. * * By default result value is raw value from storage. * You can provide processor for parse/stringify value automatically. * * @param key Storage item key. * @param options Options. * @returns Tuple like `[state, setState]`. */ export declare function useStorageItem(key: string, options: { storage: Storage | (() => Storage); processor?: StorageValueProcessor; defaultValue?: string | null; }): UseStorageItemReturn; /** * Hook for working with storage item. * * You need to provide key and storage for getting actual value from storage. * * By default result value is raw value from storage. * * You can provide processor for parse/stringify value automatically. * * @param key Storage item key. * @param options Options. * @returns Tuple like `[state, setState]`. */ export declare function useStorageItem(key: string, options: UseStorageItemOptions): UseStorageItemReturn; /** * Returns JSON value processor for using in `useStorageItem` options. * @param placeholder Placeholder. Will be used when storage item is empty or when JSON.parse is failed. * @returns Processor. */ export declare function getJsonProcessor(placeholder: T): StorageValueProcessor;