async swipe(direction, speed = 'fast', normalizedSwipeOffset = NaN, normalizedStartingPointX = NaN, normalizedStartingPointY = NaN) {
    normalizedSwipeOffset = Number.isNaN(normalizedSwipeOffset) ? 0.75 : normalizedSwipeOffset;

    // override the user's element selection with an extended matcher that avoids RN issues with RCTScrollView
    this._matcher = this._matcher._avoidProblematicReactNativeElements();

    const action = new actions.SwipeAction(direction, speed, normalizedSwipeOffset, normalizedStartingPointX, normalizedStartingPointY);
    const traceDescription = actionDescription.swipe(direction, speed, normalizedSwipeOffset, normalizedStartingPointX, normalizedStartingPointY);
    return await new ActionInteraction(this._invocationManager, this._matcher, action, traceDescription).execute();
  }
@param {'up' | 'right' | 'down' | 'left'} direction
@param {'slow' | 'fast'} [speed]
@param {number} [normalizedSwipeOffset] - swipe amount relative to the screen width/height
@param {number} [normalizedStartingPointX] - X coordinate of swipe starting point, relative to the view width
@param {number} [normalizedStartingPointY] - Y coordinate of swipe starting point, relative to the view height