import type { ITerminalAddon } from "@xterm/headless"; import { Emitter, Event } from "@codingame/monaco-vscode-api/vscode/vs/base/common/event"; import { Disposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle"; import { ITerminalCapabilityStore, ITerminalCommand } from "@codingame/monaco-vscode-api/vscode/vs/platform/terminal/common/capabilities/capabilities"; import { IAction } from "@codingame/monaco-vscode-api/vscode/vs/base/common/actions"; import { IConfigurationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/configuration/common/configuration.service"; import { IOpenerService } from "@codingame/monaco-vscode-api/vscode/vs/platform/opener/common/opener.service"; import type { Terminal } from "@xterm/xterm"; import { ITelemetryService } from "@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry.service"; import { IExtensionService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensions/common/extensions.service"; import { IAccessibilitySignalService } from "@codingame/monaco-vscode-api/vscode/vs/platform/accessibilitySignal/browser/accessibilitySignalService.service"; import { IActionWidgetService } from "@codingame/monaco-vscode-api/vscode/vs/platform/actionWidget/browser/actionWidget.service"; import { ILabelService } from "@codingame/monaco-vscode-api/vscode/vs/platform/label/common/label.service"; import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri"; import { ITerminalQuickFixResolvedExtensionOptions, ITerminalQuickFix, ITerminalQuickFixOptions, TerminalQuickFixType } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/terminalContrib/quickFix/browser/quickFix"; import { ITerminalQuickFixService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/terminalContrib/quickFix/browser/quickFix.service"; import { ITerminalCommandSelector } from "@codingame/monaco-vscode-api/vscode/vs/platform/terminal/common/terminal"; import { ICommandService } from "@codingame/monaco-vscode-api/vscode/vs/platform/commands/common/commands.service"; import { type SingleOrMany } from "@codingame/monaco-vscode-api/vscode/vs/base/common/types"; export interface ITerminalQuickFixAddon { readonly onDidRequestRerunCommand: Event<{ command: string; shouldExecute?: boolean; }>; readonly onDidUpdateQuickFixes: Event<{ command: ITerminalCommand; actions: ITerminalAction[] | undefined; }>; showMenu(): void; /** * Registers a listener on onCommandFinished scoped to a particular command or regular * expression and provides a callback to be executed for commands that match. */ registerCommandFinishedListener(options: ITerminalQuickFixOptions): void; } export declare class TerminalQuickFixAddon extends Disposable implements ITerminalAddon, ITerminalQuickFixAddon { private readonly _sessionId; private readonly _aliases; private readonly _capabilities; private readonly _accessibilitySignalService; private readonly _actionWidgetService; private readonly _commandService; private readonly _configurationService; private readonly _extensionService; private readonly _labelService; private readonly _openerService; private readonly _telemetryService; private readonly _quickFixService; private _terminal; private _commandListeners; private _quickFixes; private readonly _decoration; private readonly _decorationDisposables; private _currentRenderContext; private _lastQuickFixId; private readonly _registeredSelectors; private _didRun; private readonly _onDidRequestRerunCommand; readonly onDidRequestRerunCommand: Event<{ command: string; shouldExecute?: boolean; }>; private readonly _onDidUpdateQuickFixes; readonly onDidUpdateQuickFixes: Event<{ command: ITerminalCommand; actions: ITerminalAction[] | undefined; }>; constructor(_sessionId: string, _aliases: string[][] | undefined, _capabilities: ITerminalCapabilityStore, _accessibilitySignalService: IAccessibilitySignalService, _actionWidgetService: IActionWidgetService, _commandService: ICommandService, _configurationService: IConfigurationService, _extensionService: IExtensionService, _labelService: ILabelService, _openerService: IOpenerService, _telemetryService: ITelemetryService, _quickFixService: ITerminalQuickFixService); activate(terminal: Terminal): void; showMenu(): void; registerCommandSelector(selector: ITerminalCommandSelector): void; registerCommandFinishedListener(options: ITerminalQuickFixOptions | ITerminalQuickFixResolvedExtensionOptions): void; private _registerCommandHandlers; /** * Resolves quick fixes, if any, based on the * @param command & its output */ private _resolveQuickFixes; private _disposeQuickFix; /** * Registers a decoration with the quick fixes */ private _registerQuickFixDecoration; } export interface ITerminalAction extends IAction { type: TerminalQuickFixType; kind?: "fix" | "explain"; source: string; uri?: URI; command?: string; shouldExecute?: boolean; } export declare function getQuickFixesForCommand(aliases: string[][] | undefined, terminal: Terminal, terminalCommand: ITerminalCommand, quickFixOptions: Map, commandService: ICommandService, openerService: IOpenerService, labelService: ILabelService, onDidRequestRerunCommand?: Emitter<{ command: string; shouldExecute?: boolean; }>, getResolvedFixes?: (selector: ITerminalQuickFixOptions, lines?: string[]) => Promise | undefined>): Promise;