import { IObservable } from "../../../../base/common/observable.js"; import { URI } from "../../../../base/common/uri.js"; import { IActiveSessionItem } from "@codingame/monaco-vscode-chat-service-override/vscode/vs/sessions/contrib/sessions/browser/sessionsManagementService"; import { ITaskEntry, TaskStorageTarget } from "@codingame/monaco-vscode-chat-service-override/vscode/vs/sessions/contrib/chat/browser/sessionsConfigurationService"; export interface ISessionsConfigurationService { readonly _serviceBrand: undefined; /** * Observable list of tasks with `inSessions: true`, automatically * updated when the tasks.json file changes. */ getSessionTasks(session: IActiveSessionItem): IObservable; /** * Returns tasks that do NOT have `inSessions: true` — used as * suggestions in the "Add Run Action" picker. */ getNonSessionTasks(session: IActiveSessionItem): Promise; /** * Sets `inSessions: true` on an existing task (identified by label), * updating it in place in its tasks.json. */ addTaskToSessions(task: ITaskEntry, session: IActiveSessionItem, target: TaskStorageTarget): Promise; /** * Creates a new shell task with `inSessions: true` and writes it to * the appropriate tasks.json (user or workspace). */ createAndAddTask(command: string, session: IActiveSessionItem, target: TaskStorageTarget): Promise; /** * Runs a task entry in a terminal, resolving the correct platform * command and using the session worktree as cwd. */ runTask(task: ITaskEntry, session: IActiveSessionItem): Promise; /** * Observable label of the most recently run task for the given repository. */ getLastRunTaskLabel(repository: URI | undefined): IObservable; } export declare const ISessionsConfigurationService: import("../../../../platform/instantiation/common/instantiation.js").ServiceIdentifier;