import type { LoadedApi } from '../../types.js'; import type { ToolContext } from '../context.js'; import { z } from 'zod'; export interface ToolResult { isError?: boolean; content: { type: 'text'; text: string; }[]; structuredContent?: unknown; } export interface ToolDefinition { name: string; description: string; inputSchema: z.ZodType; outputSchema: z.ZodType; execute: (context: ToolContext, input: Omit) => Promise; } export declare function ok(data: unknown): ToolResult; export declare function fail(error: unknown): ToolResult; export declare function requireApi(context: ToolContext, apiName: string): LoadedApi; export declare function parseInput(args: unknown, schema: z.ZodType): T; export declare function validateOutput(data: unknown, schema: z.ZodType): T; export declare function executeToolData(definition: ToolDefinition, context: ToolContext, args: unknown): Promise; export declare function runMcpTool(definition: ToolDefinition, context: ToolContext, args: unknown): Promise; export declare function toToolDescriptor(definition: ToolDefinition): { name: string; description: string; inputSchema: Record; outputSchema: Record; }; export declare function withFields(schema: T): z.ZodType & { fields?: string[]; }>; export declare function toStringMap(value: Record | undefined | null): Record;