/** * The icon catalog in use, fetched from the registry. * * The CLI carries a copy of the table, but the registry is what counts: that is * how a new family reaches someone who already has the CLI installed, without * waiting for a release of it. The local copy is the floor — it applies offline, * against an old registry that does not publish the file, and on any network * failure. * * It is loaded once per command and read synchronously after that. The * alternative would be threading the catalog through the action's parameters * down to the file installer, four layers below, with none of them having * anything to decide about it. */ import { type IconCatalog, type IconFamily } from '../core/icons/index.js'; /** O que `/icons.json` publica. */ export interface IconCatalogDocument extends IconCatalog { $schema?: string; schemaVersion?: number; } /** The loaded catalog, or the local copy while nobody has loaded one. */ export declare function iconCatalog(): IconCatalog; /** Returns to the initial state. Exists so tests do not leak into one another. */ export declare function resetIconCatalog(): void; export declare function loadIconCatalog(registryUrl: string): Promise; /** * Rejects a family the catalog does not know, naming the ones that exist. * * "Invalid configuration file: components.json" was all an `"icons": "materia"` * produced — no field named, no accepted values, and the whole file under * suspicion. */ export declare function assertIconFamily(family: IconFamily, catalog?: IconCatalog): void; //# sourceMappingURL=icon-catalog.d.ts.map