/**
 * DynamicComposer — 运行时动态工具组合
 *
 * 将已有的原子工具按 sequential / parallel / conditional 策略组合成复合工具。
 * 组合结果注册为临时工具（通过 TemporaryToolRegistry）。
 *
 * 与 PipelineStrategy 的区别：
 *   - PipelineStrategy 是 Agent 执行策略（Agent 层）
 *   - DynamicComposer 是工具组合（Tool 层），产出物是单个工具
 */
interface ToolRegistryLike {
    has(name: string): boolean;
    execute(name: string, params: Record<string, unknown>, context?: Record<string, unknown>): Promise<unknown>;
}
export interface CompositionStep {
    /** 要调用的工具名 */
    tool: string;
    /** 静态参数或从前一步结果构造参数的函数 */
    args: Record<string, unknown> | ((prevResult: unknown) => Record<string, unknown>);
    /** 可选：提取该步结果中的特定字段传给下一步 */
    extractKey?: string;
}
export interface CompositionSpec {
    /** 组合工具的名称 */
    name: string;
    /** 描述 */
    description: string;
    /** 执行步骤 */
    steps: CompositionStep[];
    /** 合并策略 */
    mergeStrategy: 'sequential' | 'parallel';
    /** JSON Schema 参数定义 */
    parameters?: Record<string, unknown>;
}
export interface CompositionResult {
    /** 是否成功 */
    success: boolean;
    /** 组合工具 handler */
    handler?: (params: Record<string, unknown>, context: Record<string, unknown>) => Promise<unknown>;
    /** 失败原因 */
    error?: string;
}
export declare class DynamicComposer {
    #private;
    constructor(registry: ToolRegistryLike);
    /**
     * 验证组合 spec 的可行性（所有工具是否存在）
     */
    validate(spec: CompositionSpec): {
        valid: boolean;
        missingTools: string[];
    };
    /**
     * 构建组合工具
     */
    compose(spec: CompositionSpec): CompositionResult;
}
export {};
