import { MobileFindElementDescriptor } from '../../mablscriptFind';
import { StepDescriptor } from '../StepDescriptor';
import { StepWithMobileElementFindDescriptor } from './StepWithMobileFindDescriptor';
export interface CoordinatePercent {
    xPercent: number;
    yPercent: number;
}
export interface ScrollCoordinates {
    from: CoordinatePercent;
    to: CoordinatePercent;
}
export declare enum ScrollDirection {
    Down = "down",
    Left = "left",
    Right = "right",
    Up = "up"
}
export declare enum ScrollType {
    ScrollDeviceScreen = "scroll_device_screen",
    ScrollToElement = "scroll_to_element",
    ScrollWithinElement = "scroll_within_element"
}
export interface ScrollDeviceStepDescriptor extends StepDescriptor {
    coordinates: ScrollCoordinates;
    scrollDirection: ScrollDirection;
    scrollType: ScrollType.ScrollDeviceScreen;
}
export interface ScrollToElementStepDescriptor extends StepDescriptor {
    coordinates?: ScrollCoordinates;
    find?: MobileFindElementDescriptor;
    targetElementDescriptor: MobileFindElementDescriptor;
    maxScrollAttempts: number;
    scrollDirection: ScrollDirection;
    scrollType: ScrollType.ScrollToElement;
}
export interface ScrollWithinElementStepDescriptor extends StepWithMobileElementFindDescriptor {
    coordinates: ScrollCoordinates;
    scrollDirection: ScrollDirection;
    scrollType: ScrollType.ScrollWithinElement;
}
export type ScrollStepDescriptor = ScrollDeviceStepDescriptor | ScrollToElementStepDescriptor | ScrollWithinElementStepDescriptor;
export declare function isScrollToElementStepDescriptor(step: any): step is ScrollToElementStepDescriptor;
export declare function isScrollWithinElementStepDescriptor(step: any): step is ScrollWithinElementStepDescriptor;
export declare function isScrollDeviceStepDescriptor(step: any): step is ScrollDeviceStepDescriptor;
//# sourceMappingURL=ScrollStepDescriptor.d.ts.map