import type { ElementHandle, Page, BrowserContext as PlaywrightBrowserContext } from 'playwright-core'; import { BrowserState, TabInfo } from './view.js'; import type { DOMElementNode, SelectorMap } from '../dom/views.js'; import { Browser } from './browser.js'; import type { CaptchaAction } from '../llm-connectors/llm-connector.js'; import { LLMModels } from '../llm-connectors/model-factory.js'; import type { GhostCursor } from "@jwriter20/ghost-cursor-patchright-core"; export interface BrowserContextWindowSize { width: number; height: number; } export interface BrowserContextConfig { cookiesFile?: string | null; minimumWaitPageLoadTime: number; waitForNetworkIdlePageLoadTime: number; maximumWaitPageLoadTime: number; waitBetweenActions: number; disableSecurity: boolean; browserWindowSize: BrowserContextWindowSize; noViewport?: boolean | null; saveRecordingPath?: string | null; saveDownloadsPath?: string | null; tracePath?: string | null; locale?: string | null; userAgent: string; highlightElements: boolean; viewportExpansion: number; allowedDomains?: string[] | null; includeDynamicAttributes: boolean; _forceKeepContextAlive: boolean; } export declare const defaultBrowserContextConfig: BrowserContextConfig; export interface BrowserSession { context: PlaywrightBrowserContext; cachedState: BrowserState | null; } export interface BrowserContextState { targetId?: string | null; } export declare class BrowserContext { private contextId; private config; private browser; private state; private session; private currentState?; private pageEventHandler?; constructor(browser: Browser, config?: Partial, state?: BrowserContextState); /** * Initialize the browser session. * (Analogous to Python’s async context manager __aenter__) */ init(): Promise; /** * Close the browser context. * (Analogous to __aexit__ or __del__ in Python) */ close(): Promise; private _initializeSession; private _addNewPageListener; getSession(): Promise; getCurrentPage(): Promise; private _createContext; private _getCurrentPage; private _waitForStableNetwork; private _waitForPageAndFramesLoad; private _isUrlAllowed; private _checkAndHandleNavigation; navigateTo(url: string): Promise; refreshPage(): Promise; goBack(): Promise; goForward(): Promise; closeCurrentTab(): Promise; getPageHtml(): Promise; executeJavaScript(script: string): Promise; getPageStructure(): Promise; getState(): Promise; queueCaptchaAction(action: CaptchaAction): void; solveCaptcha(model?: LLMModels, cursor?: GhostCursor): Promise; private _handleCaptchaAction; private _updateState; takeScreenshot(fullPage?: boolean, element?: DOMElementNode): Promise; removeHighlights(): Promise; getLocateElement(element: DOMElementNode): Promise; _inputTextElementNode(elementNode: DOMElementNode, text: string): Promise; _clickElementNode(elementNode: DOMElementNode): Promise; getTabsInfo(): Promise; switchToTab(pageId: number): Promise; createNewTab(url?: string): Promise; getSelectorMap(): Promise; getElementByIndex(index: number): Promise; getDomElementByIndex(index: number): Promise; saveCookies(): Promise; isFileUploader(elementNode: DOMElementNode, maxDepth?: number, currentDepth?: number): Promise; getScrollInfo(page: Page): Promise<[number, number]>; resetContext(): Promise; private _getUniqueFilename; private _getCdpTargets; } //# sourceMappingURL=context.d.ts.map