import type Plugin from "../../api/plugin/Plugin.ts"; /** * Loads and caches {@link Plugin} instances from remote or local URLs. * * Plugins are fetched via dynamic `import()` (delegating to {@link PluginLoader}) and * cached in memory by URL so repeated calls for the same URL are served without * re-fetching. */ export default class UrlPluginSource { private readonly pluginsByUrl; private readonly cacheFolder; /** * @param cacheFolder Directory used to cache downloaded plugin bundles. * Defaults to `~/.flowscripter/plugin`. */ constructor(cacheFolder?: string); /** * Load the plugin at `url`, returning the cached instance on subsequent calls. * * @param url URL of the plugin bundle to load. * @returns The loaded {@link Plugin}, or `undefined` if the module exists but is * not a valid plugin. * @throws If the module cannot be fetched or fails to load. */ loadPlugin(url: URL): Promise; } //# sourceMappingURL=UrlPluginSource.d.ts.map