/** * Centralized icon management for FlowDrop * Ensures consistent icon usage across all components */ import type { NodeCategory } from '../types/index.js'; /** * Default icons for different contexts */ export declare const DEFAULT_ICONS: { readonly NODE: "mdi:cube"; readonly CATEGORY: "mdi:folder"; readonly ADD: "mdi:plus"; readonly REMOVE: "mdi:minus"; readonly EDIT: "mdi:pencil"; readonly SAVE: "mdi:content-save"; readonly LOAD: "mdi:folder-open"; readonly EXPORT: "mdi:download"; readonly IMPORT: "mdi:upload"; readonly SEARCH: "mdi:magnify"; readonly CLOSE: "mdi:close"; readonly SETTINGS: "mdi:cog"; readonly HELP: "mdi:help-circle"; readonly SUCCESS: "mdi:check-circle"; readonly ERROR: "mdi:alert-circle"; readonly WARNING: "mdi:alert"; readonly INFO: "mdi:information"; readonly LOADING: "mdi:loading"; readonly HOME: "mdi:home"; readonly BACK: "mdi:arrow-left"; readonly FORWARD: "mdi:arrow-right"; readonly UP: "mdi:arrow-up"; readonly DOWN: "mdi:arrow-down"; readonly WORKFLOW: "mdi:graph"; readonly NODE_ADD: "mdi:plus-circle"; readonly NODE_DELETE: "mdi:minus-circle"; readonly CONNECTION: "mdi:connection"; readonly DATA: "mdi:database"; readonly FILE: "mdi:file"; readonly TEXT: "mdi:text"; readonly JSON: "mdi:code-json"; readonly MODEL: "mdi:chip"; readonly BRAIN: "mdi:brain"; readonly VECTOR: "mdi:vector-point"; readonly ROBOT: "mdi:robot"; readonly TOOL: "mdi:wrench"; readonly CALCULATOR: "mdi:calculator"; readonly CLOCK: "mdi:clock"; readonly CHAT: "mdi:chat"; readonly MESSAGE: "mdi:message"; readonly EMAIL: "mdi:email"; readonly WEBHOOK: "mdi:webhook"; readonly STORAGE: "mdi:database"; readonly MEMORY: "mdi:memory"; readonly CACHE: "mdi:cached"; readonly PROCESS: "mdi:cog"; readonly FILTER: "mdi:filter"; readonly SORT: "mdi:sort"; readonly TRANSFORM: "mdi:transform"; readonly LOGIC: "mdi:git-branch"; readonly CONDITION: "mdi:source-fork"; readonly LOOP: "mdi:loop"; readonly API: "mdi:api"; readonly LINK: "mdi:link"; readonly PLUGIN: "mdi:puzzle"; readonly BUNDLE: "mdi:package-variant"; }; /** * Category-specific icons for built-in categories. * Custom categories fall back to DEFAULT_ICONS.CATEGORY. * These serve as static defaults; the categories store provides dynamic overrides. */ export declare const CATEGORY_ICONS: Record; /** * Get the appropriate icon for a node * @param nodeIcon - The node's specific icon * @param category - The node's category * @returns The icon to use */ export declare function getNodeIcon(nodeIcon?: string, category?: NodeCategory): string; /** * Get the appropriate icon for a category. * Checks the categories store first (which includes API overrides), * then falls back to the static CATEGORY_ICONS map, then to the default. * @param category - The category * @returns The icon to use */ export declare function getCategoryIcon(category: NodeCategory): string; /** * Get a default icon by key * @param key - The icon key from DEFAULT_ICONS * @returns The icon string */ export declare function getDefaultIcon(key: keyof typeof DEFAULT_ICONS): string; /** * Validate if an icon string is properly formatted * @param icon - The icon string to validate * @returns True if valid, false otherwise */ export declare function isValidIcon(icon: string): boolean; /** * Get a fallback icon if the provided icon is invalid * @param icon - The icon to check * @param fallback - The fallback icon to use * @returns The valid icon string */ export declare function getValidIcon(icon: string, fallback?: string): string;