/**
* MUI Icon Component
*
* A flexible icon component that supports:
* - Lucide icons via name prop
* - Custom SVG via slot
* - Various sizes and colors
* - Animation (spin)
* - Accessibility labels
*
* @example
* ```html
*
*
*
* ```
*/
import { MiuraElement } from '@miurajs/miura-element';
/**
* Pre-load commonly used icons
*/
export declare function preloadIcons(names: string[]): void;
/**
* Register a custom SVG icon
*/
export declare function registerIcon(name: string, svg: string): void;
/**
* Register multiple icons at once (for bundled icons)
*/
export declare function registerIcons(icons: Record): void;
export declare class MuiIcon extends MiuraElement {
/**
* Lucide icon name (e.g., "folder", "chevron-right", "settings")
* See https://lucide.dev/icons for full list
*/
name: string;
/**
* Icon size
* - xs: 12px
* - sm: 16px
* - md: 20px (default)
* - lg: 24px
* - xl: 32px
*/
size: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
/**
* Icon color - can be a CSS color, token name (e.g., "primary"), or "currentColor"
*/
color: string;
/**
* SVG stroke width
*/
strokeWidth: number;
/**
* Enable spinning animation (useful for loading states)
*/
spin: boolean;
/**
* Flip the icon
*/
flip: 'horizontal' | 'vertical' | 'both' | '';
/**
* Accessible label for screen readers
*/
label: string;
private _svgContent;
private _loading;
static styles: import("@miurajs/miura-render").CSSResult;
connectedCallback(): void;
updated(changedProps: Map): void;
private _loadIcon;
private _getColor;
template(): import("@miurajs/miura-render").TemplateResult;
}
export default MuiIcon;
//# sourceMappingURL=icon.d.ts.map