export type IconSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl'; export type IconColorToken = 'primary' | 'secondary' | 'tertiary' | 'quaternary' | 'brand' | 'negative' | 'positive' | 'warning' | 'caution' | 'ai' | 'guide' | 'neutral' | 'faint-brand' | 'faint-negative' | 'faint-positive' | 'faint-warning' | 'faint-caution' | 'faint-ai' | 'faint-neutral' | 'medium-brand' | 'medium-negative' | 'medium-positive' | 'medium-warning' | 'medium-caution' | 'medium-ai' | 'medium-neutral' | 'bold-brand' | 'bold-negative' | 'bold-positive' | 'bold-warning' | 'bold-caution' | 'bold-ai' | 'bold-neutral' | 'strong-brand' | 'strong-negative' | 'strong-positive' | 'strong-warning' | 'strong-caution' | 'strong-ai' | 'strong-neutral' | 'on-strong' | 'on-bold' | 'inherit'; export type IconColor = IconColorToken | `var(--${string})`; export declare class Icon { el: HTMLElement; /** Exact canonical IcoMo export name, including the `Flag` prefix for flags. */ name: string; /** Iconography size token. Maps to `--dimension-iconography-{size}`. Default `md` = 20 px. */ size: IconSize; /** * Semantic foreground color token, or a raw CSS var reference. `tertiary` * and the still-fainter `quaternary` are restricted to icons inside genuinely * inactive/disabled UI or to purely decorative icons; informative icons must * retain sufficient contrast. */ color: IconColor; /** Accessible label. Sets `role="img"` and `aria-label`. Omit for decorative icons. */ label: string | undefined; /** Resolved SVG markup — set synchronously on cache hit, async after a lazy load. */ private svg; /** Guards against out-of-order async resolutions when `name`/`flag` change quickly. */ private loadToken; /** * Cache hit → render synchronously (pre-registered via `registerIcons` or * previously loaded). Miss → fire the per-icon lazy loader; the glyph pops in * when the (tiny, per-icon) chunk resolves and stays cached for every other * ds-icon instance. */ private resolveSvg; componentWillLoad(): void; /** Last markup injected into the DOM — skips redundant re-parse on unrelated re-renders. */ private renderedSvg; private updateSvg; onIconChange(): void; componentDidRender(): void; render(): any; } //# sourceMappingURL=Icon.d.ts.map