import type { z } from 'zod';
import type { ToolContext, ToolDefinition, ToolPermission, ToolResult } from '../types/tool/index.js';
export interface DefineToolOptions<S extends z.ZodType> {
    name: string;
    description: string;
    inputSchema: S;
    category: ToolDefinition['category'];
    permissions: ToolPermission[];
    readOnly: boolean;
    destructive: boolean | ((input: z.infer<S>) => boolean);
    concurrencySafe: boolean;
    tier?: string;
    execute(input: z.infer<S>, context: ToolContext): Promise<ToolResult>;
}
export declare function defineTool<S extends z.ZodType>(options: DefineToolOptions<S>): ToolDefinition<z.infer<S>>;
//# sourceMappingURL=defineTool.d.ts.map