import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'; import { ZodRawShape } from 'zod'; import { SlabsApiClient } from '../client/slabs.api.client'; import { McpToolInterface } from '../interfaces/mcp.tool.interface'; import { McpToolResultInterface } from '../interfaces/mcp.tool.result.interface'; export declare abstract class McpTool> implements McpToolInterface { protected readonly client: SlabsApiClient; abstract readonly name: string; abstract readonly title: string; abstract readonly description: string; abstract readonly inputSchema: ZodRawShape; protected readonly readOnly: boolean; protected readonly destructive: boolean; protected readonly idempotent: boolean; readonly requiredScopes: string[]; constructor(client: SlabsApiClient); get isReadOnly(): boolean; abstract execute(args: TArgs): Promise; register(server: McpServer): void; private dispatch; protected callerKey(): string; protected run(call: () => Promise): Promise; protected success(data: unknown): McpToolResultInterface; protected failure(error: unknown): McpToolResultInterface; }