import type { Matcher } from './matchers' // element interaction object returned by element(matcher) export interface SootSimElement { // reference to the matcher for lazy evaluation _matcher: Matcher tap(point?: { x?: number; y?: number }): Promise multiTap(times: number): Promise longPress(duration?: number): Promise longPressAndDrag( duration: number, normalizedStartX: number, normalizedStartY: number, targetElement: SootSimElement, normalizedEndX: number, normalizedEndY: number, speed?: string, holdDuration?: number, ): Promise typeText(text: string): Promise replaceText(text: string): Promise clearText(): Promise scroll( pixels: number, direction: 'up' | 'down' | 'left' | 'right', startPositionX?: number, startPositionY?: number, ): Promise scrollTo( edge: 'top' | 'bottom' | 'left' | 'right', startPositionX?: number, startPositionY?: number, ): Promise swipe( direction: 'up' | 'down' | 'left' | 'right', speed?: 'fast' | 'slow', percentage?: number, normalizedStartingPointX?: number, normalizedStartingPointY?: number, ): Promise setColumnToValue(column: number, value: string): Promise pinch(scale: number, speed?: 'fast' | 'slow', angle?: number): Promise rotate(radians: number, speed?: 'fast' | 'slow'): Promise takeScreenshot(name: string): Promise getAttributes(): Promise atIndex(index: number): SootSimElement }