import { IRPCProtocol } from '@opensumi/ide-connection'; import { IReporter, ReporterService } from '@opensumi/ide-core-common'; import { IExtensionHostService, IExtensionWorkerHost } from '../../../common'; import { SumiApiExtenders } from '../../../common/sumi'; import { IExtensionDescription } from '../../../common/vscode'; export declare function createAPIFactory(rpcProtocol: IRPCProtocol, extensionService: IExtensionHostService | IExtensionWorkerHost, type: string, reporterEmitter: IReporter, sumiApiExtenders?: SumiApiExtenders): (extension: IExtensionDescription) => { layout: { toggleBottomPanel: (size?: number) => Promise; toggleLeftPanel: (size?: number) => Promise; toggleRightPanel: (size?: number) => Promise; showRightPanel: (size?: number) => Promise; hideRightPanel: () => Promise; activatePanel: (id: any) => Promise; isBottomPanelVisible: () => Promise; isLeftPanelVisible: () => Promise; isRightPanelVisible: () => Promise; getTabbarHandler: (id: string) => import("../../../common/sumi/layout").ITabbarHandler; getExtensionTabbarHandler: (id: string, extensionId?: string) => import("../../../common/sumi/layout").ITabbarHandler; }; ideWindow: { reloadWindow: () => Promise; createWebviewWindow: (webviewId: string, options?: import("../../../common/sumi/window").IIDEWindowWebviewOptions, env?: import("../../../common/sumi/window").IIDEWindowWebviewEnv) => Promise; }; webview: { getPlainWebviewHandle: (id: string) => import("./ext.host.webview").PlainWebviewHandle; createPlainWebview: (title: string, iconPath?: string) => import("./ext.host.webview").ExtHostPlainWebview; }; lifecycle: { setExtensionDir: (dir: string) => void; setExtensionCandidate: (exts: import("@opensumi/ide-core-common").ExtensionCandidate[]) => void; }; theme: { getThemeColors: (dir: string) => Promise<{ [key: string]: string; }>; onThemeChanged: import("@opensumi/ide-core-common").Event; }; event: { fire: (eventName: string, ...eventArgs: any[]) => Promise; subscribe: (eventName: string, listener: (...eventArgs: any[]) => any) => import("@opensumi/ide-core-common").IDisposable; }; reporter: ReporterService; commands: { registerCommandWithPermit(id: string, handler: import("../../../common/vscode").Handler, isPermitted: import("../../../common/vscode").PermittedHandler): import("../worker/worker.ext-types").Disposable; registerCommand(command: string, callback: (...args: any[]) => any, thisArg?: any): import("vscode").Disposable; executeCommand(command: string, ...rest: any[]): Thenable; getCommands(filterInternal?: boolean): Thenable; registerTextEditorCommand(command: string, callback: (textEditor: import("vscode").TextEditor, edit: import("vscode").TextEditorEdit, ...args: any[]) => void, thisArg?: any): import("vscode").Disposable; registerDiffInformationCommand(command: string, callback: (diff: import("vscode").LineChange[], ...args: any[]) => any, thisArg?: any): import("vscode").Disposable; }; toolbar: { registerToolbarAction: (contribution: import("../../../browser/sumi/types").IToolbarButtonContribution | import("../../../browser/sumi/types").IToolbarSelectContribution | import("../../../browser/sumi/types").IToolbarDropdownButtonContribution) => Promise | import("../../../common/sumi/toolbar").IToolbarDropdownButtonActionHandle>; getToolbarActionButtonHandle: (id: any) => Promise; getToolbarActionSelectHandle: (id: any) => Promise>; getToolbarActionDropdownButtonHandle: (id: any) => Promise>; }; chat: { createChatAgent(name: string, handler: import("sumi").ChatAgentHandler): import("sumi").ChatAgent; sendMessage(chunk: import("vscode").ChatAgentContent): void; createInlineChatAgent(name: string, handler: import("sumi").ChatAgentHandler): import("sumi").InlineChatAgent; }; }; //# sourceMappingURL=ext.host.api.impl.d.ts.map