/**
 * cloakbrowser-human — Human-like scrolling via mouse wheel events.
 * Adapted for Puppeteer API.
 *
 * Changes from Playwright version:
 *   - page.viewport() instead of page.viewportSize()
 *   - page.$(selector) + el.boundingBox() instead of page.locator().boundingBox()
 *   - boundingBox() has no timeout param — we poll page.$() up to ``timeout`` ms
 */
import type { Page } from 'puppeteer-core';
import type { HumanConfig } from '../human/config.js';
import { RawMouse } from '../human/mouse.js';
interface ElementBounds {
    x: number;
    y: number;
    width: number;
    height: number;
}
export declare function smoothWheel(raw: RawMouse, delta: number, cfg: HumanConfig, axis?: 'x' | 'y'): Promise<void>;
/**
 * Humanized scrolling that takes an arbitrary ``getBox`` callable.
 * Used by both ``scrollToElement`` (selector-based) and the ElementHandle
 * ``scrollIntoView`` patch.
 */
export declare function humanScrollIntoView(page: Page, raw: RawMouse, getBox: () => Promise<ElementBounds | null>, cursorX: number, cursorY: number, cfg: HumanConfig): Promise<{
    box: ElementBounds;
    cursorX: number;
    cursorY: number;
}>;
/**
 * Selector-based humanized scroll (Puppeteer).
 *
 * ``timeout`` controls how long we poll ``page.$(selector)`` before giving up,
 * so callers like ``page.click('#x', { timeout: 5000 })`` can wait longer for
 * slow-loading elements (#172). Default matches Playwright's 30000ms when not specified.
 */
export declare function scrollToElement(page: Page, raw: RawMouse, selector: string, cursorX: number, cursorY: number, cfg: HumanConfig, timeout?: number): Promise<{
    box: ElementBounds;
    cursorX: number;
    cursorY: number;
}>;
export {};
//# sourceMappingURL=scroll.d.ts.map