import type { BrowserActionInput, BrowserControlResult } from '@xopcai/browser-control-contract'; import type { Config } from '../../config/schema.js'; import type { BrowserDriver } from '../drivers/browser-driver.js'; export interface BrowserRuntimeOptions { getConfig: () => Config['browser']; createDriver: () => Promise; allowedUploadRoots?: string[]; emit?: (type: string, payload: unknown) => void; } export declare class BrowserRuntime { private readonly options; private driver; private sessionsByTask; constructor(options: BrowserRuntimeOptions); execute(taskKey: string, input: BrowserActionInput, signal?: AbortSignal): Promise; shutdown(): Promise; closeTaskSession(taskKey: string): Promise; private dispatch; private executeSequence; private authorize; private validateUrl; private validateRedirect; private blockedRedirect; private crossDomainPolicy; private invalidUploadPath; private resolveSession; private getDriver; private constrainResult; private evictExpiredSessions; }