import { Injector } from '@opensumi/di';
import { SumiConnectionMultiplexer } from '@opensumi/ide-connection';
import { Emitter, IExtensionProps } from '@opensumi/ide-core-common';
import { IExtensionWorkerHost } from '../common';
import { ActivatedExtensionJSON } from '../common/activator';
import { ExtHostSecret } from './api/vscode/ext.host.secrets';
import { ExtHostStorage } from './api/vscode/ext.host.storage';
import { ExtensionLogger } from './extension-log';
import { KTWorkerExtension } from './vscode.extension';
export declare function initRPCProtocol(): SumiConnectionMultiplexer;
export declare class ExtensionWorkerHost implements IExtensionWorkerHost {
    private rpcProtocol;
    private injector;
    private extensions;
    private sumiAPIFactory;
    private sumiExtAPIImpl;
    logger: ExtensionLogger;
    private initDeferred;
    private activatedExtensions;
    private mainThreadExtensionService;
    readonly extensionsChangeEmitter: Emitter<void>;
    staticServicePath: string;
    storage: ExtHostStorage;
    secret: ExtHostSecret;
    private reporterService;
    constructor(rpcProtocol: SumiConnectionMultiplexer, injector: Injector);
    $getActivatedExtensions(): Promise<ActivatedExtensionJSON[]>;
    private init;
    getExtensionExports(id: string): import("../common/activator").IExtensionAPI | undefined;
    getExtensions(): KTWorkerExtension[];
    createExtension(extensionDescription: IExtensionProps): KTWorkerExtension<import("../common/activator").IExtensionAPI>;
    getExtension(extensionId: string): KTWorkerExtension<import("../common/activator").IExtensionAPI> | undefined;
    isActivated(id: string): boolean;
    static workerApiNamespace: string[];
    $updateExtHostData(): Promise<void>;
    private _extHostErrorStackTraceExtended;
    private extendExtHostErrorStackTrace;
    private reportRuntimeError;
    private findExtensionFormScriptPath;
    private getExtendModuleProxy;
    private getExtensionViewModuleProxy;
    private registerExtendModuleService;
    private loadContext;
    $activateExtension(id: string): Promise<void>;
    activateExtension(id: string): Promise<void>;
}
//# sourceMappingURL=worker.host.d.ts.map