import { Tao } from "./Tao";
import { ZenExecutor, ZenRetryConfig, ZenStatus } from "./type";
export declare class Zen<TInput = any, TOutput = any> {
    private readonly name;
    private task;
    private status;
    private value?;
    private error?;
    private startTime?;
    private endTime?;
    private dependencies;
    private cleanupFunctions;
    private executor;
    private config;
    readonly id: string;
    /**
     * 创建一个新的执行步骤
     * @param id - 步骤唯一标识
     * @param name - 步骤名称
     * @param executor - 步骤执行器函数
     * @param task - 所属的 Task 实例
     * @param config - 步骤配置
     */
    constructor(name: string, // 步骤名称
    task: Tao);
    get result(): TOutput | undefined;
    /**
     * 设置当前步骤依赖的其他步骤
     * @param zens - 依赖的步骤数组
     * @returns this - 返回当前实例以支持链式调用
     */
    after(...zens: Zen[]): this;
    /**
     * 设置取消回调函数
     * @param callback - 取消回调函数
     * @returns this - 返回当前实例以支持链式调用
     */
    cancel(callback: () => void): this;
    exe(executor: ZenExecutor<TInput, TOutput>): this;
    /**
     * 添加清理函数
     * @param cleanup - 清理函数
     */
    private addCleanup;
    /**
     * 执行清理函数
     */
    private executeCleanup;
    /**
     * 包装依赖结果为ZenInput
     * @param depResults - 依赖步骤的执行结果
     * @returns ZenInput - 包装后的输入对象
     */
    private wrapDependencyResults;
    /**
     * 内部执行方法
     * @param signal - 中断信号
     * @returns Promise<TOutput> - 执行结果
     * @private
     */
    _execute(signal: AbortSignal): Promise<TOutput>;
    /**
     * 核心执行逻辑
     * @param zenInput - 输入参数，包含依赖结果
     * @param signal - 中断信号
     * @returns Promise<TOutput> - 执行结果
     * @private
     */
    private executeCore;
    /**
     * 重试执行逻辑
     * @param zenInput - 输入参数
     * @param signal - 中断信号
     * @param config - 重试配置
     * @returns Promise<TOutput> - 执行结果
     */
    private executeWithRetry;
    /**
     * 超时执行逻辑
     * @param zenInput - 输入参数
     * @param signal - 中断信号
     * @returns Promise<TOutput> - 执行结果
     */
    private executeWithTimeout;
    /**
     * 等待依赖步骤完成
     * @returns Promise<Record<string, any>> - 依赖步骤的执行结果
     */
    private waitForDependencies;
    getId: () => string;
    getName: () => string;
    getStatus: () => ZenStatus;
    getResult: () => TOutput | undefined;
    getError: () => Error | undefined;
    getDependencies: () => string[];
    getStartTime: () => number | undefined;
    getEndTime: () => number | undefined;
    /**
     * 设置步骤状态
     * @param status - 新的状态
     */
    setStatus(status: ZenStatus): void;
    /**
     * 设置错误信息
     * @param error - 错误角色
     */
    setError(error: Error): void;
    /**
     * 重置步骤状态
     */
    reset(): void;
    /**
     * 设置重试配置
     * @param config - 重试配置
     * @returns this - 返回当前实例以支持链式调用
     */
    retry(config?: ZenRetryConfig): this;
    /**
     * 设置超时时间
     * @param ms - 超时时间(毫秒)
     * @returns this - 返回当前实例以支持链式调用
     */
    timeout(ms: number): this;
    /**
     * 执行取消回调
     */
    executeOnCancel(): void;
    /**
     * 清理资源
     */
    dispose(): void;
    /**
     * 处理步骤执行过程中的错误
     * @param error - 错误对象
     */
    private handleZenError;
}
