/** * @name tools/tool-module-manifest * @description Validated manifest contract for first-party and plugin tool modules. * * The manifest is intentionally data-only. Executable registration code stays * in TypeScript modules that are explicitly imported by the host application. * * @module tools/tool-module-manifest */ import { z } from 'zod'; export declare const TOOL_MODULE_CATEGORIES: readonly ["sap-protocol", "solana", "payments", "profile", "agent-runtime", "premium", "perps", "skills", "memory", "integration"]; export declare const TOOL_MODULE_MODES: readonly ["default", "payments-bridge-only"]; export declare const ToolModuleIdSchema: z.ZodString; export declare const ToolModuleToolNameSchema: z.ZodString; export declare const ToolModuleCategorySchema: z.ZodEnum<["sap-protocol", "solana", "payments", "profile", "agent-runtime", "premium", "perps", "skills", "memory", "integration"]>; export declare const ToolModuleModeSchema: z.ZodEnum<["default", "payments-bridge-only"]>; export declare const ToolModuleManifestSchema: z.ZodObject<{ id: z.ZodString; title: z.ZodString; description: z.ZodString; category: z.ZodEnum<["sap-protocol", "solana", "payments", "profile", "agent-runtime", "premium", "perps", "skills", "memory", "integration"]>; order: z.ZodNumber; requires: z.ZodOptional>; expectedTools: z.ZodOptional>; mode: z.ZodOptional>; namespace: z.ZodOptional; packageName: z.ZodOptional; version: z.ZodOptional; }, "strict", z.ZodTypeAny, { description: string; category: "payments" | "memory" | "solana" | "premium" | "profile" | "perps" | "sap-protocol" | "agent-runtime" | "skills" | "integration"; title: string; id: string; order: number; mode?: "default" | "payments-bridge-only" | undefined; version?: string | undefined; requires?: string[] | undefined; expectedTools?: string[] | undefined; namespace?: string | undefined; packageName?: string | undefined; }, { description: string; category: "payments" | "memory" | "solana" | "premium" | "profile" | "perps" | "sap-protocol" | "agent-runtime" | "skills" | "integration"; title: string; id: string; order: number; mode?: "default" | "payments-bridge-only" | undefined; version?: string | undefined; requires?: string[] | undefined; expectedTools?: string[] | undefined; namespace?: string | undefined; packageName?: string | undefined; }>; export type ToolModuleCategory = z.infer; export type ToolModuleMode = z.infer; export type ToolModuleManifest = z.infer; export declare function parseToolModuleManifest(input: unknown): ToolModuleManifest; import type { Server } from '@modelcontextprotocol/sdk/server/index.js'; import type { SapMcpContext } from '../../core/src/types.js'; export type ToolModuleRegister = (server: Server, context: SapMcpContext) => void | Promise; export interface ToolModuleLifecycleEvent { readonly module: ToolModuleManifest; readonly context: SapMcpContext; readonly beforeCount: number; readonly afterCount?: number; readonly addedCount?: number; readonly error?: unknown; } export interface ToolModuleLifecycleHooks { readonly beforeRegister?: (event: ToolModuleLifecycleEvent) => void | Promise; readonly afterRegister?: (event: ToolModuleLifecycleEvent) => void | Promise; readonly onRegisterError?: (event: ToolModuleLifecycleEvent) => void | Promise; } export interface ToolModuleDefinition extends ToolModuleManifest { readonly register: ToolModuleRegister; readonly when?: (context: SapMcpContext) => boolean; readonly lifecycle?: ToolModuleLifecycleHooks; } //# sourceMappingURL=tool-module-manifest.d.ts.map