import { ScrollCoordinates, ScrollDirection } from '@mablhq/test-model/types/mobile/ScrollStepDescriptor';
import { BrowserSize } from '../../../mobile/types';
import type { BoundingBox } from '@mablhq-internal/runtime/core/common-types';
export interface ScrollExecutionCoordinates {
    fromX: number;
    fromY: number;
    slowDownValX: number;
    slowDownValY: number;
    toX: number;
    toY: number;
}
export interface ScrollConfiguration {
    boundingBox?: BoundingBox;
    element?: WebdriverIO.Element;
    scrollDirection: ScrollDirection;
    scrollPercentages?: ScrollCoordinates;
}
export interface ElementLocationAndSize {
    elementLocation: {
        x: number;
        y: number;
    };
    size: {
        height: number;
        width: number;
    };
}
export declare const MAX_SCROLL_ATTEMPTS = 100;
export declare const SLOWDOWN_PIXEL_OFFSET = 5;
export declare function scrollByCoordinates(driver: WebdriverIO.Browser, coordinates: ScrollExecutionCoordinates): Promise<void>;
export declare function getElementLocationAndSizeLimitedToDeviceScreen(deviceScreenSize: BrowserSize, element: WebdriverIO.Element | undefined, elementBoundingBox: BoundingBox | undefined): Promise<ElementLocationAndSize>;
export declare function getScrollExecutionCoordinates(deviceScreenSize: BrowserSize, scrollConfiguration: ScrollConfiguration): Promise<ScrollExecutionCoordinates>;
export declare function scrollInDirection(driver: WebdriverIO.Browser, windowSize: BrowserSize, scrollConfiguration?: ScrollConfiguration): Promise<void>;
export declare function convertElementLocationAndSizeToBoundingBox(elementLocationAndSize: ElementLocationAndSize): BoundingBox;
//# sourceMappingURL=scrollingExecutionUtil.d.ts.map