/**
 * Token Estimator
 *
 * 估算上下文的 token 数量
 * 用于决定是否需要压缩以及压缩多少
 */
import { TokenEstimate, TokenEstimatorConfig, CompactionConfig } from './compactionTypes';
import { SubAgentContext } from '../types';
/**
 * Token 估算器
 * 快速估算 JSON 对象序列化后的 token 数量
 */
export declare class TokenEstimator {
    private config;
    constructor(config?: Partial<TokenEstimatorConfig>);
    /**
     * 估算上下文的 token 数量
     */
    estimate(context: SubAgentContext): TokenEstimate;
    /**
     * 估算并判断是否超过阈值
     */
    estimateWithThreshold(context: SubAgentContext, config: CompactionConfig): TokenEstimate;
    /**
     * 快速检查是否需要压缩（不计算详细分解）
     */
    needsCompaction(context: SubAgentContext, threshold: number): boolean;
    /**
     * 估算字符串的 token 数
     */
    estimateString(str: string | undefined | null): number;
    /**
     * 估算对象的 token 数
     */
    estimateObject(obj: any): number;
    /**
     * 估算数组的 token 数
     */
    estimateArray(arr: any[] | undefined): number;
    /**
     * 从结果中估算 findings 的 token 数
     */
    private estimateFindingsFromResults;
    /**
     * 估算其他字段的 token 数
     */
    private estimateOtherFields;
    /**
     * 快速估算（只看主要字段）
     */
    private quickEstimate;
    /**
     * 估算单个 StageResult 的 token 数
     */
    estimateStageResult(result: any): number;
    /**
     * 估算 findings 数组的 token 数
     */
    estimateFindings(findings: any[]): number;
    /**
     * 获取配置
     */
    getConfig(): TokenEstimatorConfig;
    /**
     * 更新配置
     */
    updateConfig(config: Partial<TokenEstimatorConfig>): void;
}
/**
 * 获取全局 Token 估算器
 */
export declare function getTokenEstimator(): TokenEstimator;
/**
 * 创建 Token 估算器
 */
export declare function createTokenEstimator(config?: Partial<TokenEstimatorConfig>): TokenEstimator;
export default TokenEstimator;
//# sourceMappingURL=tokenEstimator.d.ts.map