react-hooks-localstorage
Version:
Complete React hooks library for localStorage with TTL, encryption, caching, sync, and advanced utilities.
96 lines • 3.88 kB
TypeScript
import { LocalStorageOptions } from "./localStorage.types";
/**
* Hook for managing arrays in localStorage with array-specific methods
*/
export declare function useLocalStorageArray<T>(key: string, initialValue?: T[], options?: LocalStorageOptions<T[]>): {
isExpired: () => boolean;
getCreatedAt: () => number | null;
getExpiresAt: () => number | null;
getRemainingTime: () => number | null;
array: T[];
setArray: (value: T[] | ((prevValue: T[]) => T[])) => void;
addItem: (item: T) => void;
removeItem: (index: number) => void;
removeItemByValue: (item: T) => void;
updateItem: (index: number, newItem: T) => void;
insertItem: (index: number, item: T) => void;
moveItem: (fromIndex: number, toIndex: number) => void;
clearArray: () => void;
findItem: (predicate: (item: T) => boolean) => T | undefined;
findIndex: (predicate: (item: T) => boolean) => number;
length: number;
isEmpty: boolean;
removeValue: () => void;
refreshValue: () => void;
};
/**
* Hook for managing objects in localStorage with object-specific methods
*/
export declare function useLocalStorageObject<T extends Record<string, unknown>>(key: string, initialValue: T, options?: LocalStorageOptions<T>): {
isExpired: () => boolean;
getCreatedAt: () => number | null;
getExpiresAt: () => number | null;
getRemainingTime: () => number | null;
object: T;
setObject: (value: T | ((prevValue: T) => T)) => void;
setProperty: <K extends keyof T>(property: K, value: T[K]) => void;
removeProperty: <K extends keyof T>(property: K) => void;
updateObject: (updates: Partial<T>) => void;
resetObject: () => void;
hasProperty: <K extends keyof T>(property: K) => boolean;
getProperty: <K extends keyof T>(property: K) => T[K];
keys: Array<keyof T>;
values: unknown[];
entries: Array<[keyof T, T[keyof T]]>;
removeValue: () => void;
refreshValue: () => void;
};
/**
* Hook for managing boolean states in localStorage (like toggles, flags)
*/
export declare function useLocalStorageBoolean(key: string, initialValue?: boolean, options?: LocalStorageOptions<boolean>): {
isExpired: () => boolean;
getCreatedAt: () => number | null;
getExpiresAt: () => number | null;
getRemainingTime: () => number | null;
value: boolean;
setValue: (value: boolean | ((prevValue: boolean) => boolean)) => void;
toggle: () => void;
setTrue: () => void;
setFalse: () => void;
removeValue: () => void;
refreshValue: () => void;
};
/**
* Hook for managing numeric values in localStorage with numeric operations
*/
export declare function useLocalStorageNumber(key: string, initialValue?: number, options?: LocalStorageOptions<number>): {
isExpired: () => boolean;
getCreatedAt: () => number | null;
getExpiresAt: () => number | null;
getRemainingTime: () => number | null;
value: number;
setValue: (value: number | ((prevValue: number) => number)) => void;
increment: (step?: number) => void;
decrement: (step?: number) => void;
multiply: (factor: number) => void;
divide: (divisor: number) => void;
reset: () => void;
setMin: (min: number) => void;
setMax: (max: number) => void;
clamp: (min: number, max: number) => void;
removeValue: () => void;
refreshValue: () => void;
};
/**
* Hook for managing multiple localStorage keys as a single state
*/
export declare function useLocalStorageMultiple<T extends Record<string, unknown>>(keys: T, options?: LocalStorageOptions<unknown>): {
values: T;
setValue: <K extends keyof T>(key: K, value: T[K]) => void;
setValues: (newValues: Partial<T>) => void;
removeValue: <K extends keyof T>(key: K) => void;
removeAll: () => void;
refreshValues: () => void;
};
//# sourceMappingURL=useLocalStorageAdvanced.d.ts.map