import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle"; import { IModelService } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/services/model.service"; import { ILanguageService } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/languages/language.service"; import { ITextModelContentProvider } from "@codingame/monaco-vscode-model-service-override/vscode/vs/editor/common/services/resolverService"; import { ITextModelService } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/services/resolverService.service"; import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri"; import { ITextModel } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/model"; import { ITerminalCapabilityStore } from "@codingame/monaco-vscode-api/vscode/vs/platform/terminal/common/capabilities/capabilities"; import { TerminalShellType } from "@codingame/monaco-vscode-api/vscode/vs/platform/terminal/common/terminal"; export interface ILspTerminalModelContentProvider extends ITextModelContentProvider { setContent(content: string): void; dispose(): void; } export declare class LspTerminalModelContentProvider extends Disposable implements ILspTerminalModelContentProvider, ITextModelContentProvider { private readonly _modelService; private readonly _languageService; static readonly scheme = "vscode-terminal"; private _commandDetection; private _capabilitiesStore; private readonly _virtualTerminalDocumentUri; private _shellType; private readonly _onCommandFinishedListener; constructor(capabilityStore: ITerminalCapabilityStore, terminalId: number, virtualTerminalDocument: URI, shellType: TerminalShellType | undefined, textModelService: ITextModelService, _modelService: IModelService, _languageService: ILanguageService); shellTypeChanged(shellType: TerminalShellType | undefined): void; /** * Sets or updates content for a terminal virtual document. * This is when user has executed succesful command in terminal. * Transfer the content to virtual document, and relocate delimiter to get terminal prompt ready for next prompt. */ setContent(content: string): void; /** * Real-time conversion of terminal input to virtual document happens here. * This is when user types in terminal, and we want to track the input. * We want to track the input and update the virtual document. * Note: This is for non-executed command. */ trackPromptInputToVirtualFile(content: string): void; private _registerTerminalCommandFinishedListener; provideTextContent(resource: URI): Promise; } /** * Creates a terminal language virtual URI. */ export declare function createTerminalLanguageVirtualUri(terminalId: number, languageExtension: string): URI;