import * as react from 'react'; import { HTMLAttributes, ComponentType } from 'react'; interface IconProps extends HTMLAttributes { /** Icon container size */ size?: "xs" | "sm" | "md" | "lg" | "xl"; /** Icon name to resolve from the registered icon set (e.g., "rocket", "arrow-right") */ name?: string; /** Which registered icon set to use (defaults to the configured default) */ iconSet?: string; } declare const Icon: react.ForwardRefExoticComponent>; interface IconSet { resolve: (name: string) => ComponentType<{ className?: string; size?: number; }> | null; } type IconComponent = ComponentType<{ className?: string; size?: number; }>; /** Register an icon set as an addendum (supplements every base set). */ declare function registerIconAddendum(set: IconSet): void; /** * Register individual icon components by their kebab-case name. * * ```tsx * import { registerIcons } from "@particle-academy/react-fancy"; * import { Home, Settings, Mail } from "lucide-react"; * * registerIcons({ Home, Settings, Mail }); * ``` * * Icons are registered into the default "lucide" icon set and resolved * by the `` component using kebab-case names. */ declare function registerIcons(icons: Record>): void; declare function registerIconSet(name: string, set: IconSet): void; declare function configureIcons(options: { defaultSet?: string; }): void; declare function resolveIcon(name: string, setName?: string): IconComponent | null; export { Icon, type IconProps, type IconSet, configureIcons, registerIconAddendum, registerIconSet, registerIcons, resolveIcon };