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 { VimToolDetails } from "../vim/types"; import type { ToolSession } from "."; declare const vimSchema: z.ZodObject<{ file: z.ZodString; steps: z.ZodOptional; insert: z.ZodOptional; }, z.core.$strip>>>; pause: z.ZodOptional; }, z.core.$strip>; type VimParams = z.infer; interface VimRenderStep { kbd?: string[]; insert?: string; } export interface VimRenderArgs { file?: string; steps?: VimRenderStep[]; pause?: boolean; __partialJson?: string; } export declare class VimTool implements AgentTool { #private; private readonly session; readonly name = "vim"; readonly label = "Vim"; readonly description: string; readonly parameters: z.ZodObject<{ file: z.ZodString; steps: z.ZodOptional; insert: z.ZodOptional; }, z.core.$strip>>>; pause: z.ZodOptional; }, z.core.$strip>; readonly concurrency = "exclusive"; constructor(session: ToolSession); execute(_toolCallId: string, params: VimParams, signal?: AbortSignal, onUpdate?: AgentToolUpdateCallback, _context?: AgentToolContext): Promise>; } export declare function resetVimRendererStateForTest(): void; export declare const vimToolRenderer: { renderCall(args: VimRenderArgs, options: RenderResultOptions, uiTheme: Theme): Component; renderResult(result: { content: Array<{ type: string; text?: string; }>; details?: VimToolDetails; isError?: boolean; }, options: RenderResultOptions, uiTheme: Theme): Component; mergeCallAndResult: boolean; }; export { vimSchema };