/**-----------------------------------------------------------------------------------------
* Copyright © 2026 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the project root for more information
*-------------------------------------------------------------------------------------------*/
import { ScrollAxis, ScrollDirection } from './drag-scroll-settings';
/**
 * @hidden
 *
 * Scrolls the element in the given direction by the provided step in the provided scroll axis.
 *
 * If the targeted scroll incrementation doesn't yield any result due to device pixel ratio issues (https://github.com/dimitar-pechev/RenderingIndependentScrollOffsets#readme),
 * increments the step with 1px and again attempts to change the scrollTop of the element, until the content is actually scrolled.
 *
 * Cuts the operation short after 20 unsuccessful attempts to prevent infinite loops in possible corner-case scenarios.
 */
export declare const scrollElement: (element: Element, step: number, direction: ScrollDirection, scrollAxis: ScrollAxis) => void;
/**
 * @hidden
 *
 * As client coordinates are not restricted to the range 0px - {viewportSize}px, but can have negative starting values or ending values greater than the viewport size,
 * this function extracts the visible boundaries of the provided element - fall-backing to 0 when the top/left are below 0,
 * and fall-backing to the actual visible size of the container for bottom/right.
 */
export declare const getViewportBoundaries: (element: Element) => {
    top: number;
    left: number;
    right: number;
    bottom: number;
};
