/** * Icon Registry System * Simple icon storage and retrieval with Cache API persistence * PORTED FROM: clj/ty/icons.cljs */ /** * Read icon directly from cache (for immediate rendering) * This is the key function that prevents icon twitching! * @param name Icon name * @returns Promise - SVG string from cache or null */ export declare function getCachedIcon(name: string): Promise; /** * Register multiple icons at once * Always updates memory and notifies watchers immediately * Cache update happens in background (only if different from cached version) * @param icons Object mapping icon names to SVG strings */ export declare function registerIcons(icons: Record): void; /** * Register a single icon * Always updates memory and notifies watchers immediately * Cache update happens in background (only if different from cached version) * @param name Icon name * @param svg SVG string */ export declare function registerIcon(name: string, svg: string): void; /** * Lookup an icon by name from memory * NOTE: This does NOT check cache - use getCachedIcon() for that * @param name Icon name * @returns SVG string or undefined */ export declare function getIcon(name: string): string | undefined; /** * Check if an icon exists in memory * NOTE: This does NOT check cache * @param name Icon name * @returns true if icon is registered in memory */ export declare function hasIcon(name: string): boolean; /** * Clear all registered icons from memory and cache */ export declare function clearIcons(): Promise; /** * Add a watcher for registry changes * @param id Unique watcher ID * @param iconName Optional icon name to watch (for selective notification) * @param callback Function to call when watched icons change */ export declare function addWatcher(id: string, iconName: string | undefined, callback: (changedIcons: Set) => void): void; /** * Remove a watcher * @param id Watcher ID to remove */ export declare function removeWatcher(id: string): void; /** * Get all registered icon names (memory only, not cache) * @returns Array of icon names */ export declare function getIconNames(): string[]; /** * Get registry size (memory only) * @returns Number of registered icons in memory */ export declare function getIconCount(): number; /** * Get cache statistics * @returns Promise with cache info */ export declare function getCacheInfo(): Promise<{ version: string; cacheName: string; available: boolean; iconCount?: number; }>; //# sourceMappingURL=icon-registry.d.ts.map