import type { EmptyParams, EmptyResult, JsInt, JsUint } from './common.js'; import type { SessionProxyConfiguration, SessionUserPromptHandler } from './session.js'; export type BrowserCommand = BrowserClose | BrowserCreateUserContext | BrowserGetClientWindows | BrowserGetUserContexts | BrowserRemoveUserContext | BrowserSetClientWindowState | BrowserSetDownloadBehavior; export type BrowserResult = BrowserCloseResult | BrowserCreateUserContextResult | BrowserGetClientWindowsResult | BrowserGetUserContextsResult | BrowserRemoveUserContextResult | BrowserSetClientWindowStateResult | BrowserSetDownloadBehaviorResult; export type BrowserClientWindow = string; export interface BrowserClientWindowInfo { active: boolean; clientWindow: BrowserClientWindow; height: JsUint; state: "fullscreen" | "maximized" | "minimized" | "normal"; width: JsUint; x: JsInt; y: JsInt; } export type BrowserUserContext = string; export interface BrowserUserContextInfo { userContext: BrowserUserContext; } export interface BrowserClose { method: "browser.close"; params: EmptyParams; } export type BrowserCloseResult = EmptyResult; export interface BrowserCreateUserContext { method: "browser.createUserContext"; params: BrowserCreateUserContextParameters; } export interface BrowserCreateUserContextParameters { acceptInsecureCerts?: boolean; proxy?: SessionProxyConfiguration; unhandledPromptBehavior?: SessionUserPromptHandler; } export type BrowserCreateUserContextResult = BrowserUserContextInfo; export interface BrowserGetClientWindows { method: "browser.getClientWindows"; params: EmptyParams; } export interface BrowserGetClientWindowsResult { clientWindows: BrowserClientWindowInfo[]; } export interface BrowserGetUserContexts { method: "browser.getUserContexts"; params: EmptyParams; } export interface BrowserGetUserContextsResult { userContexts: BrowserUserContextInfo[]; } export interface BrowserRemoveUserContext { method: "browser.removeUserContext"; params: BrowserRemoveUserContextParameters; } export interface BrowserRemoveUserContextParameters { userContext: BrowserUserContext; } export type BrowserRemoveUserContextResult = EmptyResult; export interface BrowserSetClientWindowState { method: "browser.setClientWindowState"; params: BrowserSetClientWindowStateParameters; } export type BrowserSetClientWindowStateParameters = (BrowserClientWindowNamedState | BrowserClientWindowRectState) & { clientWindow: BrowserClientWindow; }; export interface BrowserClientWindowNamedState { state: "fullscreen" | "maximized" | "minimized"; } export interface BrowserClientWindowRectState { state: "normal"; width?: JsUint; height?: JsUint; x?: JsInt; y?: JsInt; } export type BrowserSetClientWindowStateResult = BrowserClientWindowInfo; export interface BrowserSetDownloadBehavior { method: "browser.setDownloadBehavior"; params: BrowserSetDownloadBehaviorParameters; } export interface BrowserSetDownloadBehaviorParameters { downloadBehavior: BrowserDownloadBehavior | null; userContexts?: BrowserUserContext[]; } export type BrowserDownloadBehavior = (BrowserDownloadBehaviorAllowed | BrowserDownloadBehaviorDenied); export interface BrowserDownloadBehaviorAllowed { type: "allowed"; destinationFolder: string; } export interface BrowserDownloadBehaviorDenied { type: "denied"; } export type BrowserSetDownloadBehaviorResult = EmptyResult; /** @deprecated Use {@link Browser.create} instead — will be removed in a future major version. */ export declare function getBrowserInstance(driver: unknown): Promise; export declare class Browser { private readonly bidi; private constructor(); static create(driver: unknown): Promise; close(): Promise; createUserContext(params: BrowserCreateUserContextParameters): Promise; getClientWindows(): Promise; getUserContexts(): Promise; removeUserContext(params: BrowserRemoveUserContextParameters): Promise; setClientWindowState(params: BrowserSetClientWindowStateParameters): Promise; setDownloadBehavior(params: BrowserSetDownloadBehaviorParameters): Promise; }