import { IconImportName } from './dynamic-icon-imports.js';
import * as React from "react";
export interface DynamicIconProps extends React.ComponentProps<"svg"> {
/**
* The name of the icon to render.
* - Lucide icons: kebab-case (e.g., "camera", "chevron-down")
* - Flag icons: ISO 3166-1 alpha-3 or PascalCase (e.g., "USA", "BasqueCountry")
* - Social media icons: PascalCase (e.g., "FacebookOriginal", "TiktokNeutral")
* - Custom icons: kebab-case (e.g., "bright-local-logo")
*/
name: IconImportName | (string & {});
/**
* Icon size in pixels (applies to both width and height)
* @default 16
*/
size?: number;
/**
* Icon color (uses currentColor by default)
*/
color?: string;
/**
* Stroke width for line icons (Lucide/custom only, ignored for flag/social media)
* @default 1.33
*/
strokeWidth?: number;
/**
* When true, keeps stroke width consistent regardless of icon size.
* Only applies to Lucide and custom icons. Ignored for flag/social media icons.
* @default true
*/
absoluteStrokeWidth?: boolean;
/**
* Fallback content displayed while the icon is loading.
* Defaults to an invisible placeholder that matches the icon's dimensions to prevent layout shift.
*/
fallback?: React.ReactNode;
}
/**
* DynamicIcon component for rendering any icon by name at runtime.
*
* Supports Lucide icons, custom BrightLocal icons, flag icons (ISO 3166-1 alpha-3),
* and social media icons — all resolved from a single unified registry.
*
* @example
* // Lucide icon
*
*
* @example
* // Flag icon
*
*
* @example
* // Social media icon
*
*
* @example
* // With custom loading fallback
* } />
*
* @example
* // Opt out of default placeholder
*
*
* @example
* // Database-driven
*
*/
export declare const DynamicIcon: React.ForwardRefExoticComponent & React.RefAttributes>;
//# sourceMappingURL=dynamic-icon.d.ts.map