/**
 * Hook Registry
 *
 * 中央钩子注册表，管理所有生命周期钩子的注册和执行
 */
import { HookEventType, HookPhase, HookEvent, HookHandler, HookResult, HookContext, HookMiddleware, HookRegistryConfig } from './hookTypes';
export declare class HookRegistry {
    private config;
    private handlers;
    constructor(config?: Partial<HookRegistryConfig>);
    /**
     * 注册单个钩子处理器
     */
    register<T extends HookEventType>(eventType: T, phase: HookPhase, handler: HookHandler<T>): () => void;
    /**
     * 取消注册钩子处理器
     */
    unregister(eventType: HookEventType, phase: HookPhase, handlerName: string): boolean;
    /**
     * 注册中间件 (批量注册到多个事件/阶段)
     */
    use(middleware: HookMiddleware): () => void;
    /**
     * 执行钩子链
     */
    execute<T extends HookEventType>(event: HookEvent<T>, context?: HookContext): Promise<HookResult>;
    /**
     * 便捷方法：执行 pre 阶段钩子
     */
    executePre<T extends HookEventType>(eventType: T, sessionId: string, data: HookEvent<T>['data'], context?: HookContext): Promise<HookResult>;
    /**
     * 便捷方法：执行 post 阶段钩子
     */
    executePost<T extends HookEventType>(eventType: T, sessionId: string, data: HookEvent<T>['data'], context?: HookContext): Promise<HookResult>;
    /**
     * 获取已注册的处理器数量
     */
    getHandlerCount(eventType?: HookEventType, phase?: HookPhase): number;
    /**
     * 获取所有注册的事件类型
     */
    getRegisteredEvents(): Array<{
        type: HookEventType;
        phase: HookPhase;
    }>;
    /**
     * 清除所有处理器
     */
    clear(): void;
    /**
     * 启用/禁用 hooks
     */
    setEnabled(enabled: boolean): void;
    /**
     * 检查是否启用
     */
    isEnabled(): boolean;
    private getKey;
    private executeWithTimeout;
}
/**
 * 获取全局 Hook 注册表
 */
export declare function getHookRegistry(): HookRegistry;
/**
 * 设置全局 Hook 注册表 (用于测试或自定义配置)
 */
export declare function setHookRegistry(registry: HookRegistry): void;
/**
 * 重置全局 Hook 注册表
 */
export declare function resetHookRegistry(): void;
//# sourceMappingURL=hookRegistry.d.ts.map