react-hooks-localstorage
Version:
Complete React hooks library for localStorage with TTL, encryption, caching, sync, and advanced utilities.
85 lines • 2.22 kB
TypeScript
import { LocalStorageError, LocalStorageOptions } from "./localStorage.types";
/**
* Utility class for advanced localStorage operations
*/
export declare class LocalStorageManager {
private prefix;
private version;
private onError?;
constructor(options?: {
prefix?: string;
version?: string;
onError?: (error: LocalStorageError) => void;
});
private getKey;
private handleError;
private defaultSerialize;
private defaultDeserialize;
private encrypt;
private decrypt;
/**
* Set a value in localStorage with optional TTL
*/
setItem<T>(key: string, value: T, options: LocalStorageOptions<T>): boolean | "unavailable";
/**
* Get a value from localStorage with expiration check
*/
getItem<T>(key: string, options?: LocalStorageOptions<T>): T | null;
/**
* Remove an item from localStorage
*/
removeItem(key: string): void;
/**
* Check if an item exists and is not expired
*/
hasItem(key: string): boolean;
/**
* Get metadata about a stored item
*/
getItemMetadata(key: string): {
createdAt: number;
expiresAt: number | null;
version?: string;
} | null;
/**
* Clear all items with the current prefix
*/
clear(): void;
/**
* Get all keys with the current prefix
*/
getAllKeys(): string[];
/**
* Get localStorage usage information
*/
getStorageInfo(): {
used: number;
remaining: number;
total: number;
};
/**
* Clean up expired items
*/
cleanupExpiredItems(): number;
private dispatchStorageEvent;
}
export declare const localStorageManager: LocalStorageManager;
export declare const localStorageUtils: {
/**
* Check if localStorage is available
*/
isAvailable(): boolean;
/**
* Get size of a specific item in bytes
*/
getItemSize(key: string): number;
/**
* Backup localStorage to a JSON string
*/
exportData(): string;
/**
* Restore localStorage from a JSON string
*/
importData(jsonData: string): boolean;
};
//# sourceMappingURL=localStorage.utils.d.ts.map