import type { Server } from "node:http"; import type { ResolvedBrowserConfig } from "./browser-profiles.js"; import { loadActivatedBundledPluginPublicSurfaceModuleSync } from "./facade-runtime.js"; export type BrowserBridge = { server: Server; port: number; baseUrl: string; state: { resolved: ResolvedBrowserConfig; }; }; type BrowserBridgeFacadeModule = { startBrowserBridgeServer(params: { resolved: ResolvedBrowserConfig; host?: string; port?: number; authToken?: string; authPassword?: string; onEnsureAttachTarget?: (profile: unknown) => Promise; resolveSandboxNoVncToken?: (token: string) => { noVncPort: number; password?: string } | null; }): Promise; stopBrowserBridgeServer(server: Server): Promise; }; function loadFacadeModule(): BrowserBridgeFacadeModule { return loadActivatedBundledPluginPublicSurfaceModuleSync({ dirName: "browser", artifactBasename: "runtime-api.js", }); } export async function startBrowserBridgeServer( params: Parameters[0], ): Promise { return await loadFacadeModule().startBrowserBridgeServer(params); } export async function stopBrowserBridgeServer(server: Server): Promise { await loadFacadeModule().stopBrowserBridgeServer(server); }