/** * Human-like behavioral layer for cloakbrowser — Puppeteer edition. * * Mirrors Playwright humanize architecture, adapted for Puppeteer API. * * Patches ALL native Puppeteer interaction surfaces: * * PAGE-LEVEL: * click (with clickCount support for dblclick), hover, type, * select, focus, tap, goto * * MOUSE: * move, click (with clickCount support for dblclick), wheel, * dragAndDrop * * KEYBOARD: * type, down, up, press, sendCharacter * * FRAME-LEVEL: * click, hover, type, select, focus, tap * + $, $$, waitForSelector (return patched ElementHandles) * * ELEMENTHANDLE-LEVEL (Puppeteer-specific, no Playwright equivalent): * click (with clickCount), hover, type, press, tap, select, * focus, drop, dragAndDrop * + $, $$, waitForSelector (nested elements are also patched) * * BROWSER-LEVEL: * newPage, createBrowserContext / createIncognitoBrowserContext, * targetcreated event * * Stealth-aware: * - isInputElement / isSelectorFocused use CDP Isolated Worlds * - Shift symbol typing uses CDP Input.dispatchKeyEvent (isTrusted=true) * - ElementHandle isInput check uses CDP DOM.describeNode (no JS execution) * - Falls back to page.evaluate only when CDP session is unavailable * * Puppeteer-specific adaptations: * - page.createCDPSession() instead of context.newCDPSession(page) * - page.viewport() instead of page.viewportSize() * - page.$(selector) instead of page.locator(selector) * - keyboard.sendCharacter() mapped via RawKeyboard.insertText * - mouse.wheel({deltaX, deltaY}) object form adapted to (dx, dy) * - page.select() instead of page.selectOption() * - ElementHandle prototype patching (Puppeteer-only) * - No page.dblclick() — Puppeteer uses click({clickCount:2}) */ import type { Browser, Page } from 'puppeteer-core'; import type { HumanConfig } from '../human/config.js'; export type { HumanConfig } from '../human/config.js'; export { resolveConfig, mergeConfig } from '../human/config.js'; export { humanMove, humanClick, clickTarget, humanIdle } from '../human/mouse.js'; export { humanType } from './keyboard.js'; export { scrollToElement, humanScrollIntoView } from './scroll.js'; declare class CursorState { x: number; y: number; initialized: boolean; } declare function patchPage(page: Page, cfg: HumanConfig, cursor: CursorState): void; export declare function patchBrowser(browser: Browser, cfg: HumanConfig): void; export { patchPage }; //# sourceMappingURL=index.d.ts.map