/**
 * Hook Registry
 * Manages registration and execution of hooks.
 */
import type { PreToolUseHook, PostToolUseHook, ChatMessageHook, AssistantDoneHook, HookContext, HookResult } from "./types.js";
import { HOOK_ACTIONS } from "./constants.js";
export declare class HookRegistry {
    private static instance;
    private preToolHooks;
    private postToolHooks;
    private chatHooks;
    private doneHooks;
    private constructor();
    static getInstance(): HookRegistry;
    registerPreTool(hook: PreToolUseHook): void;
    registerPostTool(hook: PostToolUseHook): void;
    registerChat(hook: ChatMessageHook): void;
    registerDone(hook: AssistantDoneHook): void;
    executePreTool(ctx: HookContext, tool: string, args: any): Promise<{
        action: typeof HOOK_ACTIONS.ALLOW | typeof HOOK_ACTIONS.BLOCK | typeof HOOK_ACTIONS.MODIFY;
        modifiedArgs?: any;
        reason?: string;
    }>;
    executePostTool(ctx: HookContext, tool: string, input: any, output: {
        title: string;
        output: string;
        metadata: any;
    }): Promise<void>;
    executeChat(ctx: HookContext, message: string): Promise<{
        action: typeof HOOK_ACTIONS.PROCESS | typeof HOOK_ACTIONS.INTERCEPT;
        modifiedMessage?: string;
    }>;
    executeDone(ctx: HookContext, finalText: string): Promise<HookResult>;
}
