import type { ITerminalAddon, Terminal } from "@xterm/xterm"; import { Event } from "@codingame/monaco-vscode-api/vscode/vs/base/common/event"; import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle"; import { IConfigurationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service"; import { IContextKey } from "@codingame/monaco-vscode-api/vscode/vs/platform/contextkey/common/contextkey"; import { IInstantiationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation"; import { type ITerminalCapabilityStore } from "@codingame/monaco-vscode-api/vscode/vs/platform/terminal/common/capabilities/capabilities"; import { ISimpleSelectedSuggestion } from "../../../../services/suggest/browser/simpleSuggestWidget.js"; import { ITerminalCompletionService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/terminalContrib/suggest/browser/terminalCompletionService.service"; import { TerminalShellType } from "@codingame/monaco-vscode-api/vscode/vs/platform/terminal/common/terminal"; import { ITerminalLogService } from "@codingame/monaco-vscode-api/vscode/vs/platform/terminal/common/terminal.service"; import { ITerminalConfigurationService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/terminal/browser/terminal.service"; import { TerminalCompletionItem } from "./terminalCompletionItem.js"; export interface ISuggestController { isPasting: boolean; selectPreviousSuggestion(): void; selectPreviousPageSuggestion(): void; selectNextSuggestion(): void; selectNextPageSuggestion(): void; acceptSelectedSuggestion(suggestion?: Pick, "item" | "model">): void; hideSuggestWidget(cancelAnyRequests: boolean, wasClosedByUser?: boolean): void; } export declare function isInlineCompletionSupported(shellType: TerminalShellType | undefined): boolean; export declare class SuggestAddon extends Disposable implements ITerminalAddon, ISuggestController { private readonly _sessionId; private readonly _capabilities; private readonly _terminalSuggestWidgetVisibleContextKey; private readonly _terminalCompletionService; private readonly _configurationService; private readonly _instantiationService; private readonly _terminalConfigurationService; private readonly _logService; private _terminal?; private _promptInputModel?; private readonly _promptInputModelSubscriptions; private _mostRecentPromptInputState?; private _currentPromptInputState?; private _model?; private _container?; private _screen?; private _suggestWidget?; private _cachedFontInfo; private _enableWidget; private _pathSeparator; private _isFilteringDirectories; private _leadingLineContent?; private _cursorIndexDelta; private _requestedCompletionsIndex; private _lastUserData?; static lastAcceptedCompletionTimestamp: number; private _lastUserDataTimestamp; private _cancellationTokenSource; private _discoverability; private _currentSuggestionDetails?; private _focusedItem?; private _ignoreFocusEvents; private _requestCompletionsOnNextSync; isPasting: boolean; shellType: TerminalShellType | undefined; private readonly _shellTypeInit; private readonly _onBell; readonly onBell: Event; private readonly _onAcceptedCompletion; readonly onAcceptedCompletion: Event; private readonly _onDidReceiveCompletions; readonly onDidReceiveCompletions: Event; private readonly _onDidFontConfigurationChange; readonly onDidFontConfigurationChange: Event; private _kindToIconMap; private _kindToKindLabelMap; private readonly _inlineCompletion; private readonly _inlineCompletionItem; private _shouldSyncWhenReady; private _suggestTelemetry; private _completionRequestTimestamp; constructor(_sessionId: string, shellType: TerminalShellType | undefined, _capabilities: ITerminalCapabilityStore, _terminalSuggestWidgetVisibleContextKey: IContextKey, _terminalCompletionService: ITerminalCompletionService, _configurationService: IConfigurationService, _instantiationService: IInstantiationService, _terminalConfigurationService: ITerminalConfigurationService, _logService: ITerminalLogService); activate(xterm: Terminal): void; private _handleCompletionProviders; setContainerWithOverflow(container: HTMLElement): void; setScreen(screen: HTMLElement): void; toggleExplainMode(): void; toggleSuggestionFocus(): void; toggleSuggestionDetails(): void; resetWidgetSize(): void; requestCompletions(explicitlyInvoked?: boolean): Promise; private _addPropertiesToInlineCompletionItem; private _requestTriggerCharQuickSuggestCompletions; private _checkProviderTriggerCharacters; private _wasLastInputRightArrowKey; private _wasLastInputVerticalArrowKey; /** * Whether the last input included the escape character. Typically this will mean it was more * than just a simple character, such as arrow keys, home, end, etc. */ private _wasLastInputIncludedEscape; private _wasLastInputArrowKey; private _wasLastInputTabKey; private _sync; private _refreshInlineCompletion; private _getTerminalDimensions; private _getCursorPosition; private _getFontInfo; private _getAdvancedExplainModeDetails; private _showCompletions; private _ensureSuggestWidget; private _updateDiscoverabilityState; resetDiscoverability(): void; selectPreviousSuggestion(): void; selectPreviousPageSuggestion(): void; selectNextSuggestion(): void; selectNextPageSuggestion(): void; acceptSelectedSuggestion(suggestion?: Pick, "item" | "model">, respectRunOnEnter?: boolean): void; hideSuggestWidget(cancelAnyRequest: boolean): void; private _relayoutOnResize; } export declare function normalizePathSeparator(path: string, sep: string): string;