/**
 * SkillHooks — Skill 生命周期钩子管理器 (v2)
 *
 * 每个 Skill 目录可以包含一个 hooks.js 文件，导出生命周期回调。
 * SkillHooks 在启动时扫描并注册所有钩子，在特定事件发生时按模式调用。
 *
 * v2 升级:
 *   - 扩展到 16+ 钩子，覆盖知识/Guard/Skill/搜索/推荐/Bootstrap/信号全生命周期
 *   - 4 种执行模式: series / parallel / waterfall / bail
 *   - Handler 支持 priority、timeout、name 元数据
 *   - 完全向后兼容旧版 hooks.js (直接导出函数)
 *   - 新格式支持: export default { hooks: { onXxx: { handler, priority, timeout } } }
 *
 * 加载顺序: 内置 skills/ → 项目级 AutoSnippet/skills/（同名覆盖）
 */
import Logger from '../../infrastructure/logging/Logger.js';
import type { HookDefinition, HookHandlerOptions, RegisteredHandler } from './types.js';
export declare class SkillHooks {
    #private;
    hooks: Map<string, RegisteredHandler[]>;
    logger: ReturnType<typeof Logger.getInstance>;
    constructor();
    /**
     * 扫描 skills 目录，加载所有 hooks.js
     * 项目级 hooks 覆盖同名内置 hooks
     */
    load(container?: {
        singletons?: {
            _projectRoot?: unknown;
        };
    }): Promise<void>;
    /** 手动注册 handler (用于代码级注册，非 hooks.js) */
    tap(hookName: string, handler: (...args: unknown[]) => Promise<unknown> | unknown, options?: Partial<HookHandlerOptions>): void;
    /**
     * 触发钩子 — 根据 hook 定义的模式自动选择执行策略
     *
     * 向后兼容: 旧版 run() 签名不变，行为维持一致。
     * - bail 模式: 首个返回 { block: true } 的 handler 立即终止
     * - waterfall 模式: 前一个 handler 的返回值传给下一个
     * - parallel 模式: 所有 handler 并行执行 (fire-and-forget)
     * - series 模式: 按优先级顺序串行执行，忽略返回值
     */
    run(hookName: string, ...args: unknown[]): Promise<unknown>;
    /** 检查是否有任何钩子注册 */
    has(hookName: string): boolean;
    /** 获取指定 hook 的 handler 数量 */
    count(hookName: string): number;
    /** 获取已注册的所有 hook 名称 */
    getRegisteredHooks(): string[];
    /** 获取 Hook Registry 信息 (用于 Dashboard / 调试) */
    static getHookRegistry(): ReadonlyArray<HookDefinition>;
}
export default SkillHooks;
