import type { ITerminalAddon, Terminal } from "@xterm/xterm"; import { Disposable, IReference } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle"; import { ITerminalCompletionProvider, type TerminalCompletionList } from "./terminalCompletionService.js"; import type { CancellationToken } from "@codingame/monaco-vscode-api/vscode/vs/base/common/cancellation"; import { ITerminalCompletion, TerminalCompletionItemKind } from "./terminalCompletionItem.js"; import { IResolvedTextEditorModel } from "@codingame/monaco-vscode-model-service-override/vscode/vs/editor/common/services/resolverService"; import { CompletionItemLabel, CompletionItemProvider } from "@codingame/monaco-vscode-api/vscode/vs/editor/common/languages"; import { LspTerminalModelContentProvider } from "./lspTerminalModelContentProvider.js"; import { MarkdownString } from "@codingame/monaco-vscode-api/vscode/vs/base/common/htmlContent"; import { TerminalShellType } from "@codingame/monaco-vscode-api/vscode/vs/platform/terminal/common/terminal"; export declare class LspCompletionProviderAddon extends Disposable implements ITerminalAddon, ITerminalCompletionProvider { readonly id = "lsp"; readonly isBuiltin = true; readonly triggerCharacters?: string[]; private _provider; private _textVirtualModel; private _lspTerminalModelContentProvider; readonly shellTypes: TerminalShellType[]; constructor(provider: CompletionItemProvider, textVirtualModel: IReference, lspTerminalModelContentProvider: LspTerminalModelContentProvider); activate(terminal: Terminal): void; provideCompletions(value: string, cursorPosition: number, token: CancellationToken): Promise | undefined>; } export declare function createCompletionItemPython(cursorPosition: number, prefix: string, kind: TerminalCompletionItemKind, label: string | CompletionItemLabel, detail: string | undefined): TerminalCompletionItem; export interface TerminalCompletionItem { /** * The label of the completion. */ label: string | CompletionItemLabel; /** * Selection range (inclusive start, exclusive end) to replace when this completion is applied. */ replacementRange: readonly [ number, number ] | undefined; /** * The completion's detail which appears on the right of the list. */ detail?: string; /** * A human-readable string that represents a doc-comment. */ documentation?: string | MarkdownString; /** * The completion's kind. Note that this will map to an icon. */ kind?: TerminalCompletionItemKind; }