import type { AgentToolResult, ToolDefinition } from "@earendil-works/pi-coding-agent"; import type { TSchema } from "typebox"; import type { ProgrammaticCodeModeToolDefinition } from "../../tools/code-mode/types.ts"; interface NestedToolLifecycle { start?(id: string, input: unknown): void; end?(id: string): void; } interface NestedToolContract { kind?: "function" | "freeform"; yieldTimeMs?: number; prepareInput?(input: unknown): unknown; resultError?(result: AgentToolResult): string | undefined; resultValue?(result: AgentToolResult): unknown; } export declare function toNestedTool(tool: ToolDefinition, usage: string, lifecycle?: NestedToolLifecycle, contract?: NestedToolContract): ProgrammaticCodeModeToolDefinition; export declare function codeModeImageResult(result: AgentToolResult, outputHint?: string): unknown; export declare function codeModeWebResult(result: AgentToolResult): unknown; export {};