/** * Registry of consumer-supplied icon sets for ``. * * A library is a pure name/family/variant-to-URL function plus an optional mutator. The component owns every * security-relevant step after that: the resolved URL still goes through the fetch-URL allowlist, * the response is still byte-capped, and the markup is still sanitized before it reaches the DOM. * A resolver therefore cannot widen what an icon is allowed to render. */ /** Maps an icon name, family, and variant to the URL of a single SVG document. Async resolvers are * awaited and generation-guarded, so stale results never start a request or replace a newer icon. */ export type LyraIconLibraryResolver=(name:string,family:string,variant:string)=>string|Promise; /** Post-processes the sanitized `` element before it is rendered — recoloring, adding a * `viewBox`, stripping a hardcoded `width`/`height`. It runs on already-sanitized, component-owned * DOM and is trusted consumer code, so it must not reintroduce markup from an untrusted source. */ export type LyraIconLibraryMutator=(svg:SVGElement)=>void;export interface LyraIconLibraryOptions{resolver:LyraIconLibraryResolver;mutator?:LyraIconLibraryMutator;}export interface LyraIconLibrary extends LyraIconLibraryOptions{readonly name:string;} /** Registers an icon library, replacing one already registered under the same name. Every * currently rendered `` using that library re-resolves immediately, so registration can * happen after the icons are on the page. */ export declare function registerIconLibrary(name:string,options:LyraIconLibraryOptions):void; /** Removes a library. Icons using it fall back to the built-in glyph set. */ export declare function unregisterIconLibrary(name:string):void; /** The library registered under `name`, or `undefined`. */ export declare function getIconLibrary(name:string):LyraIconLibrary|undefined;