import type { BrowserSessionInspection, BrowserSessionLocator, BrowserSessionScreenshot, BrowserSessionStatus, BrowserSessionTab } from "./client.js"; export declare const BROWSER_SESSION_PROTOCOL_VERSION: 1; export declare const BROWSER_SESSION_MAX_FRAME_BYTES: number; export declare const BROWSER_SESSION_MAX_FILL_BYTES: number; export declare const BROWSER_SESSION_MAX_INSPECTION_TEXT_BYTES: number; export interface BrowserSessionDescriptor { version: typeof BROWSER_SESSION_PROTOCOL_VERSION; pid: number; created_at: string; transport: { kind: "unix"; address: string; } | { kind: "pipe"; address: string; }; token: string; } export type BrowserSessionRequest = BaseRequest<"status", Record> | BaseRequest<"inspect", { locator?: BrowserSessionLocator; }> | BaseRequest<"screenshot", { out: string; }> | BaseRequest<"tabs", Record> | BaseRequest<"select_tab", { index: number; }> | BaseRequest<"open_tab", { url: string; }> | BaseRequest<"close_tab", { index: number; }> | BaseRequest<"goto", { url: string; }> | BaseRequest<"reload", Record> | BaseRequest<"click", { locator: BrowserSessionLocator; }> | BaseRequest<"fill", { locator: BrowserSessionLocator; value: string; }> | BaseRequest<"press", { key: string; }> | BaseRequest<"wait", { locator: BrowserSessionLocator; }> | BaseRequest<"close", Record>; interface BaseRequest { version: typeof BROWSER_SESSION_PROTOCOL_VERSION; id: string; token: string; action: Action; args: Args; } export type BrowserSessionResult = BrowserSessionStatus | BrowserSessionInspection | BrowserSessionScreenshot | BrowserSessionTab[] | BrowserSessionTab | { closing: true; } | { revision: number; }; export type BrowserSessionResponse = { version: typeof BROWSER_SESSION_PROTOCOL_VERSION; id: string; ok: true; result: BrowserSessionResult; } | { version: typeof BROWSER_SESSION_PROTOCOL_VERSION; id: string; ok: false; error: { code: string; message: string; }; }; export interface BrowserSessionTarget { sessionStatus(): Promise; sessionInspect(locator?: BrowserSessionLocator): Promise; sessionScreenshot(out: string): Promise; sessionTabs(): Promise; sessionSelectTab(index: number): Promise; sessionOpenTab(url: string): Promise; sessionCloseTab(index: number): Promise; sessionGoto(url: string): Promise; sessionReload(): Promise; sessionClick(locator: BrowserSessionLocator): Promise<{ revision: number; }>; sessionFill(locator: BrowserSessionLocator, value: string): Promise<{ revision: number; }>; sessionPress(key: string): Promise<{ revision: number; }>; sessionWait(locator: BrowserSessionLocator): Promise<{ revision: number; }>; } export declare class BrowserSessionError extends Error { readonly code: string; constructor(code: string, message: string); } export interface BrowserSessionServer { descriptorPath: string; closeRequested: Promise; stopAccepting(): Promise; cleanup(): Promise; } interface StartOptions { platform?: NodeJS.Platform; actionTimeoutMs?: number; shortActionTimeoutMs?: number; } export declare function browserSessionTransport(controlFile: string, platform?: NodeJS.Platform): BrowserSessionDescriptor["transport"]; export declare function startBrowserSessionServer(controlFileInput: string, target: BrowserSessionTarget, options?: StartOptions): Promise; export declare function readBrowserSessionDescriptor(controlFileInput: string, platform?: NodeJS.Platform): BrowserSessionDescriptor; export declare function sendBrowserSessionRequest(controlFile: string, action: BrowserSessionRequest["action"], args: Record): Promise; export declare function sendRequestToDescriptor(descriptor: BrowserSessionDescriptor, request: BrowserSessionRequest): Promise; export declare function parseBrowserSessionRequest(value: unknown): BrowserSessionRequest; export {}; //# sourceMappingURL=session-control.d.ts.map