import type { BrowserUserContext } from './browser.js'; import type { BrowsingContextBrowsingContext } from './browsing_context.js'; import type { EmptyParams, EmptyResult, Extensible } from './common.js'; export type SessionCommand = SessionEnd | SessionNew | SessionStatus | SessionSubscribe | SessionUnsubscribe; export type SessionResult = SessionEndResult | SessionNewResult | SessionStatusResult | SessionSubscribeResult | SessionUnsubscribeResult; export interface SessionCapabilitiesRequest { alwaysMatch?: SessionCapabilityRequest; firstMatch?: SessionCapabilityRequest[]; } export type SessionCapabilityRequest = Extensible & { acceptInsecureCerts?: boolean; browserName?: string; browserVersion?: string; platformName?: string; proxy?: SessionProxyConfiguration; unhandledPromptBehavior?: SessionUserPromptHandler; }; export type SessionProxyConfiguration = SessionAutodetectProxyConfiguration | SessionDirectProxyConfiguration | SessionManualProxyConfiguration | SessionPacProxyConfiguration | SessionSystemProxyConfiguration; export type SessionAutodetectProxyConfiguration = Extensible & { proxyType: "autodetect"; }; export type SessionDirectProxyConfiguration = Extensible & { proxyType: "direct"; }; export type SessionManualProxyConfiguration = SessionSocksProxyConfiguration & Extensible & { proxyType: "manual"; httpProxy?: string; sslProxy?: string; noProxy?: string[]; }; export interface SessionSocksProxyConfiguration { socksProxy: string; socksVersion: number; } export type SessionPacProxyConfiguration = Extensible & { proxyType: "pac"; proxyAutoconfigUrl: string; }; export type SessionSystemProxyConfiguration = Extensible & { proxyType: "system"; }; export interface SessionUserPromptHandler { alert?: SessionUserPromptHandlerType; beforeUnload?: SessionUserPromptHandlerType; confirm?: SessionUserPromptHandlerType; default?: SessionUserPromptHandlerType; file?: SessionUserPromptHandlerType; prompt?: SessionUserPromptHandlerType; } export type SessionUserPromptHandlerType = "accept" | "dismiss" | "ignore"; export type SessionSubscription = string; export interface SessionSubscribeParameters { events: string[]; contexts?: BrowsingContextBrowsingContext[]; userContexts?: BrowserUserContext[]; } export interface SessionUnsubscribeByIdRequest { subscriptions: SessionSubscription[]; } export interface SessionUnsubscribeByAttributesRequest { events: string[]; } export interface SessionStatus { method: "session.status"; params: EmptyParams; } export interface SessionStatusResult { ready: boolean; message: string; } export interface SessionNew { method: "session.new"; params: SessionNewParameters; } export interface SessionNewParameters { capabilities: SessionCapabilitiesRequest; } export interface SessionNewResult { sessionId: string; capabilities: { acceptInsecureCerts: boolean; browserName: string; browserVersion: string; platformName: string; setWindowRect: boolean; userAgent: string; proxy?: SessionProxyConfiguration; unhandledPromptBehavior?: SessionUserPromptHandler; webSocketUrl?: string; }; } export interface SessionEnd { method: "session.end"; params: EmptyParams; } export type SessionEndResult = EmptyResult; export interface SessionSubscribe { method: "session.subscribe"; params: SessionSubscribeParameters; } export interface SessionSubscribeResult { subscription: SessionSubscription; } export interface SessionUnsubscribe { method: "session.unsubscribe"; params: SessionUnsubscribeParameters; } export type SessionUnsubscribeParameters = SessionUnsubscribeByAttributesRequest | SessionUnsubscribeByIdRequest; export type SessionUnsubscribeResult = EmptyResult; export declare class Session { private readonly bidi; private constructor(); static create(driver: unknown): Promise; end(): Promise; new(params: SessionNewParameters): Promise; status(): Promise; subscribe(params: SessionSubscribeParameters): Promise; unsubscribe(params: SessionUnsubscribeParameters): Promise; }