import { Injector } from '@opensumi/di';
import { IRPCProtocol } from '@opensumi/ide-connection';
import { IExtension } from '../../common';
export declare class KaitianBrowserCommand {
    private rpcProtocol?;
    private readonly monacoCommandService;
    private readonly commandRegistry;
    private readonly logger;
    private readonly proxy?;
    constructor(rpcProtocol?: IRPCProtocol | undefined);
    /**
     * @param id commandid
     * @param extension 插件
     * @param args 参数
     * **允许前端调用的** command 都会注册到 commandRegistry
     * commandRegistry 不存在的 command，表示没有注册或该 command 是通过 extHost 配置的内置命令
     * command 在 commandRegistry 已注册，则优先通过 extHostCommand 调用，这样即可在插件进程执行鉴权逻辑
     * 否则仅在前端鉴权后执行，对于没有后端或没有 extHost 的情况下，满足执行前端命令的需求
     */
    executeCommand<T>(id: string, extension: IExtension, ...args: any[]): Promise<T | undefined>;
}
export declare function createBrowserCommandsApiFactory(injector: Injector, extension: IExtension, rpcProtocol?: IRPCProtocol): {
    executeCommand<T>(command: string, ...args: any): Promise<T | undefined>;
};
//# sourceMappingURL=commands.d.ts.map