import { BaseChatModel } from "@langchain/core/language_models/chat_models"; import { ActionResult } from "../agent/views"; import { Registry } from "./registry/service"; import { BrowserContext } from "../browser/context"; import { ActionModel } from "./registry/views"; import z from "zod"; /** * 控制器类 * 管理动作的注册和执行 */ export declare class Controller { /** * 动作注册器 */ readonly registry: Registry; /** * 排除的动作 */ private excludeActions; /** * 输出模型 */ private outputModel; /** * 创建Controller实例 * @param excludeActions 排除的动作 * @param outputModel 自定义输出模型 */ constructor(excludeActions?: string[], outputModel?: any | null); /** * 注册默认动作 */ private _registerDefaultActions; action(description: string, name: string, paramModel: any, schema: z.ZodSchema): (target: (...args: any[]) => Promise) => (...args: any[]) => Promise; /** * 执行单个动作 * @param action 要执行的动作 * @param browserContext 浏览器上下文 * @param pageExtractionLlm 页面提取LLM(可选) * @param sensitiveData 敏感数据(可选) * @param availableFilePaths 可用文件路径(可选) * @returns 动作执行结果 */ act(action: ActionModel, browserContext: BrowserContext, pageExtractionLlm?: BaseChatModel, sensitiveData?: Record, availableFilePaths?: string[]): Promise; /** * 执行多个动作 * @param actions 要执行的动作列表 * @param browserContext 浏览器上下文 * @param checkBreakIfPaused 检查是否暂停的回调函数 * @param checkForNewElements 是否检查新元素(默认为true) * @param pageExtractionLlm 页面提取LLM(可选) * @param sensitiveData 敏感数据(可选) * @param availableFilePaths 可用文件路径(可选) * @returns 动作执行结果列表 */ multiAct(actions: ActionModel[], browserContext: BrowserContext, checkBreakIfPaused: () => boolean, checkForNewElements?: boolean, pageExtractionLlm?: BaseChatModel, sensitiveData?: Record, availableFilePaths?: string[]): Promise; }