import { DisposableStore } 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 { IInstantiationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation"; import { ITunnelService } from "@codingame/monaco-vscode-api/vscode/vs/platform/tunnel/common/tunnel.service"; import { ITerminalLinkResolver, OmitFirstArg } from "./links.js"; import { TerminalLink } from "./terminalLink.js"; import { ITerminalExternalLinkProvider } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/terminal/browser/terminal"; import { ITerminalConfigurationService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/terminal/browser/terminal.service"; import { TerminalWidgetManager } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/terminal/browser/widgets/widgetManager"; import { ITerminalCapabilityStore } from "@codingame/monaco-vscode-api/vscode/vs/platform/terminal/common/capabilities/capabilities"; import { ITerminalProcessInfo } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/terminal/common/terminal"; import type { ILink, Terminal } from "@xterm/xterm"; import { ITerminalLogService } from "@codingame/monaco-vscode-api/vscode/vs/platform/terminal/common/terminal.service"; import { INotificationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/notification/common/notification.service"; import { ITelemetryService } from "@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry.service"; export type XtermLinkMatcherHandler = (event: MouseEvent | undefined, link: string) => Promise; /** * An object responsible for managing registration of link matchers and link providers. */ export declare class TerminalLinkManager extends DisposableStore { private readonly _xterm; private readonly _processInfo; private readonly _linkResolver; private readonly _configurationService; private readonly _instantiationService; private readonly _telemetryService; private readonly _logService; private readonly _tunnelService; private _widgetManager; private readonly _standardLinkProviders; private readonly _linkProvidersDisposables; private readonly _externalLinkProviders; private readonly _openers; private readonly _linkHoverInvalidationDisposable; externalProvideLinksCb?: OmitFirstArg; constructor(_xterm: Terminal, _processInfo: ITerminalProcessInfo, capabilities: ITerminalCapabilityStore, _linkResolver: ITerminalLinkResolver, _configurationService: IConfigurationService, _instantiationService: IInstantiationService, notificationService: INotificationService, _telemetryService: ITelemetryService, terminalConfigurationService: ITerminalConfigurationService, _logService: ITerminalLogService, _tunnelService: ITunnelService); private _setupLinkDetector; private _openLink; openRecentLink(type: "localFile" | "url"): Promise; getLinks(): Promise<{ viewport: IDetectedLinks; all: Promise; }>; private _getLinksForLine; protected _getLinksForType(y: number, type: "word" | "url" | "localFile" | "localFolder"): Promise; private _tooltipCallback; private _showHover; setWidgetManager(widgetManager: TerminalWidgetManager): void; private _clearLinkProviders; private _registerStandardLinkProviders; protected _isLinkActivationModifierDown(event: MouseEvent): boolean; private _getLinkHoverString; } export interface ILineColumnInfo { lineNumber: number; columnNumber: number; } export interface IDetectedLinks { wordLinks?: ILink[]; webLinks?: ILink[]; fileLinks?: (ILink | TerminalLink)[]; folderLinks?: ILink[]; }