import { Injector } from '@opensumi/di';
import { SumiConnectionMultiplexer } from '@opensumi/ide-connection';
import { Emitter, IExtensionLogger, IExtensionProps } from '@opensumi/ide-core-common';
import { IExtensionHostService } from '../common';
import { ActivatedExtensionJSON, ExtensionsActivator } from '../common/activator';
import { IExtensionDescription } from '../common/vscode';
import { ExtHostLocalization } from './api/vscode/ext.host.localization';
import { ExtHostSecret } from './api/vscode/ext.host.secrets';
import { ExtHostStorage } from './api/vscode/ext.host.storage';
import { KTExtension } from './vscode.extension';
export default class ExtensionHostServiceImpl implements IExtensionHostService {
    logger: IExtensionLogger;
    private extensions;
    private rpcProtocol;
    extensionsActivator: ExtensionsActivator;
    storage: ExtHostStorage;
    secret: ExtHostSecret;
    localization: ExtHostLocalization;
    readonly extensionsChangeEmitter: Emitter<void>;
    private vscodeAPIImpl;
    private openSumiAPIImpl;
    private telemetryAPIImpl;
    private reporterService;
    private extensionErrors;
    constructor(rpcProtocol: SumiConnectionMultiplexer, logger: IExtensionLogger, injector: Injector);
    /**
     * 收集插件未捕获异常
     * @param error
     */
    reportUnexpectedError(error: Error): void;
    $getActivatedExtensions(): Promise<ActivatedExtensionJSON[]>;
    $getExtensions(): IExtensionDescription[];
    close(): Promise<void>;
    init(): Promise<void>;
    getExtensions(): KTExtension[];
    private _extHostErrorStackTraceExtended;
    private extendExtHostErrorStackTrace;
    $updateExtHostData(): Promise<void>;
    $fireChangeEvent(): Promise<void>;
    createExtension(extensionDescription: IExtensionProps): KTExtension<any>;
    getExtension(extensionId: string): KTExtension<any> | undefined;
    private findExtension;
    private lookup;
    private defineAPI;
    getExtensionExports(extensionId: string): import("../common/activator").IExtensionAPI | undefined;
    getExtendExports(extensionId: string): import("../common/activator").IExtendExportAPI | undefined;
    private containsSumiContributes;
    isActivated(extensionId: string): boolean;
    private reportRuntimeError;
    activateExtension(id: string): Promise<void>;
    private getExtensionViewModuleProxy;
    /**
     * @example
     * "sumiContributes": {
     *  "viewsProxies": ["ViewComponentID"],
     * }
     */
    private getExtendModuleProxy;
    private registerExtendModuleService;
    $activateExtension(id: string): Promise<void>;
    private loadExtensionContext;
}
//# sourceMappingURL=ext.host.d.ts.map