import { IAICustomizationWorkspaceService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/aiCustomizationWorkspaceService.service"; import { IChatWidgetService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/chat.service"; import { IChatService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/chatService/chatService.service"; import { PromptsType } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes"; import { IPromptsService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService.service"; import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri"; import { ICommandService } from "@codingame/monaco-vscode-api/vscode/vs/platform/commands/common/commands.service"; import { IQuickInputService } from "@codingame/monaco-vscode-api/vscode/vs/platform/quickinput/common/quickInput.service"; import { ICustomizationHarnessService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/customizationHarnessService.service"; import { IInstantiationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation"; import { ILabelService } from "@codingame/monaco-vscode-api/vscode/vs/platform/label/common/label.service"; /** * Service that opens an AI-guided chat session to help the user create * a new customization (agent, skill, instructions, prompt, hook). * * Opens a new chat in agent mode, then sends a request with hidden * system instructions (modeInstructions) that guide the AI through * the creation process. The user sees only their message. */ export declare class CustomizationCreatorService { private readonly commandService; private readonly chatService; private readonly chatWidgetService; private readonly workspaceService; private readonly promptsService; private readonly quickInputService; private readonly instantiationService; private readonly harnessService; constructor(commandService: ICommandService, chatService: IChatService, chatWidgetService: IChatWidgetService, workspaceService: IAICustomizationWorkspaceService, promptsService: IPromptsService, quickInputService: IQuickInputService, instantiationService: IInstantiationService, harnessService: ICustomizationHarnessService); createWithAI(type: PromptsType): Promise; /** * Resolves the workspace directory for a new customization file based on the * active project root. */ resolveTargetDirectory(type: PromptsType): URI | undefined; /** * Resolves the user-level directory for a new customization file. */ resolveUserDirectory(type: PromptsType): Promise; } export declare class CustomizationLocationPicker { private readonly quickInputService; private readonly harnessService; private readonly instantiationService; private readonly workspaceService; private readonly labelService; constructor(quickInputService: IQuickInputService, harnessService: ICustomizationHarnessService, instantiationService: IInstantiationService, workspaceService: IAICustomizationWorkspaceService, labelService: ILabelService); /** * Resolves the target directory for creating a new customization file. * If multiple source folders exist for the given storage type, shows a * picker to let the user choose. Otherwise, returns the single match. * * Source folders come from the active harness's item provider (via the * items model) — each session can supply its own set of customization * locations through `ICustomizationItemProvider.provideSourceFolders`. * * @returns the resolved URI, `undefined` when no folder is available, * or `null` when the user cancelled the picker. */ resolveTargetDirectoryWithPicker(sessionResource: URI, type: PromptsType, target: "local" | "user"): Promise; } /** * Resolves the workspace directory for a new customization file based on the active project root. */ export declare function resolveWorkspaceTargetDirectory(workspaceService: IAICustomizationWorkspaceService, type: PromptsType): URI | undefined; /** * Resolves the user-level directory for a new customization file. * Delegates to IPromptsService.getSourceFolders() which returns the appropriate * user root (VS Code profile in core, ~/.copilot in sessions). */ export declare function resolveUserTargetDirectory(promptsService: IPromptsService, type: PromptsType): Promise;