import { DeployedPlugin, HostedPluginServer } from '../../common/plugin-protocol';
import { HostedPluginWatcher } from './hosted-plugin-watcher';
import { PluginManagerExt } from '../../common/plugin-api-rpc';
import { RPCProtocol } from '../../common/rpc-protocol';
import { Disposable, DisposableCollection, CommandRegistry, WillExecuteCommandEvent, ProgressService, RpcProxy } from '@theia/core';
import { PreferenceServiceImpl, PreferenceProviderProvider } from '@theia/core/lib/browser/preferences';
import { WorkspaceService } from '@theia/workspace/lib/browser';
import { PluginContributionHandler } from '../../main/browser/plugin-contribution-handler';
import { DebugSessionManager } from '@theia/debug/lib/browser/debug-session-manager';
import { DebugConfigurationManager } from '@theia/debug/lib/browser/debug-configuration-manager';
import { WaitUntilEvent } from '@theia/core/lib/common/event';
import { FileSearchService } from '@theia/file-search/lib/common/file-search-service';
import { FrontendApplicationStateService } from '@theia/core/lib/browser/frontend-application-state';
import { PluginViewRegistry } from '../../main/browser/view/plugin-view-registry';
import { WillResolveTaskProvider, TaskProviderRegistry, TaskResolverRegistry } from '@theia/task/lib/browser/task-contribution';
import { TaskDefinitionRegistry } from '@theia/task/lib/browser/task-definition-registry';
import { WebviewEnvironment } from '../../main/browser/webview/webview-environment';
import { WebviewWidget } from '../../main/browser/webview/webview';
import { WidgetManager } from '@theia/core/lib/browser/widget-manager';
import { TerminalService } from '@theia/terminal/lib/browser/base/terminal-service';
import { JsonSchemaStore } from '@theia/core/lib/browser/json-schema-store';
import { FileService, FileSystemProviderActivationEvent } from '@theia/filesystem/lib/browser/file-service';
import { PluginCustomEditorRegistry } from '../../main/browser/custom-editors/plugin-custom-editor-registry';
import { NotebookTypeRegistry, NotebookService, NotebookRendererMessagingService } from '@theia/notebook/lib/browser';
import { ApplicationServer } from '@theia/core/lib/common/application-protocol';
import { AbstractHostedPluginSupport, PluginContributions, PluginHost } from '../common/hosted-plugin';
export declare type DebugActivationEvent = 'onDebugResolve' | 'onDebugInitialConfigurations' | 'onDebugAdapterProtocolTracker' | 'onDebugDynamicConfigurations';
export declare const PluginProgressLocation = "plugin";
export declare class HostedPluginSupport extends AbstractHostedPluginSupport<PluginManagerExt, RpcProxy<HostedPluginServer>> {
    protected static ADDITIONAL_ACTIVATION_EVENTS_ENV: string;
    protected static BUILTIN_ACTIVATION_EVENTS: string[];
    protected readonly watcher: HostedPluginWatcher;
    protected readonly contributionHandler: PluginContributionHandler;
    protected readonly preferenceProviderProvider: PreferenceProviderProvider;
    protected readonly preferenceServiceImpl: PreferenceServiceImpl;
    protected readonly workspaceService: WorkspaceService;
    protected readonly notebookService: NotebookService;
    protected readonly notebookRendererMessagingService: NotebookRendererMessagingService;
    protected readonly commands: CommandRegistry;
    protected readonly debugSessionManager: DebugSessionManager;
    protected readonly debugConfigurationManager: DebugConfigurationManager;
    protected readonly fileService: FileService;
    protected readonly fileSearchService: FileSearchService;
    protected readonly appState: FrontendApplicationStateService;
    protected readonly notebookTypeRegistry: NotebookTypeRegistry;
    protected readonly viewRegistry: PluginViewRegistry;
    protected readonly taskProviderRegistry: TaskProviderRegistry;
    protected readonly taskResolverRegistry: TaskResolverRegistry;
    protected readonly taskDefinitionRegistry: TaskDefinitionRegistry;
    protected readonly progressService: ProgressService;
    protected readonly webviewEnvironment: WebviewEnvironment;
    protected readonly widgets: WidgetManager;
    protected readonly terminalService: TerminalService;
    protected readonly jsonSchemaStore: JsonSchemaStore;
    protected readonly customEditorRegistry: PluginCustomEditorRegistry;
    protected readonly applicationServer: ApplicationServer;
    constructor();
    protected init(): void;
    protected createTheiaReadyPromise(): Promise<unknown>;
    protected runOperation(operation: () => Promise<void>): Promise<void>;
    protected afterStart(): void;
    protected acceptPlugin(plugin: DeployedPlugin): boolean;
    protected beforeSyncPlugins(toDisconnect: DisposableCollection): Promise<void>;
    protected beforeLoadContributions(toDisconnect: DisposableCollection): Promise<void>;
    protected afterLoadContributions(toDisconnect: DisposableCollection): Promise<void>;
    protected handleContributions(plugin: DeployedPlugin): Disposable;
    protected handlePluginStarted(manager: PluginManagerExt, plugin: DeployedPlugin): void;
    protected obtainManager(host: string, hostContributions: PluginContributions[], toDisconnect: DisposableCollection): Promise<PluginManagerExt | undefined>;
    protected initRpc(host: PluginHost, pluginId: string): RPCProtocol;
    protected createServerRpc(pluginHostId: string): RPCProtocol;
    protected updateStoragePath(): Promise<void>;
    protected getStoragePath(): Promise<string | undefined>;
    protected getHostGlobalStoragePath(): Promise<string>;
    activateByViewContainer(viewContainerId: string): Promise<void>;
    activateByView(viewId: string): Promise<void>;
    activateByLanguage(languageId: string): Promise<void>;
    activateByCommand(commandId: string): Promise<void>;
    activateByTaskType(taskType: string): Promise<void>;
    activateByCustomEditor(viewType: string): Promise<void>;
    activateByNotebook(viewType: string): Promise<void>;
    activateByNotebookSerializer(viewType: string): Promise<void>;
    activateByNotebookRenderer(rendererId: string): Promise<void>;
    activateByFileSystem(event: FileSystemProviderActivationEvent): Promise<void>;
    activateByTerminalProfile(profileId: string): Promise<void>;
    protected ensureFileSystemActivation(event: FileSystemProviderActivationEvent): void;
    protected ensureCommandHandlerRegistration(event: WillExecuteCommandEvent): void;
    protected ensureTaskActivation(event: WillResolveTaskProvider): void;
    protected ensureDebugActivation(event: WaitUntilEvent, activationEvent?: DebugActivationEvent, debugType?: string): void;
    activateByDebug(activationEvent?: DebugActivationEvent, debugType?: string): Promise<void>;
    protected activateByWorkspaceContains(manager: PluginManagerExt, plugin: DeployedPlugin): Promise<void>;
    protected readonly webviewsToRestore: Map<string, WebviewWidget>;
    protected readonly webviewRevivers: Map<string, (webview: WebviewWidget) => Promise<void>>;
    registerWebviewReviver(viewType: string, reviver: (webview: WebviewWidget) => Promise<void>): void;
    unregisterWebviewReviver(viewType: string): void;
    protected preserveWebviews(): Promise<void>;
    protected preserveWebview(webview: WebviewWidget): void;
    protected restoreWebview(webview: WebviewWidget): Promise<void>;
    protected getDeserializationFailedContents(message: string): string;
}
//# sourceMappingURL=hosted-plugin.d.ts.map