import { DataLoadFn, DataPersistFn, OnboardingContext as OnboardingContextType } from '@onboardjs/core'; import { PersistenceMode } from '../../components/PersistenceStatus'; export interface LocalStoragePersistenceOptions { key: string; ttl?: number; } export interface UsePersistenceConfig { localStoragePersistence?: LocalStoragePersistenceOptions; customOnDataLoad?: DataLoadFn; customOnDataPersist?: DataPersistFn; customOnClearPersistedData?: () => Promise | unknown; /** * Callback fired when a persistence error occurs. * Useful for showing user notifications or logging. */ onPersistenceError?: (error: Error) => void; } export interface UsePersistenceResult { onDataLoad: DataLoadFn; onDataPersist: DataPersistFn; onClearPersistedData: () => Promise; /** * The current persistence mode. */ persistenceMode: PersistenceMode; /** * Whether there's been a persistence error. */ persistenceError: Error | null; /** * Switch to memory-only mode (fallback when localStorage fails). */ switchToMemoryMode: () => void; } /** * Handles localStorage operations with proper error recovery. * Provides fallback mechanisms for quota and privacy errors. */ export declare function usePersistence(config: UsePersistenceConfig): UsePersistenceResult;