/**
* @license
* Copyright 2023 Nuraly Laabidi Aymen
* SPDX-License-Identifier: MIT
*/
import { LitElement } from 'lit';
import { IconTypes } from './icon.types.js';
/**
* Icon component using inline SVG paths (no external dependencies).
*
* @example
* ```html
*
*
*
* ```
*
* @fires icon-click - Dispatched when icon is clicked
* @fires icon-keyboard-activation - Dispatched when icon is activated via keyboard
*
* @csspart container - The root div wrapper that holds the SVG and controls clickable/disabled styles
* @csspart svg - The inline SVG element rendering the icon path
* @csspart fallback - The span shown when the icon name is not found in the icon set
*/
declare const IconBaseMixin: (new (...args: any[]) => import("./mixins/clickable-mixin.js").ClickableCapable) & (new (...args: any[]) => import("@nuralyui/common/mixins").DependencyAware) & (new (...args: any[]) => import("@nuralyui/common/mixins").ThemeAware) & (new (...args: any[]) => import("@nuralyui/common/mixins").EventHandlerCapable) & (new (...args: any[]) => import("packages/common/src/shared/base-mixin.js").LightDomContent) & typeof LitElement;
export declare class HyIconElement extends IconBaseMixin {
static useShadowDom: boolean;
static readonly styles: import("lit").CSSResult[];
/** The icon name (kebab-case, e.g. "arrow-down", "check-square") */
name: string;
/** The icon type (solid or regular) */
type: IconTypes;
/** Alternative text for accessibility */
alt: string;
/** Icon size (small, medium, large, xlarge, xxlarge) */
size?: 'small' | 'medium' | 'large' | 'xlarge' | 'xxlarge';
/** Icon color override */
color?: string;
/** Custom width override */
width?: string;
/** Custom height override */
height?: string;
/**
* Validate component properties on update
*/
willUpdate(changedProperties: Map): void;
render(): import("lit-html").TemplateResult<1>;
/**
* Get the appropriate ARIA role for the icon
*/
getIconRole(): string;
/**
* Get the appropriate tabindex for the icon
*/
getIconTabIndex(): string;
/**
* Get the appropriate aria-disabled value
*/
getAriaDisabled(): string | undefined;
}
export {};
//# sourceMappingURL=icon.component.d.ts.map