import { Logger as Logger$1 } from '@nestjs/common'; /** * Action handler function type */ interface ActionHandler { (...args: any[]): any | Promise; } /** * Action definition */ interface Action extends ActionMetadata { handler: ActionHandler; } declare enum ENUM_STATUS { SUCCEEDED = "succeed", FAILED = "failed" } declare enum ENUM_PHASE { Trigger = "trigger", Action = "action" } declare enum ENUM_ENV { DEV = "development", PROD = "production" } interface ActionContext { attributes: { trigger: string; triggerID?: string; triggerType?: string; instanceID: string; status?: ENUM_STATUS; phase?: ENUM_PHASE; startAt?: number; endAt?: number; duration_ms?: number; }; content?: string; } type TLogContent = string; interface ILogAttributes { trigger?: string; trigger_id?: string; trigger_type?: string; instance_id?: string; status?: ENUM_STATUS; phase?: ENUM_PHASE; start_at?: number; end_at?: number; duration_ms?: number; } /** * Action metadata (without handler) */ interface ActionMetadata { name?: string; path?: string; desc?: string; } /** * Logger interface for client SDK */ interface Logger { debug(message: string, extra?: any): void; info(message: string, extra?: any): void; warn(message: string, extra?: any): void; error(message: string, extra?: any): void; } /** * TriggerClient configuration options */ interface TriggerClientOptions { /** * Timeout for action execution (ms) */ timeout?: number; imports?: any[]; } declare enum ENUM_ERROR { NOT_EXIST = "NOT_EXIST", TIMEOUT = "TIMEOUT", PARAM_INVALID = "PARAM_INVALID", TRY_CATCH = "TRY_CATCH" } interface ILogContentParsed { /** 触发器名称 (例如 'cron-daily') */ trigger?: string; /** 触发器定义 ID */ trigger_id?: string; /** 触发器类型 (例如 定时任务、记录变更) */ trigger_type?: string; /** 执行实例 ID */ instance_id?: string; /** 阶段:触发阶段或动作执行阶段 */ phase?: ENUM_PHASE; /** 状态:成功或失败 */ status?: ENUM_STATUS; /** 执行耗时 (毫秒)。计算逻辑:(endAt - startAt) 或内部计时器 */ duration_ms?: number; /** 核心内容 */ content?: { /** 动作入参 */ input?: any; /** 动作出参 */ output?: any; }; /** 错误信息,仅在 status 为 failed 时填充,否则为空字符串 */ error_message?: string; } /** * TriggerClient * * 自动化触发器管理客户端核心类 * * 负责管理触发器注册、执行和生命周期事件 * 提供中间件支持和与 trigger-server 的回调集成 */ declare class TriggerClient { private _triggerActionMap; private _logger; /** * 创建 TriggerClient 实例 * * @param logger - 日志记录器 */ constructor(logger: Logger$1); /** * 为指定的 trigger 注册动作 * * @param trigger - 触发器标识 * @param action - 动作配置 */ registerAction(trigger: string, action: Action): void; /** * 执行指定的 trigger 动作 * * @param trigger - 触发器标识 * @param instanceID - 实例ID * @param context - 执行上下文 * @returns 执行报告数据 */ executeAction(trigger: string, instanceID: string, context: ActionContext): ActionContext; /** * 根据 trigger 获取对应的动作 * * @param trigger - 触发器标识 * @returns 动作实例,如果不存在返回 undefined */ getAction(trigger: string): Action | undefined; /** * 获取所有已注册的动作 * * @returns 动作映射表 */ getAllActions(): Map; /** * 根据 trigger 获取动作的元数据 * * @param trigger - 触发器标识 * @returns 动作元数据,如果不存在返回 undefined */ getActionMetadata(trigger: string): ActionMetadata | undefined; /** * 获取所有已注册的 trigger 标识 * * @returns trigger 标识数组 */ getAllTriggers(): string[]; /** * 根据 trigger 移除对应的动作 * * @param trigger - 触发器标识 * @returns 如果成功移除返回 true,如果不存在返回 false */ removeAction(trigger: string): boolean; /** * 清空所有已注册的动作 */ clearAllActions(): void; /** * 上报执行数据,用于日志记录和调试 */ report(msg: TLogContent, extra: ILogAttributes): void; /** * 包装处理器,添加日志记录和计时功能 * * @param handler - 原始处理器 * @returns 包装后的处理器 */ private _computeDuration; private _wrapHandler; } declare const convertActionContextToReportData: (actionCtx: ActionContext) => [TLogContent, ILogAttributes]; export { type Action, type ActionContext, type ActionHandler, type ActionMetadata, ENUM_ENV, ENUM_ERROR, ENUM_PHASE, ENUM_STATUS, type ILogAttributes, type ILogContentParsed, type Logger, type TLogContent, TriggerClient, type TriggerClientOptions, convertActionContextToReportData };