import { Sysl } from "../tools/sysl"; import { File, PluginClientOptions, PluginConfig, PluginManifest } from "./types"; export type PluginFetchOptions = { /** Where to fetch plugins from. */ remoteUrl?: string; /** Whether to require strict SSL when fetching network plugins. */ strictSsl?: boolean; }; /** Discovers available plugins on the user's machine and known network locations. */ export declare class PluginLocator { /** Returns all discoverable plugins in order of precedence. */ static all(sysl: Sysl, extensionPath: string, workspaceDirs: string[], globalStoragePath: string, options?: PluginClientOptions, fetchOptions?: PluginFetchOptions): Promise; /** Returns all local plugins that can be discovered in the workspace. */ static localPlugins(sysl: Sysl, workspaceDirs: string[], options?: PluginClientOptions): Promise; /** Returns all plugins that are built into the extension. */ static builtin(extensionPath: string, options?: PluginClientOptions): Promise; /** Returns all plugins that can be discovered on the network. */ static networkPlugins(globalStoragePath: string, fetchOptions: PluginFetchOptions, pluginOptions?: PluginClientOptions): Promise; } /** * Returns a list of plugins rooted at the plugin defined at `url`. * * Each plugin is downloaded and extracted to `dir`, and `archive`-kind plugins are recursively * resolved. */ export declare function resolvePlugins(dir: string, url: string, options?: PluginClientOptions, fetchOptions?: PluginFetchOptions, urls?: string[]): Promise; /** Returns an array of plugin manifests describing the plugins implemented by files. */ export declare function extractPlugins(dir: string, files: File[]): PluginManifest[];