import { CancellationToken } from "../../../../base/common/cancellation.js"; import { IObservable } from "../../../../base/common/observable.js"; import { URI } from "../../../../base/common/uri.js"; import { AICustomizationManagementSection, IStorageSourceFilter } from "@codingame/monaco-vscode-chat-service-override/vscode/vs/workbench/contrib/chat/common/aiCustomizationWorkspaceService"; import { PromptsType } from "./promptSyntax/promptTypes.js"; import { IChatPromptSlashCommand } from "./promptSyntax/service/promptsService.js"; export declare const IAICustomizationWorkspaceService: import("../../../../platform/instantiation/common/instantiation.js").ServiceIdentifier; /** * Provides workspace context for AI Customization views. */ export interface IAICustomizationWorkspaceService { readonly _serviceBrand: undefined; /** * Observable that fires when the active project root changes. */ readonly activeProjectRoot: IObservable; /** * Returns the current active project root, if any. */ getActiveProjectRoot(): URI | undefined; /** * The sections to show in the AI Customization Management Editor sidebar. */ readonly managementSections: readonly AICustomizationManagementSection[]; /** * Returns the storage source filter for a given customization type. * Controls which storage groups and user file roots are visible. */ getStorageSourceFilter(type: PromptsType): IStorageSourceFilter; /** * Whether this is a sessions window (vs core VS Code). */ readonly isSessionsWindow: boolean; /** * Commits files in the active project. */ commitFiles(projectRoot: URI, fileUris: URI[]): Promise; /** * Commits the deletion of resources that have already been removed from disk. * The URIs may point to individual files or to directories (for example, when * deleting a skill, the entire customization folder is removed). Implementations * should ensure that directory deletions are handled recursively as needed. * In sessions this stages and commits the removal in the relevant repositories. */ deleteFiles(projectRoot: URI, fileUris: URI[]): Promise; /** * Launches the AI-guided creation flow for the given customization type. */ generateCustomization(type: PromptsType): Promise; /** * Whether a transient project root override is currently active. */ readonly hasOverrideProjectRoot: IObservable; /** * Sets a transient override for the active project root. * While set, `activeProjectRoot` returns this value instead of the * session- or workspace-derived root. Call `clearOverrideProjectRoot()` to revert. */ setOverrideProjectRoot(root: URI): void; /** * Clears the transient project root override, reverting to the * session-derived (or workspace-derived) root. */ clearOverrideProjectRoot(): void; /** * Returns prompt/skill slash commands filtered through the workspace * service's storage source policy, ensuring the results match the * customizations visible in the AI Customization views. */ getFilteredPromptSlashCommands(token: CancellationToken): Promise; }