/** * Catalog Resolver for Forge Assets * Handles static JSON catalogs for asset discovery */ import type { CatalogSource } from '../../types'; export interface CatalogEntry { id: string; name: string; description: string; repository: string; version: string; tags: string[]; private?: boolean; deprecated?: boolean; } export interface Catalog { version: string; name: string; description?: string; updated: string; bundles: CatalogEntry[]; starters: CatalogEntry[]; } export declare class CatalogResolver { private catalogs; private cache; private cacheDir; private cacheTTL; constructor(cacheDir?: string); /** * Add a catalog source */ addCatalog(source: CatalogSource): Promise; /** * Remove a catalog source */ removeCatalog(url: string): void; /** * List configured catalogs */ listCatalogs(): CatalogSource[]; /** * Fetch and parse a catalog */ fetchCatalog(source: CatalogSource, silent?: boolean): Promise; /** * Download catalog from URL */ private downloadCatalog; /** * Parse catalog JSON */ private parseCatalog; /** * Validate catalog structure */ private validateCatalog; /** * Validate catalog entry */ private validateEntry; /** * Search all catalogs for assets */ search(query: string, type?: 'bundle' | 'starter'): Promise; /** * Check if entry matches search query */ private matchesQuery; /** * Get all assets from all catalogs */ getAllAssets(): Promise<{ bundles: CatalogEntry[]; starters: CatalogEntry[]; }>; /** * Find asset by ID */ findAsset(id: string, type?: 'bundle' | 'starter'): Promise; /** * Save catalog to disk cache */ private saveToDiskCache; /** * Load catalogs from disk cache (for offline support) */ loadFromDiskCache(): Promise; /** * Clear all caches */ clearCache(): Promise; /** * Refresh all catalogs */ refresh(): Promise; } //# sourceMappingURL=resolver.d.ts.map