import { IBaseService } from './base'; import { ActionConfig } from '../types/action'; import { DevConfig } from '../types'; export interface IAction extends IBaseService { /** * 初始化动作 * @param config - 动作配置数组 */ init(config: DevConfig): void; /** * 添加动作 * @param actions - 动作配置或动作配置数组 */ addActions(actions: ActionConfig | ActionConfig[]): void; /** * 获取所有动作及其结构化描述(专为 LLM 设计) */ getActionsSchema(): any[]; /** * 移除动作 * @param actionIds - 动作ID或动作ID数组 */ removeActions(actionIds: string | string[]): void; /** * 获取所有动作 * @returns 动作配置Map */ getActions(): Map; /** * 根据动作ID获取动作 * @param actionId - 动作ID * @returns 动作配置或undefined */ getActionById(actionId: string): ActionConfig | undefined; /** * 根据动作名称获取动作 * @param name - 动作名称 * @returns 动作配置或undefined */ getActionByName(name: string): ActionConfig | undefined; /** * 执行动作 * @param actionId - 动作ID * @param params - 动作参数 */ exec(actionId: string, params?: any): void; }