import { IconName as LucideDynamicName } from 'lucide-react/dynamic';
import { icons } from 'lucide-react';
/**
* A lucide icon referenced by name: the PascalCase export name
* (`"ArrowRight"`) or lucide's own kebab-case id (`"arrow-right"`).
*/
export type IconName = keyof typeof icons | LucideDynamicName;
export interface DynamicIconProps {
/** The icon, by name. An unknown name renders nothing. */
name: IconName;
color?: string;
size?: number;
className?: string;
"aria-label"?: string;
}
/**
* Renders a lucide icon chosen at runtime (CMS content, user settings). The
* glyph is fetched on demand through `lucide-react/dynamic`, so it appears
* after hydration once its chunk has loaded, and never in server-rendered
* HTML. For any icon known when the code is written, use
* `` from the main entry instead. In a `$icon`-style
* prop, pass it as an element: `$icon={}`.
*/
export declare function DynamicIcon({ name, "aria-label": ariaLabel, ...props }: DynamicIconProps): import("react").JSX.Element | null;