import type { AgentTool } from "@mariozechner/pi-agent-core"; export interface ToolMetadata { /** Can run in parallel with other concurrent-safe tools. Default: false (fail-closed) */ isConcurrencySafe?: boolean; /** Only reads, never writes. Default: false (fail-closed) */ isReadOnly?: boolean; /** Irreversible action (delete, send). Default: false */ isDestructive?: boolean; /** Truncate result if larger than this. Default: 50000 chars */ maxResultSizeChars?: number; } export interface ToolDefinition { name: string; description: string; parameters: Record; execute: (args: T, signal?: AbortSignal) => Promise; metadata?: ToolMetadata; } /** * Build a tool with fail-closed defaults and result truncation. * Mirrors Claude Code's buildTool() pattern. */ export declare function buildTool(def: ToolDefinition): AgentTool & { metadata: Required; }; /** * Get metadata for a tool, returning fail-closed defaults if not set. */ export declare function getToolMetadata(tool: AgentTool): Required;