interface IFuncUpdater { (previousState?: T): T; } interface ISetCache { (value?: T | IFuncUpdater | undefined, opts?: { expires?: number; }): void; } interface Options { defaultValue?: T | (() => T); serializer?: (value: T) => string; deserializer?: (value: string) => T; expires?: number; } declare function useClientCacheState(key: string, options?: Options): [T, ISetCache]; export default useClientCacheState;