/**
 * Tree-of-Thought Reasoner
 *
 * High-level reasoning engine that uses MCTS with LLM integration
 * for solving complex problems through structured exploration.
 *
 * Based on:
 * - Tree of Thoughts (Yao et al., 2023)
 * - RethinkMCTS (arXiv 2409.09584)
 */
import { EventEmitter } from "events";
import { ToolResult } from "../../types/index.js";
import { Problem, ReasoningResult, ThinkingMode, CoTResult } from "./types.js";
/**
 * Configuration for the ToT reasoner
 */
export interface ToTConfig {
    mode: ThinkingMode;
    model?: string;
    temperature?: number;
    verbose?: boolean;
    executeCode?: boolean;
}
/**
 * Tree-of-Thought Reasoner
 */
export declare class TreeOfThoughtReasoner extends EventEmitter {
    private client;
    private config;
    private mctsConfig;
    private executeCommand?;
    constructor(apiKey: string, baseURL?: string, config?: Partial<ToTConfig>, executeCommand?: (cmd: string) => Promise<ToolResult>);
    /**
     * Solve a problem using Tree-of-Thought reasoning
     */
    solve(problem: Problem): Promise<ReasoningResult>;
    /**
     * Quick Chain-of-Thought reasoning (single pass)
     */
    chainOfThought(problem: Problem): Promise<CoTResult>;
    /**
     * Generate child thoughts for a node
     */
    private generateThoughts;
    /**
     * Evaluate a thought node
     */
    private evaluateThought;
    /**
     * Execute code safely
     */
    private executeCodeSafely;
    /**
     * Refine a thought based on feedback
     */
    private refineThought;
    /**
     * Parse approaches from LLM response
     */
    private parseApproaches;
    /**
     * Parse Chain-of-Thought response
     */
    private parseCoTResponse;
    /**
     * Set thinking mode
     */
    setMode(mode: ThinkingMode): void;
    /**
     * Get current configuration
     */
    getConfig(): ToTConfig;
    /**
     * Format reasoning result for display
     */
    formatResult(result: ReasoningResult): string;
}
/**
 * Create a ToT reasoner
 */
export declare function createTreeOfThoughtReasoner(apiKey: string, baseURL?: string, config?: Partial<ToTConfig>, executeCommand?: (cmd: string) => Promise<ToolResult>): TreeOfThoughtReasoner;
export declare function getTreeOfThoughtReasoner(apiKey: string, baseURL?: string, config?: Partial<ToTConfig>): TreeOfThoughtReasoner;
export declare function resetTreeOfThoughtReasoner(): void;
