import { z } from "zod"; /** * Schema for ue-mcp.plugin.yml, the author-side declaration shipped inside * each plugin npm package. Resolved from node_modules; never authored by the * end user. */ declare const SchemaFieldSchema: z.ZodObject<{ type: z.ZodEnum<["string", "number", "boolean", "object", "array"]>; required: z.ZodOptional; description: z.ZodOptional; }, "strip", z.ZodTypeAny, { type: "string" | "number" | "boolean" | "object" | "array"; description?: string | undefined; required?: boolean | undefined; }, { type: "string" | "number" | "boolean" | "object" | "array"; description?: string | undefined; required?: boolean | undefined; }>; export type ManifestSchemaField = z.infer; declare const InjectActionSchema: z.ZodObject<{ task: z.ZodString; description: z.ZodOptional; schema: z.ZodOptional; required: z.ZodOptional; description: z.ZodOptional; }, "strip", z.ZodTypeAny, { type: "string" | "number" | "boolean" | "object" | "array"; description?: string | undefined; required?: boolean | undefined; }, { type: "string" | "number" | "boolean" | "object" | "array"; description?: string | undefined; required?: boolean | undefined; }>>>; }, "strip", z.ZodTypeAny, { task: string; description?: string | undefined; schema?: Record | undefined; }, { task: string; description?: string | undefined; schema?: Record | undefined; }>; export type ManifestInjectAction = z.infer; /** * One action contributed by a `provides:` entry. Same shape as inject but * lives under a plugin-owned category, not a built-in one, so action names * are NOT prefixed - the category itself is the namespace. */ declare const ProvidedActionSchema: z.ZodObject<{ task: z.ZodString; description: z.ZodOptional; schema: z.ZodOptional; required: z.ZodOptional; description: z.ZodOptional; }, "strip", z.ZodTypeAny, { type: "string" | "number" | "boolean" | "object" | "array"; description?: string | undefined; required?: boolean | undefined; }, { type: "string" | "number" | "boolean" | "object" | "array"; description?: string | undefined; required?: boolean | undefined; }>>>; }, "strip", z.ZodTypeAny, { task: string; description?: string | undefined; schema?: Record | undefined; }, { task: string; description?: string | undefined; schema?: Record | undefined; }>; export type ManifestProvidedAction = z.infer; declare const ProvidedCategorySchema: z.ZodObject<{ description: z.ZodOptional; actions: z.ZodRecord; schema: z.ZodOptional; required: z.ZodOptional; description: z.ZodOptional; }, "strip", z.ZodTypeAny, { type: "string" | "number" | "boolean" | "object" | "array"; description?: string | undefined; required?: boolean | undefined; }, { type: "string" | "number" | "boolean" | "object" | "array"; description?: string | undefined; required?: boolean | undefined; }>>>; }, "strip", z.ZodTypeAny, { task: string; description?: string | undefined; schema?: Record | undefined; }, { task: string; description?: string | undefined; schema?: Record | undefined; }>>; }, "strip", z.ZodTypeAny, { actions: Record | undefined; }>; description?: string | undefined; }, { actions: Record | undefined; }>; description?: string | undefined; }>; export type ManifestProvidedCategory = z.infer; /** * Native UE C++ module that ships with this plugin. When present, the CLI * copies `source/` into the user's project Plugins/ at install time and * tracks the deposit for clean uninstall. The plugin's StartupModule is * expected to register handlers via UEMCP::RegisterExternalHandler (see * MCPHandlerRegistration.h shipped under the bridge's Public/). * * nativeModule: * uePluginName: PIE_Studio * minBridgeApi: 1 * source: ue/Plugins/PIE_Studio * handlers: * inject_input: { description: "..." } */ declare const NativeModuleSchema: z.ZodObject<{ uePluginName: z.ZodString; minBridgeApi: z.ZodNumber; source: z.ZodString; supportedEngineVersions: z.ZodDefault>; category: z.ZodOptional; categoryDescription: z.ZodOptional; handlers: z.ZodDefault; timeoutSeconds: z.ZodOptional; schema: z.ZodOptional; required: z.ZodOptional; description: z.ZodOptional; }, "strip", z.ZodTypeAny, { type: "string" | "number" | "boolean" | "object" | "array"; description?: string | undefined; required?: boolean | undefined; }, { type: "string" | "number" | "boolean" | "object" | "array"; description?: string | undefined; required?: boolean | undefined; }>>>; }, "strip", z.ZodTypeAny, { description?: string | undefined; schema?: Record | undefined; timeoutSeconds?: number | undefined; }, { description?: string | undefined; schema?: Record | undefined; timeoutSeconds?: number | undefined; }>>>; }, "strip", z.ZodTypeAny, { uePluginName: string; minBridgeApi: number; source: string; supportedEngineVersions: string[]; handlers: Record | undefined; timeoutSeconds?: number | undefined; }>; category?: string | undefined; categoryDescription?: string | undefined; }, { uePluginName: string; minBridgeApi: number; source: string; supportedEngineVersions?: string[] | undefined; category?: string | undefined; categoryDescription?: string | undefined; handlers?: Record | undefined; timeoutSeconds?: number | undefined; }> | undefined; }>; export type ManifestNativeModule = z.infer; export declare const PluginManifestSchema: z.ZodObject<{ actionPrefix: z.ZodString; minServerVersion: z.ZodOptional; uePluginDependency: z.ZodOptional; inject: z.ZodDefault; schema: z.ZodOptional; required: z.ZodOptional; description: z.ZodOptional; }, "strip", z.ZodTypeAny, { type: "string" | "number" | "boolean" | "object" | "array"; description?: string | undefined; required?: boolean | undefined; }, { type: "string" | "number" | "boolean" | "object" | "array"; description?: string | undefined; required?: boolean | undefined; }>>>; }, "strip", z.ZodTypeAny, { task: string; description?: string | undefined; schema?: Record | undefined; }, { task: string; description?: string | undefined; schema?: Record | undefined; }>>>>; provides: z.ZodDefault; actions: z.ZodRecord; schema: z.ZodOptional; required: z.ZodOptional; description: z.ZodOptional; }, "strip", z.ZodTypeAny, { type: "string" | "number" | "boolean" | "object" | "array"; description?: string | undefined; required?: boolean | undefined; }, { type: "string" | "number" | "boolean" | "object" | "array"; description?: string | undefined; required?: boolean | undefined; }>>>; }, "strip", z.ZodTypeAny, { task: string; description?: string | undefined; schema?: Record | undefined; }, { task: string; description?: string | undefined; schema?: Record | undefined; }>>; }, "strip", z.ZodTypeAny, { actions: Record | undefined; }>; description?: string | undefined; }, { actions: Record | undefined; }>; description?: string | undefined; }>>>; nativeModule: z.ZodOptional>; category: z.ZodOptional; categoryDescription: z.ZodOptional; handlers: z.ZodDefault; timeoutSeconds: z.ZodOptional; schema: z.ZodOptional; required: z.ZodOptional; description: z.ZodOptional; }, "strip", z.ZodTypeAny, { type: "string" | "number" | "boolean" | "object" | "array"; description?: string | undefined; required?: boolean | undefined; }, { type: "string" | "number" | "boolean" | "object" | "array"; description?: string | undefined; required?: boolean | undefined; }>>>; }, "strip", z.ZodTypeAny, { description?: string | undefined; schema?: Record | undefined; timeoutSeconds?: number | undefined; }, { description?: string | undefined; schema?: Record | undefined; timeoutSeconds?: number | undefined; }>>>; }, "strip", z.ZodTypeAny, { uePluginName: string; minBridgeApi: number; source: string; supportedEngineVersions: string[]; handlers: Record | undefined; timeoutSeconds?: number | undefined; }>; category?: string | undefined; categoryDescription?: string | undefined; }, { uePluginName: string; minBridgeApi: number; source: string; supportedEngineVersions?: string[] | undefined; category?: string | undefined; categoryDescription?: string | undefined; handlers?: Record | undefined; timeoutSeconds?: number | undefined; }> | undefined; }>>; knowledge: z.ZodDefault>; tasks: z.ZodDefault; }, "strip", z.ZodTypeAny, { class_path: string; description?: string | undefined; }, { class_path: string; description?: string | undefined; }>>>; flows: z.ZodDefault; steps: z.ZodRecord; flow: z.ZodOptional; options: z.ZodOptional>; retries: z.ZodOptional; retryDelay: z.ZodOptional; retryOn: z.ZodOptional; }, "strip", z.ZodTypeAny, { options?: Record | undefined; flow?: string | undefined; task?: string | undefined; retries?: number | undefined; retryDelay?: number | undefined; retryOn?: string | undefined; }, { options?: Record | undefined; flow?: string | undefined; task?: string | undefined; retries?: number | undefined; retryDelay?: number | undefined; retryOn?: string | undefined; }>>; }, "strip", z.ZodTypeAny, { description: string; steps: Record | undefined; flow?: string | undefined; task?: string | undefined; retries?: number | undefined; retryDelay?: number | undefined; retryOn?: string | undefined; }>; rollback_on_failure?: boolean | undefined; }, { description: string; steps: Record | undefined; flow?: string | undefined; task?: string | undefined; retries?: number | undefined; retryDelay?: number | undefined; retryOn?: string | undefined; }>; rollback_on_failure?: boolean | undefined; }>>>; }, "strip", z.ZodTypeAny, { tasks: Record; flows: Record | undefined; flow?: string | undefined; task?: string | undefined; retries?: number | undefined; retryDelay?: number | undefined; retryOn?: string | undefined; }>; rollback_on_failure?: boolean | undefined; }>; actionPrefix: string; inject: Record | undefined; }>>; provides: Record | undefined; }>; description?: string | undefined; }>; knowledge: Record; minServerVersion?: string | undefined; uePluginDependency?: string | undefined; nativeModule?: { uePluginName: string; minBridgeApi: number; source: string; supportedEngineVersions: string[]; handlers: Record | undefined; timeoutSeconds?: number | undefined; }>; category?: string | undefined; categoryDescription?: string | undefined; } | undefined; }, { actionPrefix: string; tasks?: Record | undefined; flows?: Record | undefined; flow?: string | undefined; task?: string | undefined; retries?: number | undefined; retryDelay?: number | undefined; retryOn?: string | undefined; }>; rollback_on_failure?: boolean | undefined; }> | undefined; minServerVersion?: string | undefined; uePluginDependency?: string | undefined; inject?: Record | undefined; }>> | undefined; provides?: Record | undefined; }>; description?: string | undefined; }> | undefined; nativeModule?: { uePluginName: string; minBridgeApi: number; source: string; supportedEngineVersions?: string[] | undefined; category?: string | undefined; categoryDescription?: string | undefined; handlers?: Record | undefined; timeoutSeconds?: number | undefined; }> | undefined; } | undefined; knowledge?: Record | undefined; }>; export type PluginManifest = z.infer; /** * Locate the manifest file inside a plugin package directory. Convention is * `ue-mcp.plugin.yml`, but `.yaml` is accepted as a fallback. */ export declare function findManifestPath(pkgDir: string): string | null; export interface ManifestParseResult { manifest: PluginManifest; manifestPath: string; } export declare function loadManifest(pkgDir: string): ManifestParseResult; /** * Compile a manifest schema field map into a Zod object schema. Used to merge * plugin action params into the host category tool's schema. */ export declare function compileSchemaFields(fields: Record | undefined): Record; /** * Compute the prefixed action name as it appears on the injected category * tool: `_`. */ export declare function prefixedActionName(prefix: string, action: string): string; export {};