import { DisposableStore } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle"; import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri"; import { IFileService } from "@codingame/monaco-vscode-api/vscode/vs/platform/files/common/files.service"; import { IQuickTreeItem } from "@codingame/monaco-vscode-api/vscode/vs/platform/quickinput/common/quickInput"; import { IPromptPath } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService"; import { McpCollectionDefinition, McpServerDefinition } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/mcp/common/mcpTypes"; export declare function validatePluginName(name: string): string | undefined; type ResourceType = "instruction" | "prompt" | "agent" | "skill" | "hook" | "mcp"; export interface IResourceTreeItem extends IQuickTreeItem { readonly resourceType: ResourceType; readonly promptPath?: IPromptPath; readonly mcpServer?: { collection: McpCollectionDefinition; definition: McpServerDefinition; }; children?: readonly IResourceTreeItem[]; } /** * Gets a display label for a prompt resource. Skills need special handling * because their URI points to `SKILL.md`, so we use the parent directory name. */ export declare function getResourceLabel(r: IPromptPath): string; /** * Gets a filesystem-safe name for a resource, stripping any namespace prefix * (e.g. `plugin:skillname` → `skillname`). */ export declare function getResourceFileName(r: IPromptPath): string; /** * Writes a plugin directory structure to disk from selected resources. */ export declare function writePluginToDisk(fileService: IFileService, pluginRoot: URI, pluginName: string, selected: readonly IResourceTreeItem[]): Promise; export declare function serializeHookCommand(cmd: Record): Record; export declare function serializeMcpLaunch(launch: McpServerDefinition["launch"]): object; export declare function copyDirectory(fileService: IFileService, source: URI, target: URI): Promise; export declare function updateMarketplaceIfNeeded(fileService: IFileService, targetDir: URI, pluginName: string): Promise; export declare function registerCreatePluginAction(): DisposableStore; export {};