import type { AgentTool, AgentToolContext, AgentToolResult, AgentToolUpdateCallback } from "@oh-my-pi/pi-agent-core"; import type { Component } from "@oh-my-pi/pi-tui"; import * as z from "zod/v4"; import type { RenderResultOptions } from "../../extensibility/custom-tools/types"; import type { Theme } from "../../modes/theme/theme"; import type { ToolSession } from ".."; import { type BashRenderContext, type BashToolDetails } from "../bash"; import { type RecipeRenderArgs } from "./render"; import { type DetectedRunner } from "./runner"; declare const recipeSchema: z.ZodObject<{ op: z.ZodString; }, z.core.$strict>; type RecipeParams = z.infer; type RecipeRenderResult = { content: Array<{ type: string; text?: string; }>; details?: BashToolDetails; isError?: boolean; }; export declare class RecipeTool implements AgentTool { #private; readonly name = "recipe"; readonly label = "Run"; readonly description: string; readonly parameters: z.ZodObject<{ op: z.ZodString; }, z.core.$strict>; readonly strict = true; readonly concurrency = "exclusive"; readonly loadMode = "discoverable"; readonly summary = "Execute a saved bash recipe (multi-step shell command preset)"; readonly mergeCallAndResult = true; readonly inline = true; readonly renderCall: (args: RecipeRenderArgs, options: RenderResultOptions, uiTheme: Theme) => Component; readonly renderResult: (result: RecipeRenderResult, options: RenderResultOptions & { renderContext?: BashRenderContext; }, uiTheme: Theme, args?: RecipeRenderArgs) => Component; constructor(session: ToolSession, runners: DetectedRunner[]); static createIf(session: ToolSession): Promise; execute(toolCallId: string, { op }: RecipeParams, signal?: AbortSignal, onUpdate?: AgentToolUpdateCallback, ctx?: AgentToolContext): Promise>; } export * from "./runner"; export { tasksFromCargoMetadata } from "./runners/cargo";