/**
 * Icon Atom Component
 *
 * Renders an icon from the active icon family (Layer 1 Iconography axis —
 * see lib/iconFamily.ts). Canonical names are lucide kebab-case; the resolver
 * dispatches to phosphor / tabler / fa-solid when `--icon-family` selects them,
 * re-rendering automatically on theme switch.
 *
 * Supports two APIs:
 * - `icon` prop: Pass a LucideIcon component directly (bypasses family resolver
 *   — used for direct lucide component refs, stays in lucide regardless of theme)
 * - `name` prop: Pass a canonical kebab-case name (family-aware, swaps on theme)
 */
import React from 'react';
import type { LucideIcon } from 'lucide-react';
export type IconSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
export type IconAnimation = 'spin' | 'pulse' | 'none';
/**
 * Resolve an icon name to a Lucide icon component.
 * Supports all 1500+ Lucide icons via dynamic PascalCase lookup.
 * Falls back to HelpCircle if not found.
 */
export declare function resolveIcon(name: string): LucideIcon;
export interface IconProps {
    /** Lucide icon component (preferred for type-safe usage) */
    icon?: LucideIcon;
    /** Icon name as string (resolved from iconMap) */
    name?: string;
    /** Size of the icon */
    size?: IconSize;
    /** Color class (Tailwind color class) or 'inherit' for theme default */
    color?: string;
    /** Animation type */
    animation?: IconAnimation;
    /** Additional CSS classes */
    className?: string;
    /** Icon stroke width - uses theme default if not specified */
    strokeWidth?: number;
    /** Inline style */
    style?: React.CSSProperties;
}
export declare const Icon: React.FC<IconProps>;
