import { z } from "zod";
export interface ToolDefinition {
    name: string;
    title: string;
    description: string;
    schema: z.ZodRawShape;
    handler: (args: any) => Promise<ToolResponse>;
}
export interface ToolResponse {
    [x: string]: unknown;
    content: Array<{
        [x: string]: unknown;
        type: "text";
        text: string;
        _meta?: {
            [x: string]: unknown;
        } | undefined;
    }>;
    _meta?: {
        [x: string]: unknown;
    } | undefined;
    structuredContent?: {
        [x: string]: unknown;
    } | undefined;
    isError?: boolean | undefined;
}
export interface ToolRegistry {
    registerTool(tool: ToolDefinition): void;
    getTools(): ToolDefinition[];
}
