/**
 * Decision Tree Stage Executor
 *
 * Wraps decision tree execution as a PipelineExecutor stage, allowing
 * decision trees to be used within the existing pipeline architecture.
 *
 * This enables a hybrid approach:
 * - Simple analyses can use linear stages
 * - Complex analyses (scrolling, launch) can use decision trees
 */
import { EventEmitter } from 'events';
import { StageExecutor } from '../core/pipelineExecutor';
import { PipelineStage, SubAgentContext, SubAgentResult } from '../types';
import { DecisionTree } from './types';
/**
 * Stage executor that runs a decision tree
 */
export declare class DecisionTreeStageExecutor extends EventEmitter implements StageExecutor {
    private treeExecutor;
    private skillAdapter;
    private targetTree;
    constructor(analysisType?: string, options?: {
        maxNodes?: number;
        nodeTimeoutMs?: number;
        verbose?: boolean;
    });
    /**
     * Set the decision tree to use
     */
    setTree(tree: DecisionTree): void;
    /**
     * Execute the decision tree as a pipeline stage
     */
    execute(stage: PipelineStage, context: SubAgentContext): Promise<SubAgentResult>;
    /**
     * Detect analysis type from stage or context
     */
    private detectAnalysisType;
    /**
     * Convert decision tree result to SubAgentResult
     */
    private convertToSubAgentResult;
    /**
     * Convert a conclusion to a finding
     */
    private conclusionToFinding;
    /**
     * Extract additional findings from collected data
     */
    private extractFindings;
    /**
     * Clear skill result cache
     */
    clearCache(): void;
}
/**
 * Create a decision tree stage executor for a specific analysis type
 */
export declare function createDecisionTreeStageExecutor(analysisType?: string, options?: {
    maxNodes?: number;
    nodeTimeoutMs?: number;
    verbose?: boolean;
}): DecisionTreeStageExecutor;
export default DecisionTreeStageExecutor;
//# sourceMappingURL=decisionTreeStageExecutor.d.ts.map