/** * Icon Registry * * Manages registration and lookup of icons for the llm2ui system. * Supports categorization, search by name and tags, and integration with Lucide icons. * * @module icon-registry * @see Requirements 12.1, 12.2, 12.3 */ /** * Icon category types */ export type IconCategory = 'general' | 'arrow' | 'social' | 'file' | 'media' | 'action' | 'navigation' | 'communication'; /** * Icon definition for registration */ export interface IconDefinition { /** Icon name/identifier */ name: string; /** Icon category for organization */ category: IconCategory; /** SVG content string */ svg: string; /** Searchable tags */ tags: string[]; } /** * Validation result for icon definition */ export interface IconValidationResult { valid: boolean; errors: string[]; } /** * Validates an icon definition */ export declare function validateIconDefinition(definition: Partial): IconValidationResult; /** * Icon Registry class * * Manages registration and lookup of icons with support for: * - Category filtering * - Full-text search by name and tags */ export declare class IconRegistry { private icons; /** * Register an icon definition * @param icon - The icon definition to register * @throws Error if the definition is invalid */ register(icon: IconDefinition): void; /** * Register multiple icons at once * @param icons - Array of icon definitions to register */ registerAll(icons: IconDefinition[]): void; /** * Get an icon definition by name * @param name - The icon name * @returns The icon definition or undefined if not found */ get(name: string): IconDefinition | undefined; /** * Get all registered icon definitions * @returns Array of all icon definitions */ getAll(): IconDefinition[]; /** * Get icons by category * @param category - The category to filter by * @returns Array of icon definitions in the category */ getByCategory(category: IconCategory): IconDefinition[]; /** * Search icons by name or tags * @param query - Search query string * @returns Array of matching icon definitions */ search(query: string): IconDefinition[]; /** * Check if an icon is registered * @param name - The icon name * @returns True if the icon is registered */ has(name: string): boolean; /** * Unregister an icon * @param name - The icon name to unregister * @returns True if the icon was unregistered */ unregister(name: string): boolean; /** * Get the number of registered icons */ get size(): number; /** * Clear all registered icons */ clear(): void; /** * Get all unique categories that have icons * @returns Array of category names */ getCategories(): IconCategory[]; /** * Get icon count by category * @returns Map of category to count */ getCategoryCounts(): Record; } /** * Default global icon registry instance */ export declare const defaultIconRegistry: IconRegistry; /** * Lucide icon definitions * A curated set of commonly used icons from the Lucide icon library */ export declare const lucideIcons: IconDefinition[]; /** * Initialize the default icon registry with Lucide icons */ export declare function initializeDefaultIcons(): void; //# sourceMappingURL=icon-registry.d.ts.map