import { z } from "zod"; import type { HookState } from "./state.ts"; import type { HookDeps } from "./deps.ts"; export declare function registerToolSchema(toolName: string, args: z.ZodRawShape): void; /** * Register a tool as deprecated so that runtime invocations emit a warning. * @param toolName - The tool name to mark deprecated. * @param message - Optional migration hint shown in the warning log. */ export declare function registerDeprecatedTool(toolName: string, message?: string): void; /** * Pre-execution hook: validates tool parameters with zod .strict() mode. * * If the model passes unknown parameters (e.g. hallucinated `block=true` on * dispatch_output), zod's default .strip() mode silently removes them — the tool * returns "still running" and the model enters a polling loop because it thinks * its blocking request was ignored. * * Using .strict() here makes unknown keys a validation error. We throw with a * clear message listing the valid parameters, so the model can self-correct. */ export declare function handleToolBefore(input: { tool: string; sessionID: string; callID: string; }, output: { args: any; }, state?: HookState, deps?: HookDeps): Promise; //# sourceMappingURL=tool-before.d.ts.map