import { SyslConfiguration } from "../config"; import { Sysl } from "../tools/sysl"; import { Events, PluginClient, PluginClientOptions, PluginConfig } from "./types"; /** Configures the plugin engine. */ export type PluginEngineConfig = { sysl: Sysl; extensionPath?: string; workspaceDirs?: string[]; globalStoragePath?: string; options?: PluginClientOptions; events: Events; }; /** * Manages the full lifecycle of extension plugins. */ export declare class PluginEngine { private readonly config; private readonly syslConfig; private _plugins; private readonly disposables; private nextInspectPort; constructor(config: PluginEngineConfig, syslConfig: SyslConfiguration); get plugins(): PluginClient[]; /** Discovers, registers and enables plugins. */ activate(): Promise; deactivate(): Promise; /** Locates available plugins and returns a config for each. */ locate(): Promise; /** Constructs plugin clients for each config. */ build(configs: PluginConfig[]): PluginClient[]; get pluginIds(): string[]; }