/**
 * Pipeline 核心类
 * 实现数据流管道模式，支持插件化扩展
 */
export class Pipeline {
    constructor() {
        this.data = {};
        this.config = {};
        this.context = new Map();
    }
    /**
     * 重置上下文，清除所有插件写入的 handlers / state，
     * 应在每轮插件执行前调用，避免残留数据影响下一轮。
     */
    resetContext() {
        this.context.clear();
        return this;
    }
    /**
     * 设置初始数据和配置，并重置上下文。
     * 合并 input + resetContext，保证每轮 pipeline 运行从干净状态开始。
     */
    inputAndReset(options) {
        this.context.clear();
        this.data = options.data;
        this.config = options.config;
        return this;
    }
    /**
     * 设置初始数据和配置（不重置上下文）
     */
    input(options) {
        this.data = options.data;
        this.config = options.config;
        return this;
    }
    getData() {
        return this.data;
    }
    setData(data) {
        this.data = { ...this.data, ...data };
        return this;
    }
    getConfig() {
        return this.config;
    }
    setConfig(config) {
        this.config = { ...this.config, ...config };
        return this;
    }
    setContext(key, value) {
        this.context.set(key, value);
        return this;
    }
    getContext(key) {
        return this.context.get(key);
    }
    hasContext(key) {
        return this.context.has(key);
    }
}
