import { RPCService } from '@opensumi/ide-connection';
import { ICreateProcessOptions, IExtensionMetaData, IExtensionNodeClientService, IExtraMetaData } from '../common';
export declare const DEFAULT_NLS_CONFIG_DIR: string;
interface IRPCExtensionService {
    $processNotExist(id: string): Promise<string>;
    $processCrashRestart(id: string): void;
    $restartExtProcess(): void;
}
export declare class ExtensionServiceClientImpl extends RPCService<IRPCExtensionService> implements IExtensionNodeClientService {
    private extensionService;
    private fileService;
    private readonly hashCalculateService;
    private readonly appConfig;
    private readonly logger;
    private clientId;
    private languagePackCache;
    setConnectionClientId(clientId: string): void;
    getOpenVSXRegistry(): Promise<string>;
    pid(): Promise<number | null>;
    infoProcessNotExist(): Promise<boolean> | undefined;
    restartExtProcessByClient(): void;
    infoProcessCrash(): void;
    getElectronMainThreadListenPath(clientId: string): Promise<string>;
    /**
     * 创建插件进程
     *
     * @param clientId 客户端 id
     * @param options 创建插件参数
     */
    createProcess(clientId: string, options: ICreateProcessOptions): Promise<void>;
    /**
     * 获取插件信息
     *
     * @param extensionPath 插件路径
     * @param extraMetaData 补充数据
     */
    getExtension(extensionPath: string, localization: string, extraMetaData?: IExtraMetaData): Promise<IExtensionMetaData | undefined>;
    /**
     * 获取所有插件
     *
     * @param scan 插件存放目录
     * @param extensionCandidate 执行插件目录
     * @param extraMetaData 扫描数据字段
     */
    getAllExtensions(scan: string[], extensionCandidate: string[], localization: string, extraMetaData: IExtraMetaData): Promise<IExtensionMetaData[]>;
    disposeClientExtProcess(clientId: string, info?: boolean): Promise<void>;
    /**
     * 将 packageJson 中声明的语言信息转换
     * @param packageJson package.json
     * @param languagePackPath language pack path
     */
    private convertLanguagePack;
    setupNLSConfig(languageId: string, storagePath: string): Promise<void>;
    updateLanguagePack(languageId: string, languagePack: string, storagePath: string): Promise<void>;
    getLanguagePack(languageId: string): Promise<import("../common/vscode").IExtensionLanguagePack | undefined>;
}
export {};
//# sourceMappingURL=extension.service.client.d.ts.map