import type { HookEvent, OnTurnStartHook, PreToolUseHook, PostToolUseHook, OnAssistantTextHook, PostCompactHook, OnTurnEndHook, OnTurnStartContext, PreToolUseContext, PostToolUseContext, OnAssistantTextContext, PostCompactContext, OnTurnEndContext } from './hooks.types';
export declare class HooksRegistry {
    private readonly logger;
    private readonly hooks;
    registerOnTurnStart(registeredBy: string, fn: OnTurnStartHook, priority?: number): void;
    registerPreToolUse(registeredBy: string, fn: PreToolUseHook, priority?: number): void;
    registerPostToolUse(registeredBy: string, fn: PostToolUseHook, priority?: number): void;
    registerOnAssistantText(registeredBy: string, fn: OnAssistantTextHook, priority?: number): void;
    registerPostCompact(registeredBy: string, fn: PostCompactHook, priority?: number): void;
    registerOnTurnEnd(registeredBy: string, fn: OnTurnEndHook, priority?: number): void;
    fireOnTurnStart(ctx: OnTurnStartContext): Promise<void>;
    firePreToolUse(ctx: PreToolUseContext): Promise<{
        reject: boolean;
        reason?: string;
        finalInput: Record<string, unknown>;
    }>;
    firePostToolUse(ctx: PostToolUseContext): Promise<void>;
    fireOnAssistantText(ctx: OnAssistantTextContext): Promise<string>;
    firePostCompact(ctx: PostCompactContext): Promise<void>;
    fireOnTurnEnd(ctx: OnTurnEndContext): Promise<void>;
    listHooks(event: HookEvent): Array<{
        registeredBy: string;
        priority: number;
    }>;
    private add;
    private fireVoid;
}
