/**
 * Context Builder
 *
 * 根据策略构建隔离的上下文
 * 为不同角色的 Agent 提供适当的可见性
 */
import { ContextPolicy, ContextBuilderConfig, IsolatedContext } from './contextTypes';
import { SubAgentContext, PipelineStage } from '../types';
/**
 * Context Builder 类
 * 负责根据策略构建隔离的上下文
 */
export declare class ContextBuilder {
    private config;
    private policies;
    constructor(config?: Partial<ContextBuilderConfig>);
    /**
     * 注册策略
     */
    registerPolicy(policy: ContextPolicy): void;
    /**
     * 获取策略
     */
    getPolicy(agentTypeOrName: string): ContextPolicy | undefined;
    /**
     * 为指定阶段和 Agent 类型构建隔离上下文
     */
    buildContext(context: SubAgentContext, stage: PipelineStage): SubAgentContext | IsolatedContext;
    /**
     * 应用策略到上下文
     */
    private applyPolicy;
    /**
     * 应用字段可见性
     */
    private applyFieldVisibility;
    /**
     * 查找适用的策略
     */
    private findPolicy;
    /**
     * 记录隔离结果
     */
    private logIsolationResult;
    /**
     * 估算上下文大小（用于日志）
     */
    private estimateContextSize;
    /**
     * 启用/禁用隔离
     */
    setEnabled(enabled: boolean): void;
    /**
     * 检查是否启用
     */
    isEnabled(): boolean;
    /**
     * 获取所有注册的策略名称
     */
    getPolicyNames(): string[];
}
/**
 * 获取全局 Context Builder
 */
export declare function getContextBuilder(): ContextBuilder;
/**
 * 设置全局 Context Builder
 */
export declare function setContextBuilder(builder: ContextBuilder): void;
/**
 * 重置全局 Context Builder
 */
export declare function resetContextBuilder(): void;
/**
 * 创建 Context Builder（工厂函数）
 */
export declare function createContextBuilder(config?: Partial<ContextBuilderConfig>): ContextBuilder;
export default ContextBuilder;
//# sourceMappingURL=contextBuilder.d.ts.map