/** * Manifest Registry Resolver * * Fetches and caches registry manifests from remote URLs. * Supports HTTP(S) manifest-based registries. */ import type { RegistryManifest, RegistryConfig, PluginManifest } from '../types.js'; import { ManifestCacheManager } from '../cache.js'; export interface FetchOptions { /** Force refresh (ignore cache) */ force?: boolean; /** Request timeout in milliseconds */ timeout?: number; } export interface ManifestFetchResult { /** Fetched manifest */ manifest: RegistryManifest; /** Whether manifest was loaded from cache */ fromCache: boolean; /** Age of cached manifest in seconds (if from cache) */ cacheAge?: number; } export declare class ManifestResolver { private cache; constructor(cache?: ManifestCacheManager); /** * Fetch content from URL */ private fetchUrl; /** * Verify SHA-256 checksum */ private verifyChecksum; /** * Fetch registry manifest */ fetchManifest(registry: RegistryConfig, options?: FetchOptions): Promise; /** * Fetch plugin manifest from URL */ fetchPluginManifest(url: string, expectedChecksum?: string, options?: FetchOptions): Promise; /** * Search for plugin across registries */ searchPlugin(pluginName: string, registries: RegistryConfig[]): Promise<{ manifest: RegistryManifest; pluginRef: any; registry: RegistryConfig; } | null>; /** * Get all plugins from all enabled registries */ getAllPlugins(registries: RegistryConfig[]): Promise>; /** * Refresh manifest cache for a registry */ refresh(registry: RegistryConfig): Promise; /** * Invalidate cache for a registry */ invalidate(registryName: string): Promise; /** * Get cache statistics */ getCacheStats(): Promise; /** * Clean up expired cache entries */ cleanupCache(): Promise; } /** * Default manifest resolver instance */ export declare const manifestResolver: ManifestResolver; //# sourceMappingURL=manifest-resolver.d.ts.map