import { z } from 'zod';
export declare const ToolParamSchema: z.ZodObject<{
    name: z.ZodString;
    type: z.ZodEnum<{
        string: "string";
        number: "number";
        boolean: "boolean";
        object: "object";
        array: "array";
    }>;
    description: z.ZodString;
    required: z.ZodDefault<z.ZodBoolean>;
    default: z.ZodOptional<z.ZodAny>;
    enum: z.ZodOptional<z.ZodArray<z.ZodString>>;
}, z.core.$strip>;
export type ToolParam = z.infer<typeof ToolParamSchema>;
export interface ToolSchema {
    name: string;
    description: string;
    inputSchema: {
        type: 'object';
        properties: Record<string, unknown>;
        required?: string[];
    };
}
export interface ToolResult<T = unknown> {
    success: boolean;
    result?: T;
    error?: string;
}
export type ToolHandler<TParams = Record<string, unknown>, TResult = unknown> = (params: TParams) => Promise<ToolResult<TResult>>;
export interface ToolRegistration<TParams = Record<string, unknown>> {
    schema: ToolSchema;
    handler: ToolHandler<TParams>;
}
//# sourceMappingURL=tool.d.ts.map