/**
 * cloakbrowser-human — Human-like scrolling via mouse wheel events.
 */
import type { Page } from 'playwright-core';
import { HumanConfig } from './config.js';
import { RawMouse } from './mouse.js';
interface ElementBounds {
    x: number;
    y: number;
    width: number;
    height: number;
}
/**
 * Humanized scrolling that takes an arbitrary ``getBox`` callable.
 *
 * Used by both ``scrollToElement`` (selector-based) and the ElementHandle
 * ``scrollIntoViewIfNeeded`` patch so the same accelerate → cruise →
 * decelerate → overshoot behavior runs everywhere.
 */
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;
    didScroll: boolean;
}>;
/**
 * Selector-based humanized scroll.
 *
 * ``timeout`` is forwarded to Playwright's ``boundingBox({ timeout })`` so
 * callers like ``page.click('#x', { timeout: 5000 })`` can wait longer for
 * slow-loading elements (#172). Default matches Playwright's 30000ms when not specified.
 *
 * Returns `{ box, cursorX, cursorY, didScroll }`.
 */
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;
    didScroll: boolean;
}>;
export {};
//# sourceMappingURL=scroll.d.ts.map