import type MarketplacePluginRepository from "../../api/plugin_repository/MarketplacePluginRepository.ts"; import type ExtensionDescriptor from "../../api/plugin/ExtensionDescriptor.ts"; import type ExtensionEntry from "../../api/plugin_repository/ExtensionEntry.ts"; import type VersionedPluginDescriptor from "../../api/plugin_repository/VersionedPluginDescriptor.ts"; import type SearchQuery from "../../api/plugin_repository/SearchQuery.ts"; import type FetchCapable from "../../api/fetch/FetchCapable.ts"; import type FetchInterface from "../../api/fetch/FetchInterface.ts"; /** * {@link MarketplacePluginRepository} backed by a remote JSON manifest file. * * Fetches a manifest from `manifestUrl` (an array of plugin entries) on first use and caches * it in memory. Supports free-text search across plugin name, scope, and extension point IDs. * Plugin bundles are downloaded and cached in `cacheFolder` when extensions are instantiated. */ export default class HttpManifestPluginRepository implements MarketplacePluginRepository, FetchCapable { readonly name: string; readonly description?: string; readonly author?: string; readonly url: string; private readonly cacheFolder; private cachedManifest; private fetchFn; constructor({ manifestUrl, name, description, author, cacheFolder, }: { manifestUrl: string; name: string; description?: string; author?: string; cacheFolder: string; }); setFetch(fetchInterface: FetchInterface): void; private fetchManifest; private entryToDescriptor; private getPluginsAsyncIterable; getPlugins(): AsyncIterable>; getPlugin(pluginId: string): Promise | undefined>; private searchAsyncIterable; search(query: Readonly): AsyncIterable>; private scanForExtensionsAsyncIterable; scanForExtensions(extensionPoint: string): AsyncIterable>; getExtensionDescriptorFromExtensionEntry(extensionEntry: ExtensionEntry): Promise>; } //# sourceMappingURL=HttpManifestPluginRepository.d.ts.map