import type { AnyKoiTool } from "./tools/common.js"; type HookContext = { koiId?: string; sessionKey?: string; }; type HookOutcome = { blocked: true; reason: string; } | { blocked: false; params: unknown; }; declare function isPlainObject(value: unknown): value is Record; export declare function runBeforeToolCallHook(args: { toolName: string; params: unknown; toolCallId?: string; ctx?: HookContext; }): Promise; export declare function wrapToolWithBeforeToolCallHook(tool: AnyKoiTool, ctx?: HookContext): AnyKoiTool; export declare const __testing: { runBeforeToolCallHook: typeof runBeforeToolCallHook; isPlainObject: typeof isPlainObject; }; export {};