import type { LucideProps } from 'lucide-react';
import type { ComponentType, ReactNode } from 'react';
export interface IconProps {
    /**
     * Icon - Flexible runtime icon component
     *
     * **SUPPORTS ALL FORMATS:**
     * - ✅ Lucide components: `<Rocket />` (function)
     * - ✅ Emoji strings: `"🚀"`
     * - ✅ Lucide icon name strings: `"Rocket"` (resolved from lucide-react)
     * - ✅ Custom ReactNode: Any custom component or element
     *
     * **NOTE:** This is the flexible runtime Icon component. For PageMeta.icon, only lucide-react JSX components are supported (see PageMeta type).
     */
    icon?: ComponentType<LucideProps> | string | ReactNode;
    /** Fallback icon when icon prop is missing (same type as icon) */
    fallback?: ComponentType<LucideProps> | string | ReactNode;
    className?: string;
    ariaHidden?: boolean;
}
/**
 * Icon - Unified icon component (FLEXIBLE RUNTIME COMPONENT)
 *
 * **This is the flexible runtime component** - supports Lucide components, emojis, strings, and custom ReactNode.
 *
 * **For PageMeta.icon:** Only lucide-react JSX components are supported (extracted at build time).
 * **For Icon component:** All formats are supported (resolved at runtime).
 *
 * @example
 * ```tsx
 * // Runtime usage - all formats work
 * <Icon icon="🚀" /> // Emoji
 * <Icon icon="Rocket" /> // Lucide name string
 * <Icon icon={<Rocket />} /> // Lucide component
 * <Icon icon={<CustomIcon />} /> // Custom component
 * ```
 *
 * @version 0.0.1
 * @since 0.0.1
 * @author AMBROISE PARK Consulting
 */
declare const Icon: ComponentType<IconProps>;
export default Icon;
export { Icon };
//# sourceMappingURL=icon.d.ts.map