import { Ref } from 'vue'; export interface IFuncUpdater { (previousState?: T): T; } export interface IFuncStorage { (): Storage; } export interface Options { serializer?: (value: T) => string; deserializer?: (value: string) => T; } export interface OptionsWithDefaultValue extends Options { defaultValue: T | IFuncUpdater; } export declare type StorageStateResult = [ Ref | Ref, (value?: T | IFuncUpdater) => void ]; export declare type StorageStateResultHasDefaultValue = [ Ref | Ref, (value?: T | IFuncUpdater | undefined) => void ]; export declare function createUseStorageState(getStorage: () => Storage | undefined): (key: Ref | string, options?: OptionsWithDefaultValue | undefined) => StorageStateResultHasDefaultValue;