import { HostedPluginServer, HostedPluginClient, DeployedPlugin, PluginIdentifiers } from '../../common/plugin-protocol'; import { HostedPluginSupport } from './hosted-plugin'; import { ILogger, ContributionProvider, DisposableCollection } from '@theia/core'; import { ExtPluginApiProvider, ExtPluginApi } from '../../common/plugin-ext-api-contribution'; import { PluginDeployerHandlerImpl } from './plugin-deployer-handler-impl'; import { PluginDeployerImpl } from '../../main/node/plugin-deployer-impl'; import { HostedPluginLocalizationService } from './hosted-plugin-localization-service'; import { PluginUninstallationManager } from '../../main/node/plugin-uninstallation-manager'; import { Deferred } from '@theia/core/lib/common/promise-util'; export declare const BackendPluginHostableFilter: unique symbol; /** * A filter matching backend plugins that are hostable in my plugin host process. * Only if at least one backend plugin is deployed that matches my filter will I * start the host process. */ export type BackendPluginHostableFilter = (plugin: DeployedPlugin) => boolean; /** * This class implements the per-front-end services for plugin management and communication */ export declare class HostedPluginServerImpl implements HostedPluginServer { private readonly hostedPlugin; protected readonly logger: ILogger; protected readonly deployerHandler: PluginDeployerHandlerImpl; protected readonly pluginDeployer: PluginDeployerImpl; protected readonly localizationService: HostedPluginLocalizationService; protected readonly extPluginAPIContributions: ContributionProvider; protected readonly uninstallationManager: PluginUninstallationManager; protected backendPluginHostableFilter: BackendPluginHostableFilter; protected client: HostedPluginClient | undefined; protected toDispose: DisposableCollection; protected uninstalledPlugins: Set; protected disabledPlugins: Set; protected readonly pluginVersions: Map<`${string}.${string}`, string>; protected readonly initialized: Deferred; constructor(hostedPlugin: HostedPluginSupport); protected init(): void; protected getServerName(): string; dispose(): void; setClient(client: HostedPluginClient): void; getDeployedPluginIds(): Promise; getInstalledPluginIds(): Promise; /** * Ensures that the plugin was not uninstalled when this session was started * and that it matches the first version of the given plugin seen by this session. * * The deployment system may have multiple versions of the same plugin available, but * a single session should only ever activate one of them. */ protected isInstalledPlugin(identifier: PluginIdentifiers.VersionedId): boolean; getUninstalledPluginIds(): Promise; getDisabledPluginIds(): Promise; getDeployedPlugins(pluginIds: PluginIdentifiers.VersionedId[]): Promise; onMessage(pluginHostId: string, message: Uint8Array): Promise; getExtPluginAPI(): Promise; } //# sourceMappingURL=plugin-service.d.ts.map