import type { ToolContext } from '@cicctencent/agent-core'; /** 会话空闲 TTL(毫秒) */ export declare const SESSION_TTL_MS: number; /** 单操作默认超时(毫秒) */ export declare const OP_TIMEOUT_MS = 30000; /** click/fill 后等待 networkidle 的最大时长(毫秒),超时降级不阻塞 */ export declare const NETWORK_IDLE_WAIT_MS = 5000; /** playwright 未安装时的统一错误消息(与既有 browser_navigate 行为一致) */ export declare const PLAYWRIGHT_MISSING_MSG: string; /** playwright 为可选依赖,无法静态 import 其类型,此处声明实际使用的成员子集 */ interface PageLike { goto(url: string, options?: any): Promise; close(): Promise; [key: string]: any; } /** 动态加载 playwright,探测结果缓存;未安装返回 null */ export declare function getPlaywright(): Promise; /** 重置 playwright 探测缓存(仅测试使用) */ export declare function resetPlaywrightProbe(): void; declare class BrowserSessionManager { private sessions; private exitHooked; private hookProcessExit; private armIdleTimer; /** 物化会话:启动浏览器并创建页面(在会话串行队列头部执行) */ private materialize; /** * 在指定会话上串行执行操作。 * 会话不存在时自动创建(启动浏览器);playwright 缺失时抛错。 */ run(sessionId: string, fn: (page: PageLike) => Promise): Promise; /** 是否存在活动会话(含尚未物化完成的) */ hasSession(sessionId: string): boolean; /** 显式关闭会话;等待进行中的操作收尾后释放浏览器 */ closeSession(sessionId: string): Promise; /** 关闭全部会话(进程退出清理) */ closeAll(): Promise; /** 当前活动会话数(测试 / 观测用) */ get size(): number; } export declare const browserSessions: BrowserSessionManager; /** * 页面截图并保存为 artifact。 * 有沙箱时写入沙箱文件系统并 emitArtifact(与既有 browser_navigate 截图路径一致); * 无沙箱时回退写系统临时目录。 * @returns 截图文件名(沙箱内)或绝对路径(临时目录) */ export declare function takeScreenshotArtifact(page: any, ctx: ToolContext, fullPage: boolean): Promise; /** 等待页面网络空闲(超时静默降级,不阻塞) */ export declare function waitNetworkIdle(page: any, timeoutMs?: number): Promise; export {}; //# sourceMappingURL=browser-session.d.ts.map