import { UriComponents } from "../../../base/common/uri.js"; import { Event, Emitter } from "../../../base/common/event.js"; import { MainThreadTaskShape, ExtHostTaskShape } from "./extHost.protocol.js"; import * as types from "./extHostTypes.js"; import { IExtHostWorkspaceProvider, IExtHostWorkspace } from "./extHostWorkspace.js"; import type * as vscode from "vscode"; import * as tasks from "@codingame/monaco-vscode-extensions-service-override/vscode/vs/workbench/api/common/shared/tasks"; import { IExtHostDocumentsAndEditors } from "./extHostDocumentsAndEditors.js"; import { IExtHostConfiguration } from "./extHostConfiguration.js"; import { IExtensionDescription } from "../../../platform/extensions/common/extensions.js"; import { IExtHostTerminalService } from "./extHostTerminalService.js"; import { IExtHostRpcService } from "./extHostRpcService.js"; import { IExtHostInitDataService } from "./extHostInitDataService.js"; import { ILogService } from "../../../platform/log/common/log.service.js"; import { IExtHostApiDeprecationService } from "./extHostApiDeprecationService.js"; import { ITaskProblemMatcherStartedDto, ITaskProblemMatcherEndedDto } from "@codingame/monaco-vscode-extensions-service-override/vscode/vs/workbench/api/common/shared/tasks"; export interface IExtHostTask extends ExtHostTaskShape { readonly _serviceBrand: undefined; taskExecutions: vscode.TaskExecution[]; readonly onDidStartTask: Event; readonly onDidEndTask: Event; readonly onDidStartTaskProcess: Event; readonly onDidEndTaskProcess: Event; readonly onDidStartTaskProblemMatchers: Event; readonly onDidEndTaskProblemMatchers: Event; registerTaskProvider(extension: IExtensionDescription, type: string, provider: vscode.TaskProvider): vscode.Disposable; registerTaskSystem(scheme: string, info: tasks.ITaskSystemInfoDTO): void; fetchTasks(filter?: vscode.TaskFilter): Promise; executeTask(extension: IExtensionDescription, task: vscode.Task): Promise; terminateTask(execution: vscode.TaskExecution): Promise; } export declare namespace CustomExecutionDTO { function is(value: tasks.IShellExecutionDTO | tasks.IProcessExecutionDTO | tasks.ICustomExecutionDTO | undefined): value is tasks.ICustomExecutionDTO; function from(value: vscode.CustomExecution): tasks.ICustomExecutionDTO; function to(taskId: string, providedCustomExeutions: Map): types.CustomExecution | undefined; } export declare namespace TaskHandleDTO { function from(value: types.Task, workspaceService?: IExtHostWorkspace): tasks.ITaskHandleDTO; } export declare namespace TaskDTO { function fromMany(tasks: vscode.Task[], extension: IExtensionDescription): tasks.ITaskDTO[]; function from(value: vscode.Task, extension: IExtensionDescription): tasks.ITaskDTO | undefined; function to(value: tasks.ITaskDTO | undefined, workspace: IExtHostWorkspaceProvider, providedCustomExeutions: Map): Promise; } declare class TaskExecutionImpl implements vscode.TaskExecution { #private; readonly _id: string; private readonly _task; private _terminal; constructor(tasks: ExtHostTaskBase, _id: string, _task: vscode.Task); get task(): vscode.Task; terminate(): void; fireDidStartProcess(value: tasks.ITaskProcessStartedDTO): void; fireDidEndProcess(value: tasks.ITaskProcessEndedDTO): void; get terminal(): vscode.Terminal | undefined; set terminal(term: vscode.Terminal | undefined); } export interface HandlerData { type: string; provider: vscode.TaskProvider; extension: IExtensionDescription; } export declare abstract class ExtHostTaskBase implements ExtHostTaskShape, IExtHostTask { readonly _serviceBrand: undefined; protected readonly _proxy: MainThreadTaskShape; protected readonly _workspaceProvider: IExtHostWorkspaceProvider; protected readonly _editorService: IExtHostDocumentsAndEditors; protected readonly _configurationService: IExtHostConfiguration; protected readonly _terminalService: IExtHostTerminalService; protected readonly _logService: ILogService; protected readonly _deprecationService: IExtHostApiDeprecationService; protected _handleCounter: number; protected _handlers: Map; protected _taskExecutions: Map; protected _taskExecutionPromises: Map>; protected _providedCustomExecutions2: Map; private _notProvidedCustomExecutions; protected _activeCustomExecutions2: Map; private _lastStartedTask; protected readonly _onDidExecuteTask: Emitter; protected readonly _onDidTerminateTask: Emitter; protected readonly _onDidTaskProcessStarted: Emitter; protected readonly _onDidTaskProcessEnded: Emitter; protected readonly _onDidStartTaskProblemMatchers: Emitter; protected readonly _onDidEndTaskProblemMatchers: Emitter; constructor(extHostRpc: IExtHostRpcService, initData: IExtHostInitDataService, workspaceService: IExtHostWorkspace, editorService: IExtHostDocumentsAndEditors, configurationService: IExtHostConfiguration, extHostTerminalService: IExtHostTerminalService, logService: ILogService, deprecationService: IExtHostApiDeprecationService); registerTaskProvider(extension: IExtensionDescription, type: string, provider: vscode.TaskProvider): vscode.Disposable; registerTaskSystem(scheme: string, info: tasks.ITaskSystemInfoDTO): void; fetchTasks(filter?: vscode.TaskFilter): Promise; abstract executeTask(extension: IExtensionDescription, task: vscode.Task): Promise; get taskExecutions(): vscode.TaskExecution[]; terminateTask(execution: vscode.TaskExecution): Promise; get onDidStartTask(): Event; $onDidStartTask(execution: tasks.ITaskExecutionDTO, terminalId: number, resolvedDefinition: tasks.ITaskDefinitionDTO): Promise; get onDidEndTask(): Event; $OnDidEndTask(execution: tasks.ITaskExecutionDTO): Promise; get onDidStartTaskProcess(): Event; $onDidStartTaskProcess(value: tasks.ITaskProcessStartedDTO): Promise; get onDidEndTaskProcess(): Event; $onDidEndTaskProcess(value: tasks.ITaskProcessEndedDTO): Promise; get onDidStartTaskProblemMatchers(): Event; $onDidStartTaskProblemMatchers(value: ITaskProblemMatcherStartedDto): Promise; get onDidEndTaskProblemMatchers(): Event; $onDidEndTaskProblemMatchers(value: ITaskProblemMatcherEndedDto): Promise; protected abstract provideTasksInternal(validTypes: { [key: string]: boolean; }, taskIdPromises: Promise[], handler: HandlerData, value: vscode.Task[] | null | undefined): { tasks: tasks.ITaskDTO[]; extension: IExtensionDescription; }; $provideTasks(handle: number, validTypes: { [key: string]: boolean; }): Promise; protected abstract resolveTaskInternal(resolvedTaskDTO: tasks.ITaskDTO): Promise; $resolveTask(handle: number, taskDTO: tasks.ITaskDTO): Promise; abstract $resolveVariables(uriComponents: UriComponents, toResolve: { process?: { name: string; cwd?: string; path?: string; }; variables: string[]; }): Promise<{ process?: string; variables: { [key: string]: string; }; }>; private nextHandle; protected addCustomExecution(taskDTO: tasks.ITaskDTO, task: vscode.Task, isProvided: boolean): Promise; protected getTaskExecution(execution: tasks.ITaskExecutionDTO | string, task?: vscode.Task): Promise; protected checkDeprecation(task: vscode.Task, handler: HandlerData): void; private customExecutionComplete; abstract $jsonTasksSupported(): Promise; abstract $findExecutable(command: string, cwd?: string | undefined, paths?: string[] | undefined): Promise; } export declare class WorkerExtHostTask extends ExtHostTaskBase { constructor(extHostRpc: IExtHostRpcService, initData: IExtHostInitDataService, workspaceService: IExtHostWorkspace, editorService: IExtHostDocumentsAndEditors, configurationService: IExtHostConfiguration, extHostTerminalService: IExtHostTerminalService, logService: ILogService, deprecationService: IExtHostApiDeprecationService); executeTask(extension: IExtensionDescription, task: vscode.Task): Promise; protected provideTasksInternal(validTypes: { [key: string]: boolean; }, taskIdPromises: Promise[], handler: HandlerData, value: vscode.Task[] | null | undefined): { tasks: tasks.ITaskDTO[]; extension: IExtensionDescription; }; protected resolveTaskInternal(resolvedTaskDTO: tasks.ITaskDTO): Promise; $resolveVariables(uriComponents: UriComponents, toResolve: { process?: { name: string; cwd?: string; path?: string; }; variables: string[]; }): Promise<{ process?: string; variables: { [key: string]: string; }; }>; $jsonTasksSupported(): Promise; $findExecutable(command: string, cwd?: string | undefined, paths?: string[] | undefined): Promise; } export declare const IExtHostTask: import("../../../platform/instantiation/common/instantiation.js").ServiceIdentifier; export {};