import type { Terminal as RawXtermTerminal } from "@xterm/xterm"; import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle"; import { IContextKeyService } from "@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey.service"; import { IInstantiationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation"; import { IChatCodeBlockContextProviderService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat.service"; import { ITerminalContribution, ITerminalInstance, IXtermTerminal } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/terminal/browser/terminal"; import { ITerminalService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/terminal/browser/terminal.service"; import { TerminalChatWidget } from "./terminalChatWidget.js"; import type { ITerminalContributionContext } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/terminal/browser/terminalExtensions"; import { IChatEntitlementService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/chat/common/chatEntitlementService.service"; export declare class TerminalChatController extends Disposable implements ITerminalContribution { private readonly _ctx; private readonly _contextKeyService; private readonly _instantiationService; private readonly _terminalService; static readonly ID = "terminal.chat"; static get(instance: ITerminalInstance): TerminalChatController | null; /** * The chat widget for the controller, this is lazy as we don't want to instantiate it until * both it's required and xterm is ready. */ private _terminalChatWidget; /** * The terminal chat widget for the controller, this will be undefined if xterm is not ready yet (ie. the * terminal is still initializing). This wraps the inline chat widget. */ get terminalChatWidget(): TerminalChatWidget | undefined; private _lastResponseContent; get lastResponseContent(): string | undefined; get scopedContextKeyService(): IContextKeyService; constructor(_ctx: ITerminalContributionContext, chatCodeBlockContextProviderService: IChatCodeBlockContextProviderService, chatEntitlementService: IChatEntitlementService, _contextKeyService: IContextKeyService, _instantiationService: IInstantiationService, _terminalService: ITerminalService); xtermReady(xterm: IXtermTerminal & { raw: RawXtermTerminal; }): void; private _forcedPlaceholder; private _updatePlaceholder; private _getPlaceholderText; setPlaceholder(text: string): void; resetPlaceholder(): void; updateInput(text: string, selectAll?: boolean): void; focus(): void; hasFocus(): boolean; viewInChat(): Promise; }