import { RichTextEditorProfile, SimplifiedProfile } from "../types";
export interface ProfileCacheStats {
    simplifiedCacheSize: number;
    rawCacheSize: number;
    simplifiedHits: number;
    simplifiedMisses: number;
    rawHits: number;
    rawMisses: number;
}
/**
 * Get a simplified profile from cache or convert and cache it
 */
export declare function getCachedSimplifiedProfile(profile: RichTextEditorProfile | null): SimplifiedProfile;
/**
 * Get a parsed profile from cache or parse and cache it (backward compatibility)
 */
export declare function getCachedProfile(profileJson: string): RichTextEditorProfile;
/**
 * Clear all profile caches
 */
export declare function clearProfileCache(): void;
/**
 * Remove a specific profile from cache
 */
export declare function evictProfileFromCache(profileKey: string): boolean;
/**
 * Check if a profile is cached without accessing it
 */
export declare function isProfileCached(profileKey: string): boolean;
/**
 * Get all cached profile keys (useful for debugging)
 */
export declare function getCachedProfileKeys(): string[];
/**
 * Get cache statistics
 */
export declare function getProfileCacheStats(): Readonly<ProfileCacheStats>;
export interface ProfileCacheHook {
    /** Get a cached simplified profile (optimized for the new system) */
    getCachedSimplifiedProfile: (profile: RichTextEditorProfile | null) => SimplifiedProfile;
    /** Get a cached profile (same as getCachedProfile but wrapped in useCallback) */
    getCachedProfile: (profileJson: string) => RichTextEditorProfile;
    /** Clear all caches */
    clearCache: () => void;
    /** Remove a specific profile from cache */
    evictProfile: (profileKey: string) => boolean;
    /** Check if a profile is cached */
    isProfileCached: (profileKey: string) => boolean;
    /** Get all cached profile keys */
    getCachedKeys: () => string[];
    /** Get cache statistics */
    getStats: () => Readonly<ProfileCacheStats>;
}
/**
 * React hook for managing profile cache
 * This provides memoized cache functions for React components
 */
export declare function useProfileCache(): ProfileCacheHook;
/**
 * Simple hook that just returns a cached simplified profile
 * Use this when you only need to get a simplified profile and don't need cache management
 */
export declare function useCachedSimplifiedProfile(profile: RichTextEditorProfile | null): SimplifiedProfile;
