import { z } from "zod"; import { CallToolResult } from "@modelcontextprotocol/sdk/types.js"; import { IServiceContainer } from "../container.js"; export declare abstract class BaseTool = z.ZodObject> { protected container: IServiceContainer; constructor(container: IServiceContainer); abstract name: string; abstract description: string; abstract schema: T; protected abstract executeImpl(params: z.infer): Promise; execute(params: unknown): Promise; getDefinition(): { description: string; inputSchema: z.ZodObject; }; }