import type { IconRegistry } from './icon-registry'; export interface IconOptions { size?: number; color?: string; className?: string; title?: string; rotate?: number; spin?: boolean; } export declare class IconRenderer { private registry; constructor(registry: IconRegistry); render(name: string, options?: IconOptions): HTMLElement; /** * Renders an icon to a raw SVG string, for assignment into `innerHTML`. * * The emitted `` carries `data-icon` / `data-icon-size`, which is what * makes a rendered icon findable again: swapping the active icon pack is a * `querySelectorAll('[data-icon]')` sweep (see `repaintIcons`) rather than a * teardown and rebuild of every subsystem that ever drew one. * * `width`/`height`/`style` are injected ahead of anything the source markup * carries. The HTML parser keeps the *first* of a duplicate attribute, so * these win — which is why icon sets must not declare their own. * * @param name - Registry name. Returns `''` when unresolved, so a missing * icon collapses to nothing rather than throwing. * @param size - Edge length in px. */ renderToString(name: string, size?: number): string; /** * Replaces the glyph inside an existing icon container, in place. * * Used both to reflect a state change (sort direction, filter active) and by * the icon repainter when the theme's pack changes. */ updateIcon(el: HTMLElement, name: string, options?: IconOptions): void; injectSpinKeyframes(): void; } //# sourceMappingURL=icon-renderer.d.ts.map