import type { ToolCall } from '../core/types'; export interface SimpleHookContext { toolName: string; args: Record; } export type BeforeHook = (ctx: SimpleHookContext) => { allow: boolean; reason?: string; modifiedArgs?: Record; }; export type AfterHook = (ctx: SimpleHookContext, result: string) => string; export declare class ToolHooks { private beforeHooks; private afterHooks; addBefore(hook: BeforeHook): void; addAfter(hook: AfterHook): void; runBefore(ctx: SimpleHookContext): { allow: boolean; reason?: string; modifiedArgs?: Record; }; runAfter(ctx: SimpleHookContext, result: string): string; } export declare const dangerousCommandBlocker: BeforeHook; export type HookPhase = 'before' | 'after' | 'error'; export interface ToolHook { id: string; phase: HookPhase; tools?: string[]; fn: (ctx: ToolHookContext) => Promise; } export interface ToolHookContext { call: ToolCall; args: Record; result?: unknown; error?: Error; startedAt: number; } export declare class ToolHookRunner { private hooks; add(hook: ToolHook): void; remove(id: string): void; runBefore(ctx: ToolHookContext): Promise; runAfter(ctx: ToolHookContext): Promise; runError(ctx: ToolHookContext): Promise; } //# sourceMappingURL=hooks.d.ts.map