askui 0.20.1 → 0.20.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (228) hide show
  1. package/dist/cjs/core/model/custom-element-json.d.ts +1 -1
  2. package/dist/cjs/execution/dsl.d.ts +711 -217
  3. package/dist/cjs/execution/dsl.js +763 -264
  4. package/dist/esm/core/model/custom-element-json.d.ts +1 -1
  5. package/dist/esm/execution/dsl.d.ts +711 -217
  6. package/dist/esm/execution/dsl.js +763 -264
  7. package/package.json +3 -3
  8. package/dist/cjs/core/annotation/annotation-writer.js.map +0 -1
  9. package/dist/cjs/core/annotation/annotation.js.map +0 -1
  10. package/dist/cjs/core/inference-response/inference-response.js.map +0 -1
  11. package/dist/cjs/core/inference-response/invalid-model-type-error.js.map +0 -1
  12. package/dist/cjs/core/inference-response/model-type.js.map +0 -1
  13. package/dist/cjs/core/model/annotation-result/annotation-interface.js.map +0 -1
  14. package/dist/cjs/core/model/annotation-result/boundary-box.js.map +0 -1
  15. package/dist/cjs/core/model/annotation-result/detected-element.js.map +0 -1
  16. package/dist/cjs/core/model/custom-element-json.js.map +0 -1
  17. package/dist/cjs/core/model/custom-element.js.map +0 -1
  18. package/dist/cjs/core/reporting/default-step.js.map +0 -1
  19. package/dist/cjs/core/reporting/index.js.map +0 -1
  20. package/dist/cjs/core/reporting/instruction.js.map +0 -1
  21. package/dist/cjs/core/reporting/reporter-config.js.map +0 -1
  22. package/dist/cjs/core/reporting/reporter.js.map +0 -1
  23. package/dist/cjs/core/reporting/snapshot-detail-level.js.map +0 -1
  24. package/dist/cjs/core/reporting/snapshot.js.map +0 -1
  25. package/dist/cjs/core/reporting/step-reporter.js.map +0 -1
  26. package/dist/cjs/core/reporting/step-run.js.map +0 -1
  27. package/dist/cjs/core/reporting/step-status-end.js.map +0 -1
  28. package/dist/cjs/core/reporting/step-status.js.map +0 -1
  29. package/dist/cjs/core/reporting/step.js.map +0 -1
  30. package/dist/cjs/core/runner-protocol/index.js.map +0 -1
  31. package/dist/cjs/core/runner-protocol/request/capture-screenshot-request.js.map +0 -1
  32. package/dist/cjs/core/runner-protocol/request/control-request.js.map +0 -1
  33. package/dist/cjs/core/runner-protocol/request/get-server-process-pid.js.map +0 -1
  34. package/dist/cjs/core/runner-protocol/request/index.js.map +0 -1
  35. package/dist/cjs/core/runner-protocol/request/interactive-annotation-request.js.map +0 -1
  36. package/dist/cjs/core/runner-protocol/request/read-recording-request.js.map +0 -1
  37. package/dist/cjs/core/runner-protocol/request/runner-protocol-request.js.map +0 -1
  38. package/dist/cjs/core/runner-protocol/request/start-recording-request.js.map +0 -1
  39. package/dist/cjs/core/runner-protocol/request/stop-recording-request.js.map +0 -1
  40. package/dist/cjs/core/runner-protocol/response/index.js.map +0 -1
  41. package/dist/cjs/core/ui-control-commands/action.js.map +0 -1
  42. package/dist/cjs/core/ui-control-commands/control-command-code.js.map +0 -1
  43. package/dist/cjs/core/ui-control-commands/control-command.js.map +0 -1
  44. package/dist/cjs/core/ui-control-commands/index.js.map +0 -1
  45. package/dist/cjs/core/ui-control-commands/input-event.js.map +0 -1
  46. package/dist/cjs/execution/config-error.js.map +0 -1
  47. package/dist/cjs/execution/control-command-error.js.map +0 -1
  48. package/dist/cjs/execution/credentials-args.js.map +0 -1
  49. package/dist/cjs/execution/dsl.js.map +0 -1
  50. package/dist/cjs/execution/execution-runtime.js.map +0 -1
  51. package/dist/cjs/execution/index.js.map +0 -1
  52. package/dist/cjs/execution/inference-client.js.map +0 -1
  53. package/dist/cjs/execution/inference-response-error.js.map +0 -1
  54. package/dist/cjs/execution/is-image-required-interface.js.map +0 -1
  55. package/dist/cjs/execution/misc.js.map +0 -1
  56. package/dist/cjs/execution/model-composition-branch.js.map +0 -1
  57. package/dist/cjs/execution/read-environment-credentials.js.map +0 -1
  58. package/dist/cjs/execution/read-recording-response-stream-handler.js.map +0 -1
  59. package/dist/cjs/execution/repeat-error.js.map +0 -1
  60. package/dist/cjs/execution/ui-control-client-dependency-builder.js.map +0 -1
  61. package/dist/cjs/execution/ui-control-client.js.map +0 -1
  62. package/dist/cjs/execution/ui-controller-client-connection-state.js.map +0 -1
  63. package/dist/cjs/execution/ui-controller-client-error.js.map +0 -1
  64. package/dist/cjs/execution/ui-controller-client-interface.js.map +0 -1
  65. package/dist/cjs/execution/ui-controller-client.js.map +0 -1
  66. package/dist/cjs/lib/download-binaries.js.map +0 -1
  67. package/dist/cjs/lib/index.js.map +0 -1
  68. package/dist/cjs/lib/interactive_cli/add-script-package-json.d.ts +0 -1
  69. package/dist/cjs/lib/interactive_cli/add-script-package-json.js +0 -39
  70. package/dist/cjs/lib/interactive_cli/add-script-package-json.js.map +0 -1
  71. package/dist/cjs/lib/interactive_cli/cli-options-interface.js.map +0 -1
  72. package/dist/cjs/lib/interactive_cli/cli.js.map +0 -1
  73. package/dist/cjs/lib/interactive_cli/create-example-project.js.map +0 -1
  74. package/dist/cjs/lib/interactive_cli/index.js.map +0 -1
  75. package/dist/cjs/lib/libfuse-error.js.map +0 -1
  76. package/dist/cjs/lib/logger.js.map +0 -1
  77. package/dist/cjs/lib/timeout-error.js.map +0 -1
  78. package/dist/cjs/lib/ui-controller-args.js.map +0 -1
  79. package/dist/cjs/lib/ui-controller-darwin.js.map +0 -1
  80. package/dist/cjs/lib/ui-controller-facade.js.map +0 -1
  81. package/dist/cjs/lib/ui-controller-linux.js.map +0 -1
  82. package/dist/cjs/lib/ui-controller-win32.js.map +0 -1
  83. package/dist/cjs/lib/ui-controller.js.map +0 -1
  84. package/dist/cjs/lib/unkown-error.js.map +0 -1
  85. package/dist/cjs/lib/wayland-error.js.map +0 -1
  86. package/dist/cjs/main.js.map +0 -1
  87. package/dist/cjs/shared/index.js.map +0 -1
  88. package/dist/cjs/shared/log-levels.js.map +0 -1
  89. package/dist/cjs/shared/proxy-agent-args.js.map +0 -1
  90. package/dist/cjs/utils/analytics/analytics-interface.js.map +0 -1
  91. package/dist/cjs/utils/analytics/analytics.js.map +0 -1
  92. package/dist/cjs/utils/analytics/index.js.map +0 -1
  93. package/dist/cjs/utils/analytics/installation-timestamp-create-error.js.map +0 -1
  94. package/dist/cjs/utils/analytics/installation-timestamp-get-error.js.map +0 -1
  95. package/dist/cjs/utils/analytics/installation-timestamp.js.map +0 -1
  96. package/dist/cjs/utils/analytics/user-identifier-interface.js.map +0 -1
  97. package/dist/cjs/utils/analytics/user-identifier.js.map +0 -1
  98. package/dist/cjs/utils/base_64_image/base-64-image-error.js.map +0 -1
  99. package/dist/cjs/utils/base_64_image/base-64-image-string-error.js.map +0 -1
  100. package/dist/cjs/utils/base_64_image/base-64-image.js.map +0 -1
  101. package/dist/cjs/utils/base_64_image/sharp.js.map +0 -1
  102. package/dist/cjs/utils/http/credentials.js.map +0 -1
  103. package/dist/cjs/utils/http/custom-errors/authentication-http-client-error.js.map +0 -1
  104. package/dist/cjs/utils/http/custom-errors/client-http-client-error.js.map +0 -1
  105. package/dist/cjs/utils/http/custom-errors/general-http-client-error.js.map +0 -1
  106. package/dist/cjs/utils/http/custom-errors/http-client-error.js.map +0 -1
  107. package/dist/cjs/utils/http/custom-errors/index.js.map +0 -1
  108. package/dist/cjs/utils/http/custom-errors/server-http-client-error.js.map +0 -1
  109. package/dist/cjs/utils/http/custom-errors/unkown-http-client-error.js.map +0 -1
  110. package/dist/cjs/utils/http/http-client-got.js.map +0 -1
  111. package/dist/cjs/utils/http/index.js.map +0 -1
  112. package/dist/cjs/utils/image-resize-errors/image-resizing-base-error.js.map +0 -1
  113. package/dist/cjs/utils/image-resize-errors/index.js.map +0 -1
  114. package/dist/cjs/utils/path.js.map +0 -1
  115. package/dist/cjs/utils/proxy/proxy-builder.js.map +0 -1
  116. package/dist/cjs/utils/resized-image-interface.js.map +0 -1
  117. package/dist/cjs/utils/transformations.js.map +0 -1
  118. package/dist/esm/core/annotation/annotation-writer.js.map +0 -1
  119. package/dist/esm/core/annotation/annotation.js.map +0 -1
  120. package/dist/esm/core/inference-response/inference-response.js.map +0 -1
  121. package/dist/esm/core/inference-response/invalid-model-type-error.js.map +0 -1
  122. package/dist/esm/core/inference-response/model-type.js.map +0 -1
  123. package/dist/esm/core/model/annotation-result/annotation-interface.js.map +0 -1
  124. package/dist/esm/core/model/annotation-result/boundary-box.js.map +0 -1
  125. package/dist/esm/core/model/annotation-result/detected-element.js.map +0 -1
  126. package/dist/esm/core/model/custom-element-json.js.map +0 -1
  127. package/dist/esm/core/model/custom-element.js.map +0 -1
  128. package/dist/esm/core/reporting/default-step.js.map +0 -1
  129. package/dist/esm/core/reporting/index.js.map +0 -1
  130. package/dist/esm/core/reporting/instruction.js.map +0 -1
  131. package/dist/esm/core/reporting/reporter-config.js.map +0 -1
  132. package/dist/esm/core/reporting/reporter.js.map +0 -1
  133. package/dist/esm/core/reporting/snapshot-detail-level.js.map +0 -1
  134. package/dist/esm/core/reporting/snapshot.js.map +0 -1
  135. package/dist/esm/core/reporting/step-reporter.js.map +0 -1
  136. package/dist/esm/core/reporting/step-run.js.map +0 -1
  137. package/dist/esm/core/reporting/step-status-end.js.map +0 -1
  138. package/dist/esm/core/reporting/step-status.js.map +0 -1
  139. package/dist/esm/core/reporting/step.js.map +0 -1
  140. package/dist/esm/core/runner-protocol/index.js.map +0 -1
  141. package/dist/esm/core/runner-protocol/request/capture-screenshot-request.js.map +0 -1
  142. package/dist/esm/core/runner-protocol/request/control-request.js.map +0 -1
  143. package/dist/esm/core/runner-protocol/request/get-server-process-pid.js.map +0 -1
  144. package/dist/esm/core/runner-protocol/request/index.js.map +0 -1
  145. package/dist/esm/core/runner-protocol/request/interactive-annotation-request.js.map +0 -1
  146. package/dist/esm/core/runner-protocol/request/read-recording-request.js.map +0 -1
  147. package/dist/esm/core/runner-protocol/request/runner-protocol-request.js.map +0 -1
  148. package/dist/esm/core/runner-protocol/request/start-recording-request.js.map +0 -1
  149. package/dist/esm/core/runner-protocol/request/stop-recording-request.js.map +0 -1
  150. package/dist/esm/core/runner-protocol/response/index.js.map +0 -1
  151. package/dist/esm/core/ui-control-commands/action.js.map +0 -1
  152. package/dist/esm/core/ui-control-commands/control-command-code.js.map +0 -1
  153. package/dist/esm/core/ui-control-commands/control-command.js.map +0 -1
  154. package/dist/esm/core/ui-control-commands/index.js.map +0 -1
  155. package/dist/esm/core/ui-control-commands/input-event.js.map +0 -1
  156. package/dist/esm/execution/config-error.js.map +0 -1
  157. package/dist/esm/execution/control-command-error.js.map +0 -1
  158. package/dist/esm/execution/credentials-args.js.map +0 -1
  159. package/dist/esm/execution/dsl.js.map +0 -1
  160. package/dist/esm/execution/execution-runtime.js.map +0 -1
  161. package/dist/esm/execution/index.js.map +0 -1
  162. package/dist/esm/execution/inference-client.js.map +0 -1
  163. package/dist/esm/execution/inference-response-error.js.map +0 -1
  164. package/dist/esm/execution/is-image-required-interface.js.map +0 -1
  165. package/dist/esm/execution/misc.js.map +0 -1
  166. package/dist/esm/execution/model-composition-branch.js.map +0 -1
  167. package/dist/esm/execution/read-environment-credentials.js.map +0 -1
  168. package/dist/esm/execution/read-recording-response-stream-handler.js.map +0 -1
  169. package/dist/esm/execution/repeat-error.js.map +0 -1
  170. package/dist/esm/execution/ui-control-client-dependency-builder.js.map +0 -1
  171. package/dist/esm/execution/ui-control-client.js.map +0 -1
  172. package/dist/esm/execution/ui-controller-client-connection-state.js.map +0 -1
  173. package/dist/esm/execution/ui-controller-client-error.js.map +0 -1
  174. package/dist/esm/execution/ui-controller-client-interface.js.map +0 -1
  175. package/dist/esm/execution/ui-controller-client.js.map +0 -1
  176. package/dist/esm/lib/download-binaries.js.map +0 -1
  177. package/dist/esm/lib/index.js.map +0 -1
  178. package/dist/esm/lib/interactive_cli/add-script-package-json.d.ts +0 -1
  179. package/dist/esm/lib/interactive_cli/add-script-package-json.js +0 -32
  180. package/dist/esm/lib/interactive_cli/add-script-package-json.js.map +0 -1
  181. package/dist/esm/lib/interactive_cli/cli-options-interface.js.map +0 -1
  182. package/dist/esm/lib/interactive_cli/cli.js.map +0 -1
  183. package/dist/esm/lib/interactive_cli/create-example-project.js.map +0 -1
  184. package/dist/esm/lib/interactive_cli/index.js.map +0 -1
  185. package/dist/esm/lib/libfuse-error.js.map +0 -1
  186. package/dist/esm/lib/logger.js.map +0 -1
  187. package/dist/esm/lib/timeout-error.js.map +0 -1
  188. package/dist/esm/lib/ui-controller-args.js.map +0 -1
  189. package/dist/esm/lib/ui-controller-darwin.js.map +0 -1
  190. package/dist/esm/lib/ui-controller-facade.js.map +0 -1
  191. package/dist/esm/lib/ui-controller-linux.js.map +0 -1
  192. package/dist/esm/lib/ui-controller-win32.js.map +0 -1
  193. package/dist/esm/lib/ui-controller.js.map +0 -1
  194. package/dist/esm/lib/unkown-error.js.map +0 -1
  195. package/dist/esm/lib/wayland-error.js.map +0 -1
  196. package/dist/esm/main.js.map +0 -1
  197. package/dist/esm/shared/index.js.map +0 -1
  198. package/dist/esm/shared/log-levels.js.map +0 -1
  199. package/dist/esm/shared/proxy-agent-args.js.map +0 -1
  200. package/dist/esm/utils/analytics/analytics-interface.js.map +0 -1
  201. package/dist/esm/utils/analytics/analytics.js.map +0 -1
  202. package/dist/esm/utils/analytics/index.js.map +0 -1
  203. package/dist/esm/utils/analytics/installation-timestamp-create-error.js.map +0 -1
  204. package/dist/esm/utils/analytics/installation-timestamp-get-error.js.map +0 -1
  205. package/dist/esm/utils/analytics/installation-timestamp.js.map +0 -1
  206. package/dist/esm/utils/analytics/user-identifier-interface.js.map +0 -1
  207. package/dist/esm/utils/analytics/user-identifier.js.map +0 -1
  208. package/dist/esm/utils/base_64_image/base-64-image-error.js.map +0 -1
  209. package/dist/esm/utils/base_64_image/base-64-image-string-error.js.map +0 -1
  210. package/dist/esm/utils/base_64_image/base-64-image.js.map +0 -1
  211. package/dist/esm/utils/base_64_image/sharp.js.map +0 -1
  212. package/dist/esm/utils/http/credentials.js.map +0 -1
  213. package/dist/esm/utils/http/custom-errors/authentication-http-client-error.js.map +0 -1
  214. package/dist/esm/utils/http/custom-errors/client-http-client-error.js.map +0 -1
  215. package/dist/esm/utils/http/custom-errors/general-http-client-error.js.map +0 -1
  216. package/dist/esm/utils/http/custom-errors/http-client-error.js.map +0 -1
  217. package/dist/esm/utils/http/custom-errors/index.js.map +0 -1
  218. package/dist/esm/utils/http/custom-errors/server-http-client-error.js.map +0 -1
  219. package/dist/esm/utils/http/custom-errors/unkown-http-client-error.js.map +0 -1
  220. package/dist/esm/utils/http/http-client-got.js.map +0 -1
  221. package/dist/esm/utils/http/index.js.map +0 -1
  222. package/dist/esm/utils/image-resize-errors/image-resizing-base-error.js.map +0 -1
  223. package/dist/esm/utils/image-resize-errors/index.js.map +0 -1
  224. package/dist/esm/utils/path.js.map +0 -1
  225. package/dist/esm/utils/proxy/proxy-builder.js.map +0 -1
  226. package/dist/esm/utils/resized-image-interface.js.map +0 -1
  227. package/dist/esm/utils/transformations.js.map +0 -1
  228. package/dist/example_projects_templates/configs/jasmine.config.json +0 -12
@@ -3,7 +3,7 @@ import { DetectedElement } from '../core/model/annotation-result/detected-elemen
3
3
  export declare enum Separators {
4
4
  STRING = "<|string|>"
5
5
  }
6
- export declare type INTERSECTING_OPTION = 'center' | 'bbox' | 'screen';
6
+ export declare type INTERSECTION_AREA = 'element_center_line' | 'element_edge_area' | 'display_edge_area';
7
7
  export declare type PC_KEY = 'backspace' | 'delete' | 'enter' | 'tab' | 'escape' | 'up' | 'down' | 'right' | 'left' | 'home' | 'end' | 'pageup' | 'pagedown' | 'f1' | 'f2' | 'f3' | 'f4' | 'f5' | 'f6' | 'f7' | 'f8' | 'f9' | 'f10' | 'f11' | 'f12' | 'space' | '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | 'a' | 'b' | 'c' | 'd' | 'e' | 'f' | 'g' | 'h' | 'i' | 'j' | 'k' | 'l' | 'm' | 'n' | 'o' | 'p' | 'q' | 'r' | 's' | 't' | 'u' | 'v' | 'w' | 'x' | 'y' | 'z' | 'A' | 'B' | 'C' | 'D' | 'E' | 'F' | 'G' | 'H' | 'I' | 'J' | 'K' | 'L' | 'M' | 'N' | 'O' | 'P' | 'Q' | 'R' | 'S' | 'T' | 'U' | 'V' | 'W' | 'X' | 'Y' | 'Z' | '!' | '"' | '#' | '$' | '%' | '&' | "'" | '(' | ')' | '*' | '+' | ',' | '-' | '.' | '/' | ':' | ';' | '<' | '=' | '>' | '?' | '@' | '[' | '\\' | ']' | '^' | '_' | '`' | '{' | '|' | '}' | '~ ';
8
8
  export declare type ANDROID_KEY = 'home' | 'back' | 'call' | 'endcall' | '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | 'star' | 'pound' | 'dpad_up' | 'dpad_down' | 'dpad_left' | 'dpad_right' | 'dpad_center' | 'volume_up' | 'volume_down' | 'power' | 'camera' | 'clear' | 'a' | 'b' | 'c' | 'd' | 'e' | 'f' | 'g' | 'h' | 'i' | 'j' | 'k' | 'l' | 'm' | 'n' | 'o' | 'p' | 'q' | 'r' | 's' | 't' | 'u' | 'v' | 'w' | 'x' | 'y' | 'z' | 'comma' | 'period' | 'alt_left' | 'alt_right' | 'shift_left' | 'shift_right' | 'tab' | 'space' | 'sym' | 'explorer' | 'envelope' | 'enter' | 'del' | 'grave' | 'minus' | 'equals' | 'left_bracket' | 'right_bracket' | 'backslash' | 'semicolon' | 'apostrophe' | 'slash' | 'at' | 'num' | 'headsethook' | 'focus' | 'plus' | 'menu' | 'notification' | 'search' | 'media_play_pause' | 'media_stop' | 'media_next' | 'media_previous' | 'media_rewind' | 'media_fast_forward' | 'mute' | 'page_up' | 'page_down' | 'switch_charset' | 'escape' | 'forward_del' | 'ctrl_left' | 'ctrl_right' | 'caps_lock' | 'scroll_lock' | 'function' | 'break' | 'move_home' | 'move_end' | 'insert' | 'forward' | 'media_play' | 'media_pause' | 'media_close' | 'media_eject' | 'media_record' | 'f1' | 'f2' | 'f3' | 'f4' | 'f5' | 'f6' | 'f7' | 'f8' | 'f9' | 'f10' | 'f11' | 'f12' | 'num_lock' | 'numpad_0' | 'numpad_1' | 'numpad_2' | 'numpad_3' | 'numpad_4' | 'numpad_5' | 'numpad_6' | 'numpad_7' | 'numpad_8' | 'numpad_9' | 'numpad_divide' | 'numpad_multiply' | 'numpad_subtract' | 'numpad_add' | 'numpad_dot' | 'numpad_comma' | 'numpad_enter' | 'numpad_equals' | 'numpad_left_paren' | 'numpad_right_paren' | 'volume_mute' | 'info' | 'channel_up' | 'channel_down' | 'zoom_in' | 'zoom_out' | 'window' | 'guide' | 'bookmark' | 'captions' | 'settings' | 'app_switch' | 'language_switch' | 'contacts' | 'calendar' | 'music' | 'calculator' | 'assist' | 'brightness_down' | 'brightness_up' | 'media_audio_track' | 'sleep' | 'wakeup' | 'pairing' | 'media_top_menu' | 'last_channel' | 'tv_data_service' | 'voice_assist' | 'help' | 'navigate_previous' | 'navigate_next' | 'navigate_in' | 'navigate_out' | 'dpad_up_left' | 'dpad_down_left' | 'dpad_up_right' | 'dpad_down_right' | 'media_skip_forward' | 'media_skip_backward' | 'media_step_forward' | 'media_step_backward' | 'soft_sleep' | 'cut' | 'copy' | 'paste' | 'all_apps' | 'refresh';
9
9
  export declare type MODIFIER_KEY = 'command' | 'alt' | 'control' | 'shift' | 'right_shift';
@@ -121,6 +121,7 @@ export declare class FluentFilters extends FluentBase {
121
121
  */
122
122
  cell(row_index: number, column_index: number): FluentFiltersOrRelations;
123
123
  /**
124
+ * Filters for a UI element 'table'.
124
125
  *
125
126
  * @return {FluentFiltersOrRelations}
126
127
  */
@@ -145,6 +146,8 @@ export declare class FluentFilters extends FluentBase {
145
146
  * await aui.click().text().withTextRegex('\b[Ss]\w+').exec();
146
147
  * ```
147
148
  *
149
+ * @param {string} [text] - A text to be matched.
150
+ *
148
151
  * @return {FluentFiltersOrRelations}
149
152
  */
150
153
  text(text?: string): FluentFiltersOrRelations;
@@ -166,9 +169,9 @@ export declare class FluentFilters extends FluentBase {
166
169
  */
167
170
  icon(): FluentFiltersOrRelations;
168
171
  /**
169
- * Filters for a 'custom element', that is a UI element which is defined by providing an image and other parameters such as degree of rotation. It allows filtering for a UI element based on an image instead of using text or element descriptions like `button().withText('Submit')` in `await aui.click().button().withText('Submit').exec()`.
172
+ * Filters for a 'custom element', that is a UI element that is defined by providing an image and other parameters such as degree of rotation. It allows filtering for a UI element based on an image instead of using text or element descriptions like `button().withText('Submit')` in `await aui.click().button().withText('Submit').exec()`.
170
173
  *
171
- * See the tutorial - [Custom Element](https://docs.askui.com/docs/general/Tutorials/custom-element) for more detail.
174
+ * See the tutorial - [Custom Element](https://docs.askui.com/docs/general/Element%20Selection/custom-elements) for more details.
172
175
  *
173
176
  * **Example**
174
177
  * ```typescript
@@ -177,7 +180,7 @@ export declare class FluentFilters extends FluentBase {
177
180
  * .customElement({
178
181
  * customImage: './logo.png', // required
179
182
  * name: 'myLogo', // optional
180
- * threshold: 0.9, // optional, defaults to 0.9
183
+ * threshold: 0.5, // optional, defaults to 0.5
181
184
  * stopThreshold: 0.9, // optional, defaults to 0.9
182
185
  * rotationDegreePerStep: 0, // optional, defaults to 0
183
186
  * imageCompareFormat: 'grayscale', // optional, defaults to 'grayscale'
@@ -193,13 +196,13 @@ export declare class FluentFilters extends FluentBase {
193
196
  * - **name** (*`string`, optional*):
194
197
  * - A unique name that can be used for filtering for the custom element. If not given, any text inside the custom image will be detected via OCR.
195
198
  * - **threshold** (*`number`, optional*):
196
- * - A threshold for how much a UI element needs to be similar to the custom element as defined by the image. Takes values between `0.0` (== all elements are recognized as the custom element which is probably not what you want) and `1.0` (== elements need to look exactly like the `customImage` which is unlikely to be achieved as even minor differences count). Defaults to `0.9`.
199
+ * - A threshold for how much a UI element needs to be similar to the custom element as defined by the image. Takes values between `0.0` (== all elements are recognized as the custom element which is probably not what you want) and `1.0` (== elements need to look exactly like the `customImage` which is unlikely to be achieved as even minor differences count). Defaults to `0.5`.
197
200
  * - **stopThreshold** (*`number`, optional*):
198
201
  * - A threshold for when to stop searching for UI elements similar to the custom element. As soon as UI elements have been found that are at least as similar as the `stopThreshold`, the search is going to stop. After that elements are filtered using the `threshold`. Because of that the `stopThreshold` should be greater than or equal to `threshold`. It is primarily to be used as a speed improvement (by lowering the value). Takes values between `0.0` and `1.0`. Defaults to `0.9`.
199
202
  * - **rotationDegreePerStep** (*`number`, optional*):
200
203
  * - Step size in rotation degree. Rotates the custom image by this step size until 360° is exceeded. The range is from `0` to `360`. Defaults to `0`.
201
204
  * - **imageCompareFormat** (*`'RGB' | 'grayscale' | 'edges'`, optional*):
202
- * - The color compare style. 'edges' compares only edges, 'greyscale' compares the brightness of each pixel whereas 'RGB' compares all three colors (red, green, blue). Defaults to 'grayscale'.
205
+ * - The color compare style. `'edges'` compares only edges, `'greyscale'` compares the brightness of each pixel whereas `'RGB'` compares all three colors (red, green, blue). Defaults to `'grayscale'`.
203
206
  *
204
207
  *
205
208
  * @param {CustomElementJson} customElement - The custom element to filter for.
@@ -208,7 +211,13 @@ export declare class FluentFilters extends FluentBase {
208
211
  */
209
212
  customElement(customElement: CustomElementJson): FluentFiltersOrRelations;
210
213
  /**
211
- * Detects an AI Element created with the workflow creator.
214
+ * Detects an AI Element created with the [snipping workflow](https://docs.askui.com/docs/general/Components/aielement#snipping-workflow).
215
+ *
216
+ * **Examples:**
217
+ *
218
+ * ```typescript
219
+ * await aui.click().aiElement('askui-logo').exec();
220
+ * ```
212
221
  *
213
222
  * @param {string} aiElementName - Name of the AI Element.
214
223
  *
@@ -279,12 +288,13 @@ export declare class FluentFilters extends FluentBase {
279
288
  * 'other' === withText('text') => false
280
289
  *
281
290
  * // optional parameter: similarity_score
282
- * '978-0-201-00650-6' == withText('978-0-201-00') => true with 82.76 similarity
283
- * '978-0-201-00650-6' == withText('978-0-201-00650', 90) => true with 93.75 < 90 similarity
291
+ * '978-0-201-00650-6' == withText("978-0-201-00", 90) => false with 82.76 < 90 similarity
292
+ * '978-0-201-00650-6' == withText("978-0-201-00650", 90) => true with 93.75 > 90 similarity
284
293
  * ```
285
294
  * ![](https://docs.askui.com/img/gif/withText.gif)
286
295
  *
287
296
  * @param {string} text - A text to be matched.
297
+ * @param {number} [similarityScore=70] - Similarity score minimum value, it should be between `0` and `100`.
288
298
  *
289
299
  * @return {FluentFiltersOrRelations}
290
300
  */
@@ -302,7 +312,7 @@ export declare class FluentFilters extends FluentBase {
302
312
  * await aui.get().text().withTextRegex('\b[Ss]\w+').exec()
303
313
  * ```
304
314
  *
305
- * ![](https://docs.askui.com/img/gif/withtextregex.gif)
315
+ * ![](https://docs.askui.com/img/gif/withTextRegex.gif)
306
316
  *
307
317
  *
308
318
  *
@@ -327,7 +337,7 @@ export declare class FluentFilters extends FluentBase {
327
337
  * await aui.moveMouseTo().text().withExactText('Password').exec()
328
338
  * ```
329
339
  *
330
- * ![](https://docs.askui.com/img/gif/withexacttext.gif)
340
+ * ![](https://docs.askui.com/img/gif/withExactText.gif)
331
341
  *
332
342
  *
333
343
  *
@@ -363,10 +373,10 @@ export declare class FluentFilters extends FluentBase {
363
373
  * **Important: _Matching only returns the best matching element when you use it with `get()`_**
364
374
  *
365
375
  * A bit of playing around to find a matching description is sometimes needed:
366
- * E.g., `puzzle piece` can fail while `an icon showing a puzzle piece` might work.
376
+ * For example, `puzzle piece` can fail while `an icon showing a puzzle piece` might work.
367
377
  * Generally, the more detail the better.
368
378
  *
369
- * We also recommend to not restrict the type of element by using the generalselector `element()` as shown in the examples below.
379
+ * We also recommend to not restrict the type of element by using the general selector `element()` as shown in the examples below.
370
380
  *
371
381
  * **Examples:**
372
382
  * ```typescript
@@ -520,111 +530,265 @@ export declare class FluentFiltersOrRelations extends FluentFilters {
520
530
  /**
521
531
  * Filters for an element right of another element.
522
532
  *
523
- * Takes an optional parameter `index` to select the `nth` element (starting with 0)
533
+ * Takes an optional parameter `index` to select the nth element (defaults to `0`).
534
+ *
535
+ * Takes an optional parameter `intersection_area` to specify which elements right of the other element are filtered for based on their vertical position (y-coordinates of bounding box):
536
+ * - `"element_center_line"` - considered right of the other element if element's bounding box intersects with a horizontal line passing through the center of the other element
537
+ * - `"element_edge_area"` - considered right of the other element if element's bounding box intersects with an area between the top and the bottom edge of the other element
538
+ * - `"display_edge_area"` - considered right of the other element no matter where it is placed vertically on the screen (y-axis)
524
539
  *
525
540
  * **Examples:**
526
541
  * ```typescript
527
- * -------------- -------------- --------------
528
- * | leftEl | | rightEl0 | | rightEl1 |
529
- * -------------- -------------- --------------
542
+ * ---------- --------- ---------
543
+ * | button | | text0 | | text3 |
544
+ * ---------- --------- --------- ---------
545
+ * | text1 | ---------
546
+ * --------- | text2 |
547
+ * ---------
548
+ *
549
+ * // General explanation for element_center_line
550
+ * // This will find text0 and text3
551
+ * ...text().rightOf(..., 'element_center_line').button()
552
+ *
553
+ * // General explanation for element_edge_area
554
+ * // This will find text0, text1 and text3
555
+ * ...text().rightOf(..., 'element_edge_area').button()
556
+ *
557
+ * // General explanation and display_edge_area
558
+ * // This will find text0, text1, text2 and text3
559
+ * ...text().rightOf(..., 'display_edge_area').button()
560
+ *
561
+ * // More examples:
562
+ * // Returns text0 because it is the first element rightOf button
563
+ * ...text().rightOf().button()
564
+ * ...text().rightOf(0).button()
565
+ * ...text().rightOf(0, 'element_edge_area').button()
530
566
  *
531
- * // Returns rightEl0 because rightEl0 is the first element right of leftEl
532
- * ...rightEl().rightOf().leftEl()
533
- * ...rightEl().rightOf(0).leftEl()
534
- * // Returns rightEl1 because rightEl1 is the second element right of leftEl
535
- * ...rightEl().rightOf(1).leftEl()
536
- * // Returns no element because leftEl is left of rightEl
537
- * ...leftEl().rightOf().rightEl()
567
+ * // Returns text3 because it is the second text touched by the
568
+ * // horizontal line from the center of button
569
+ * // Notice: text1 is not touched!
570
+ * ...text().rightOf(1, 'element_center_line').button()
571
+ *
572
+ * // Returns text3 because it is the third text touched by the
573
+ * // vertical area rightOf the y-axis of button
574
+ * // Notice: text2 is not touched!
575
+ * ...text().rightOf(2, 'element_edge_area').button()
576
+ *
577
+ * // Returns text2 because it is the third element rightOf button
578
+ * ...text().rightOf(2, 'display_edge_area').button()
579
+ *
580
+ * // Returns no element because button is rightOf the texts
581
+ * ...button().rightOf().text()
538
582
  * ```
539
583
  * ![](https://docs.askui.com/img/gif/rightOf.gif)
540
584
  *
585
+ * @param {number} [index=0] - Index of element to filter for going into the direction specified. Defaults to `0` which is the first element (zero-indexed) found in that direction.
586
+ * @param {INTERSECTION_AREA} [intersection_area="element_edge_area"] - Intersecting with either `"element_center_line"`, `"element_edge_area"` or `"display_edge_area"`. Defaults to `"element_edge_area"`.
587
+ *
541
588
  * @return {FluentFilters}
542
589
  */
543
- rightOf(optionalIndex?: number, intersecting?: INTERSECTING_OPTION): FluentFilters;
590
+ rightOf(index?: number, intersection_area?: INTERSECTION_AREA): FluentFilters;
544
591
  /**
545
592
  * Filters for an element left of another element.
546
593
  *
547
- * Takes an optional parameter `index` to select the `nth` element (starting with 0)
594
+ * Takes an optional parameter `index` to select the nth element (defaults to `0`).
595
+ *
596
+ * Takes an optional parameter `intersection_area` to specify which elements left of the other element are filtered for based on their vertical position (y-coordinates of bounding box):
597
+ * - `"element_center_line"` - considered left of the other element if element's bounding box intersects with a horizontal line passing through the center of the other element
598
+ * - `"element_edge_area"` - considered left of the other element if element's bounding box intersects with an area between the top and the bottom edge of the other element
599
+ * - `"display_edge_area"` - considered left of the other element no matter where it is placed vertically on the screen (y-axis)
548
600
  *
549
601
  * **Examples:**
550
602
  * ```typescript
551
- * -------------- -------------- --------------
552
- * | leftEl1 | | leftEl0 | | rightEl |
553
- * -------------- -------------- --------------
603
+ * --------- --------- ----------
604
+ * | text3 | | text0 | | button |
605
+ * --------- --------- --------- ----------
606
+ * --------- | text1 |
607
+ * | text2 | ---------
608
+ * ---------
609
+ *
610
+ * // General explanation for element_center_line
611
+ * // This will find text0 and text3
612
+ * ...text().leftOf(..., 'element_center_line').button()
613
+ *
614
+ * // General explanation for element_edge_area
615
+ * // This will find text0, text1 and text3
616
+ * ...text().leftOf(..., 'element_edge_area').button()
617
+ *
618
+ * // General explanation and display_edge_area
619
+ * // This will find text0, text1, text2 and text3
620
+ * ...text().leftOf(..., 'display_edge_area').button()
621
+ *
622
+ * // More examples:
623
+ * // Returns text0 because it is the first element leftOf button
624
+ * ...text().leftOf().button()
625
+ * ...text().leftOf(0).button()
626
+ * ...text().leftOf(0, 'element_edge_area').button()
627
+ *
628
+ * // Returns text3 because it is the second text touched by the
629
+ * // horizontal line from the center of button
630
+ * // Notice: text1 is not touched!
631
+ * ...text().leftOf(1, 'element_center_line').button()
554
632
  *
555
- * // Returns leftEl0 because leftEl0 is the first element left of rightEl
556
- * ...leftEl().leftOf().rightEl()
557
- * ...leftEl().leftOf(0).rightEl()
558
- * // Returns leftEl1 because leftEl1 is the second element left of rightEl
559
- * ...leftEl().leftOf(1).rightEl()
560
- * // Returns no element because rightEl is left of leftEl
561
- * ...rightEl().leftOf().leftEl()
633
+ * // Returns text3 because it is the third text touched by the
634
+ * // vertical area leftOf the y-axis of button
635
+ * // Notice: text2 is not touched!
636
+ * ...text().leftOf(2, 'element_edge_area').button()
637
+ *
638
+ * // Returns text2 because it is the third element leftOf button
639
+ * ...text().leftOf(2, 'display_edge_area').button()
640
+ *
641
+ * // Returns no element because button is rightOf the texts
642
+ * ...button().leftOf().text()
562
643
  * ```
563
644
  * ![](https://docs.askui.com/img/gif/leftOf.gif)
564
645
  *
646
+ * @param {number} [index=0] - Index of element to filter for going into the direction specified. Defaults to `0` which is the first element (zero-indexed) found in that direction.
647
+ * @param {INTERSECTION_AREA} [intersection_area="element_edge_area"] - Intersecting with either `"element_center_line"`, `"element_edge_area"` or `"display_edge_area"`. Defaults to `"element_edge_area"`.
648
+ *
565
649
  * @return {FluentFilters}
566
650
  */
567
- leftOf(optionalIndex?: number, intersecting?: INTERSECTING_OPTION): FluentFilters;
651
+ leftOf(index?: number, intersection_area?: INTERSECTION_AREA): FluentFilters;
568
652
  /**
569
653
  * Filters for an element below another element.
570
654
  *
571
- * Takes an optional parameter `index` to select the `nth` element (starting with 0)
655
+ * Takes an optional parameter `index` to select the nth element (defaults to `0`).
656
+ *
657
+ * Takes an optional parameter `intersection_area` to specify which elements below of the other element are filtered for based on their horizontal position (y-coordinates of bounding box):
658
+ * - `"element_center_line"` - considered below of the other element if element's bounding box intersects with a vertical line passing through the center of the other element
659
+ * - `"element_edge_area"` - considered below of the other element if element's bounding box intersects with an area between the left and the right edge of the other element
660
+ * - `"display_edge_area"` - considered below of the other element no matter where it is placed horizontally on the screen (y-axis)
572
661
  *
573
662
  * **Examples:**
574
663
  * ```typescript
575
- * --------------
576
- * | text |
577
- * --------------
578
- * --------------
579
- * | button0 |
580
- * --------------
581
- * --------------
582
- * | button1 |
583
- * --------------
664
+ * ------------
665
+ * | text |
666
+ * ------------
667
+ * ------------
668
+ * | button0 |
669
+ * ------------
670
+ * -----------
671
+ * | button1 |
672
+ * -----------
673
+ * -----------
674
+ * | button2 |
675
+ * -----------
676
+ * ------------
677
+ * | button3 |
678
+ * ------------
584
679
  *
680
+ * // General explanation for element_center_line
681
+ * // This will find button0 and button3
682
+ * ...button().below(..., 'element_center_line').text()
683
+ *
684
+ * // General explanation for element_edge_area
685
+ * // This will find button0, button1 and button3
686
+ * ...button().below(..., 'element_edge_area').text()
687
+ *
688
+ * // General explanation and display_edge_area
689
+ * // This will find button0, button1, button2 and button3
690
+ * ...button().below(..., 'display_edge_area').text()
691
+ *
692
+ * // More examples:
585
693
  * // Returns button0 because button0 is the first button below text
586
694
  * ...button().below().text()
587
695
  * ...button().below(0).text()
588
- * // Returns button1 because button1 is the second button below text
589
- * ...button().below(1).text()
590
- * // Returns no element because text is above button
696
+ * ...button().below(0, 'element_edge_area').text()
697
+ *
698
+ * // Returns button3 because it is the second button touched by the
699
+ * // vertical line from the center of text
700
+ * // Notice: button1 is not touched
701
+ * ...button().below(1, 'element_center_line').text()
702
+ *
703
+ * // Returns button3 because it is the third button touched by the
704
+ * // vertical area below the x-axis of text
705
+ * // Notice: button2 is not touched!
706
+ * ...button().below(2, 'element_edge_area').text()
707
+ *
708
+ * // Returns button2 because it is the third element below text
709
+ * ...button().below(2, 'display_edge_area').text()
710
+ *
711
+ * // Returns no element because text is above the buttons
591
712
  * ...text().below().button()
592
713
  * ```
593
714
  * ![](https://docs.askui.com/img/gif/below.gif)
594
715
  *
716
+ * @param {number} [index=0] - Index of element to filter for going into the direction specified. Defaults to `0` which is the first element (zero-indexed) found in that direction.
717
+ * @param {INTERSECTION_AREA} [intersection_area="element_edge_area"] - Intersecting with either `"element_center_line"`, `"element_edge_area"` or `"display_edge_area"`. Defaults to `"element_edge_area"`.
718
+ *
595
719
  * @return {FluentFilters}
596
720
  */
597
- below(optionalIndex?: number, intersecting?: INTERSECTING_OPTION): FluentFilters;
721
+ below(index?: number, intersection_area?: INTERSECTION_AREA): FluentFilters;
598
722
  /**
599
723
  * Filters for an element above another element.
600
724
  *
601
- * Takes an optional parameter `index` to select the `nth` element (starting with 0)
602
- *
603
- * **Examples:**
604
- * ```typescript
605
- * --------------
606
- * | text1 |
607
- * --------------
608
- * --------------
609
- * | text0 |
610
- * --------------
611
- * --------------
612
- * | button |
613
- * --------------
614
- *
615
- * // Returns text0 because text0 is the first element above button
725
+ * Takes an optional parameter `index` to select the nth element (defaults to `0`).
726
+ *
727
+ * Takes an optional parameter `intersection_area` to specify which elements above of the other element are filtered for based on their horizontal position (y-coordinates of bounding box):
728
+ * - `"element_center_line"` - considered above of the other element if element's bounding box intersects with a vertical line passing through the center of the other element
729
+ * - `"element_edge_area"` - considered above of the other element if element's bounding box intersects with an area between the left and the right edge of the other element
730
+ * - `"display_edge_area"` - considered above of the other element no matter where it is placed horizontally on the screen (y-axis)
731
+ *
732
+ * **Examples:**
733
+ * ```typescript
734
+ * ------------
735
+ * | text3 |
736
+ * ------------
737
+ * ------------
738
+ * | text2 |
739
+ * ------------
740
+ * ------------
741
+ * | text1 |
742
+ * ------------
743
+ * ------------
744
+ * | text0 |
745
+ * ------------
746
+ * ------------
747
+ * | button |
748
+ * ------------
749
+ *
750
+ * // General explanation for element_center_line
751
+ * // This will find text0 and text3
752
+ * ...text().above(..., 'element_center_line').button()
753
+ *
754
+ * // General explanation for element_edge_area
755
+ * // This will find text0, text1 and text3
756
+ * ...text().above(..., 'element_edge_area').button()
757
+ *
758
+ * // General explanation and display_edge_area
759
+ * // This will find text0, text1, text2 and text3
760
+ * ...text().above(..., 'display_edge_area').button()
761
+ *
762
+ * // More examples:
763
+ * // Returns text0 because it is the first element above button
616
764
  * ...text().above().button()
617
765
  * ...text().above(0).button()
618
- * // Returns text1 because text1 is the second element above button
619
- * ...text().above(1).button()
620
- * // Returns no element because button is below text
766
+ * ...text().above(0, 'element_edge_area').button()
767
+ *
768
+ * // Returns text3 because it is the second text touched by the
769
+ * // vertical line from the center of button
770
+ * // Notice: text1 is not touched!
771
+ * ...text().above(1, 'element_center_line').button()
772
+ *
773
+ * // Returns text3 because it is the third text touched by the
774
+ * // vertical area above the x-axis of button
775
+ * // Notice: text2 is not touched!
776
+ * ...text().above(2, 'element_edge_area').button()
777
+ *
778
+ * // Returns text2 because it is the third element above button
779
+ * ...text().above(2, 'display_edge_area').button()
780
+ *
781
+ * // Returns no element because button is below the texts
621
782
  * ...button().above().text()
622
783
  * ```
623
784
  * ![](https://docs.askui.com/img/gif/above.gif)
624
785
  *
786
+ * @param {number} [index=0] - Index of element to filter for going into the direction specified. Defaults to `0` which is the first element (zero-indexed) found in that direction.
787
+ * @param {INTERSECTION_AREA} [intersection_area="element_edge_area"] - Intersecting with either `"element_center_line"`, `"element_edge_area"` or `"display_edge_area"`. Defaults to `"element_edge_area"`.
788
+ *
625
789
  * @return {FluentFilters}
626
790
  */
627
- above(optionalIndex?: number, intersecting?: INTERSECTING_OPTION): FluentFilters;
791
+ above(index?: number, intersection_area?: INTERSECTION_AREA): FluentFilters;
628
792
  /**
629
793
  * Filters for an element nearest to another element.
630
794
  *
@@ -767,6 +931,7 @@ export declare class FluentFiltersCondition extends FluentBase {
767
931
  */
768
932
  cell(row_index: number, column_index: number): FluentFiltersOrRelationsCondition;
769
933
  /**
934
+ * Filters for a UI element 'table'.
770
935
  *
771
936
  * @return {FluentFiltersOrRelationsCondition}
772
937
  */
@@ -791,6 +956,8 @@ export declare class FluentFiltersCondition extends FluentBase {
791
956
  * await aui.click().text().withTextRegex('\b[Ss]\w+').exec();
792
957
  * ```
793
958
  *
959
+ * @param {string} [text] - A text to be matched.
960
+ *
794
961
  * @return {FluentFiltersOrRelationsCondition}
795
962
  */
796
963
  text(text?: string): FluentFiltersOrRelationsCondition;
@@ -812,9 +979,9 @@ export declare class FluentFiltersCondition extends FluentBase {
812
979
  */
813
980
  icon(): FluentFiltersOrRelationsCondition;
814
981
  /**
815
- * Filters for a 'custom element', that is a UI element which is defined by providing an image and other parameters such as degree of rotation. It allows filtering for a UI element based on an image instead of using text or element descriptions like `button().withText('Submit')` in `await aui.click().button().withText('Submit').exec()`.
982
+ * Filters for a 'custom element', that is a UI element that is defined by providing an image and other parameters such as degree of rotation. It allows filtering for a UI element based on an image instead of using text or element descriptions like `button().withText('Submit')` in `await aui.click().button().withText('Submit').exec()`.
816
983
  *
817
- * See the tutorial - [Custom Element](https://docs.askui.com/docs/general/Tutorials/custom-element) for more detail.
984
+ * See the tutorial - [Custom Element](https://docs.askui.com/docs/general/Element%20Selection/custom-elements) for more details.
818
985
  *
819
986
  * **Example**
820
987
  * ```typescript
@@ -823,7 +990,7 @@ export declare class FluentFiltersCondition extends FluentBase {
823
990
  * .customElement({
824
991
  * customImage: './logo.png', // required
825
992
  * name: 'myLogo', // optional
826
- * threshold: 0.9, // optional, defaults to 0.9
993
+ * threshold: 0.5, // optional, defaults to 0.5
827
994
  * stopThreshold: 0.9, // optional, defaults to 0.9
828
995
  * rotationDegreePerStep: 0, // optional, defaults to 0
829
996
  * imageCompareFormat: 'grayscale', // optional, defaults to 'grayscale'
@@ -839,13 +1006,13 @@ export declare class FluentFiltersCondition extends FluentBase {
839
1006
  * - **name** (*`string`, optional*):
840
1007
  * - A unique name that can be used for filtering for the custom element. If not given, any text inside the custom image will be detected via OCR.
841
1008
  * - **threshold** (*`number`, optional*):
842
- * - A threshold for how much a UI element needs to be similar to the custom element as defined by the image. Takes values between `0.0` (== all elements are recognized as the custom element which is probably not what you want) and `1.0` (== elements need to look exactly like the `customImage` which is unlikely to be achieved as even minor differences count). Defaults to `0.9`.
1009
+ * - A threshold for how much a UI element needs to be similar to the custom element as defined by the image. Takes values between `0.0` (== all elements are recognized as the custom element which is probably not what you want) and `1.0` (== elements need to look exactly like the `customImage` which is unlikely to be achieved as even minor differences count). Defaults to `0.5`.
843
1010
  * - **stopThreshold** (*`number`, optional*):
844
1011
  * - A threshold for when to stop searching for UI elements similar to the custom element. As soon as UI elements have been found that are at least as similar as the `stopThreshold`, the search is going to stop. After that elements are filtered using the `threshold`. Because of that the `stopThreshold` should be greater than or equal to `threshold`. It is primarily to be used as a speed improvement (by lowering the value). Takes values between `0.0` and `1.0`. Defaults to `0.9`.
845
1012
  * - **rotationDegreePerStep** (*`number`, optional*):
846
1013
  * - Step size in rotation degree. Rotates the custom image by this step size until 360° is exceeded. The range is from `0` to `360`. Defaults to `0`.
847
1014
  * - **imageCompareFormat** (*`'RGB' | 'grayscale' | 'edges'`, optional*):
848
- * - The color compare style. 'edges' compares only edges, 'greyscale' compares the brightness of each pixel whereas 'RGB' compares all three colors (red, green, blue). Defaults to 'grayscale'.
1015
+ * - The color compare style. `'edges'` compares only edges, `'greyscale'` compares the brightness of each pixel whereas `'RGB'` compares all three colors (red, green, blue). Defaults to `'grayscale'`.
849
1016
  *
850
1017
  *
851
1018
  * @param {CustomElementJson} customElement - The custom element to filter for.
@@ -854,7 +1021,13 @@ export declare class FluentFiltersCondition extends FluentBase {
854
1021
  */
855
1022
  customElement(customElement: CustomElementJson): FluentFiltersOrRelationsCondition;
856
1023
  /**
857
- * Detects an AI Element created with the workflow creator.
1024
+ * Detects an AI Element created with the [snipping workflow](https://docs.askui.com/docs/general/Components/aielement#snipping-workflow).
1025
+ *
1026
+ * **Examples:**
1027
+ *
1028
+ * ```typescript
1029
+ * await aui.click().aiElement('askui-logo').exec();
1030
+ * ```
858
1031
  *
859
1032
  * @param {string} aiElementName - Name of the AI Element.
860
1033
  *
@@ -925,12 +1098,13 @@ export declare class FluentFiltersCondition extends FluentBase {
925
1098
  * 'other' === withText('text') => false
926
1099
  *
927
1100
  * // optional parameter: similarity_score
928
- * '978-0-201-00650-6' == withText('978-0-201-00') => true with 82.76 similarity
929
- * '978-0-201-00650-6' == withText('978-0-201-00650', 90) => true with 93.75 < 90 similarity
1101
+ * '978-0-201-00650-6' == withText("978-0-201-00", 90) => false with 82.76 < 90 similarity
1102
+ * '978-0-201-00650-6' == withText("978-0-201-00650", 90) => true with 93.75 > 90 similarity
930
1103
  * ```
931
1104
  * ![](https://docs.askui.com/img/gif/withText.gif)
932
1105
  *
933
1106
  * @param {string} text - A text to be matched.
1107
+ * @param {number} [similarityScore=70] - Similarity score minimum value, it should be between `0` and `100`.
934
1108
  *
935
1109
  * @return {FluentFiltersOrRelationsCondition}
936
1110
  */
@@ -948,7 +1122,7 @@ export declare class FluentFiltersCondition extends FluentBase {
948
1122
  * await aui.get().text().withTextRegex('\b[Ss]\w+').exec()
949
1123
  * ```
950
1124
  *
951
- * ![](https://docs.askui.com/img/gif/withtextregex.gif)
1125
+ * ![](https://docs.askui.com/img/gif/withTextRegex.gif)
952
1126
  *
953
1127
  *
954
1128
  *
@@ -973,7 +1147,7 @@ export declare class FluentFiltersCondition extends FluentBase {
973
1147
  * await aui.moveMouseTo().text().withExactText('Password').exec()
974
1148
  * ```
975
1149
  *
976
- * ![](https://docs.askui.com/img/gif/withexacttext.gif)
1150
+ * ![](https://docs.askui.com/img/gif/withExactText.gif)
977
1151
  *
978
1152
  *
979
1153
  *
@@ -1009,10 +1183,10 @@ export declare class FluentFiltersCondition extends FluentBase {
1009
1183
  * **Important: _Matching only returns the best matching element when you use it with `get()`_**
1010
1184
  *
1011
1185
  * A bit of playing around to find a matching description is sometimes needed:
1012
- * E.g., `puzzle piece` can fail while `an icon showing a puzzle piece` might work.
1186
+ * For example, `puzzle piece` can fail while `an icon showing a puzzle piece` might work.
1013
1187
  * Generally, the more detail the better.
1014
1188
  *
1015
- * We also recommend to not restrict the type of element by using the generalselector `element()` as shown in the examples below.
1189
+ * We also recommend to not restrict the type of element by using the general selector `element()` as shown in the examples below.
1016
1190
  *
1017
1191
  * **Examples:**
1018
1192
  * ```typescript
@@ -1166,111 +1340,265 @@ export declare class FluentFiltersOrRelationsCondition extends FluentFiltersCond
1166
1340
  /**
1167
1341
  * Filters for an element right of another element.
1168
1342
  *
1169
- * Takes an optional parameter `index` to select the `nth` element (starting with 0)
1343
+ * Takes an optional parameter `index` to select the nth element (defaults to `0`).
1344
+ *
1345
+ * Takes an optional parameter `intersection_area` to specify which elements right of the other element are filtered for based on their vertical position (y-coordinates of bounding box):
1346
+ * - `"element_center_line"` - considered right of the other element if element's bounding box intersects with a horizontal line passing through the center of the other element
1347
+ * - `"element_edge_area"` - considered right of the other element if element's bounding box intersects with an area between the top and the bottom edge of the other element
1348
+ * - `"display_edge_area"` - considered right of the other element no matter where it is placed vertically on the screen (y-axis)
1170
1349
  *
1171
1350
  * **Examples:**
1172
1351
  * ```typescript
1173
- * -------------- -------------- --------------
1174
- * | leftEl | | rightEl0 | | rightEl1 |
1175
- * -------------- -------------- --------------
1352
+ * ---------- --------- ---------
1353
+ * | button | | text0 | | text3 |
1354
+ * ---------- --------- --------- ---------
1355
+ * | text1 | ---------
1356
+ * --------- | text2 |
1357
+ * ---------
1358
+ *
1359
+ * // General explanation for element_center_line
1360
+ * // This will find text0 and text3
1361
+ * ...text().rightOf(..., 'element_center_line').button()
1176
1362
  *
1177
- * // Returns rightEl0 because rightEl0 is the first element right of leftEl
1178
- * ...rightEl().rightOf().leftEl()
1179
- * ...rightEl().rightOf(0).leftEl()
1180
- * // Returns rightEl1 because rightEl1 is the second element right of leftEl
1181
- * ...rightEl().rightOf(1).leftEl()
1182
- * // Returns no element because leftEl is left of rightEl
1183
- * ...leftEl().rightOf().rightEl()
1363
+ * // General explanation for element_edge_area
1364
+ * // This will find text0, text1 and text3
1365
+ * ...text().rightOf(..., 'element_edge_area').button()
1366
+ *
1367
+ * // General explanation and display_edge_area
1368
+ * // This will find text0, text1, text2 and text3
1369
+ * ...text().rightOf(..., 'display_edge_area').button()
1370
+ *
1371
+ * // More examples:
1372
+ * // Returns text0 because it is the first element rightOf button
1373
+ * ...text().rightOf().button()
1374
+ * ...text().rightOf(0).button()
1375
+ * ...text().rightOf(0, 'element_edge_area').button()
1376
+ *
1377
+ * // Returns text3 because it is the second text touched by the
1378
+ * // horizontal line from the center of button
1379
+ * // Notice: text1 is not touched!
1380
+ * ...text().rightOf(1, 'element_center_line').button()
1381
+ *
1382
+ * // Returns text3 because it is the third text touched by the
1383
+ * // vertical area rightOf the y-axis of button
1384
+ * // Notice: text2 is not touched!
1385
+ * ...text().rightOf(2, 'element_edge_area').button()
1386
+ *
1387
+ * // Returns text2 because it is the third element rightOf button
1388
+ * ...text().rightOf(2, 'display_edge_area').button()
1389
+ *
1390
+ * // Returns no element because button is rightOf the texts
1391
+ * ...button().rightOf().text()
1184
1392
  * ```
1185
1393
  * ![](https://docs.askui.com/img/gif/rightOf.gif)
1186
1394
  *
1395
+ * @param {number} [index=0] - Index of element to filter for going into the direction specified. Defaults to `0` which is the first element (zero-indexed) found in that direction.
1396
+ * @param {INTERSECTION_AREA} [intersection_area="element_edge_area"] - Intersecting with either `"element_center_line"`, `"element_edge_area"` or `"display_edge_area"`. Defaults to `"element_edge_area"`.
1397
+ *
1187
1398
  * @return {FluentFiltersCondition}
1188
1399
  */
1189
- rightOf(optionalIndex?: number, intersecting?: INTERSECTING_OPTION): FluentFiltersCondition;
1400
+ rightOf(index?: number, intersection_area?: INTERSECTION_AREA): FluentFiltersCondition;
1190
1401
  /**
1191
1402
  * Filters for an element left of another element.
1192
1403
  *
1193
- * Takes an optional parameter `index` to select the `nth` element (starting with 0)
1404
+ * Takes an optional parameter `index` to select the nth element (defaults to `0`).
1405
+ *
1406
+ * Takes an optional parameter `intersection_area` to specify which elements left of the other element are filtered for based on their vertical position (y-coordinates of bounding box):
1407
+ * - `"element_center_line"` - considered left of the other element if element's bounding box intersects with a horizontal line passing through the center of the other element
1408
+ * - `"element_edge_area"` - considered left of the other element if element's bounding box intersects with an area between the top and the bottom edge of the other element
1409
+ * - `"display_edge_area"` - considered left of the other element no matter where it is placed vertically on the screen (y-axis)
1194
1410
  *
1195
1411
  * **Examples:**
1196
1412
  * ```typescript
1197
- * -------------- -------------- --------------
1198
- * | leftEl1 | | leftEl0 | | rightEl |
1199
- * -------------- -------------- --------------
1413
+ * --------- --------- ----------
1414
+ * | text3 | | text0 | | button |
1415
+ * --------- --------- --------- ----------
1416
+ * --------- | text1 |
1417
+ * | text2 | ---------
1418
+ * ---------
1419
+ *
1420
+ * // General explanation for element_center_line
1421
+ * // This will find text0 and text3
1422
+ * ...text().leftOf(..., 'element_center_line').button()
1423
+ *
1424
+ * // General explanation for element_edge_area
1425
+ * // This will find text0, text1 and text3
1426
+ * ...text().leftOf(..., 'element_edge_area').button()
1200
1427
  *
1201
- * // Returns leftEl0 because leftEl0 is the first element left of rightEl
1202
- * ...leftEl().leftOf().rightEl()
1203
- * ...leftEl().leftOf(0).rightEl()
1204
- * // Returns leftEl1 because leftEl1 is the second element left of rightEl
1205
- * ...leftEl().leftOf(1).rightEl()
1206
- * // Returns no element because rightEl is left of leftEl
1207
- * ...rightEl().leftOf().leftEl()
1428
+ * // General explanation and display_edge_area
1429
+ * // This will find text0, text1, text2 and text3
1430
+ * ...text().leftOf(..., 'display_edge_area').button()
1431
+ *
1432
+ * // More examples:
1433
+ * // Returns text0 because it is the first element leftOf button
1434
+ * ...text().leftOf().button()
1435
+ * ...text().leftOf(0).button()
1436
+ * ...text().leftOf(0, 'element_edge_area').button()
1437
+ *
1438
+ * // Returns text3 because it is the second text touched by the
1439
+ * // horizontal line from the center of button
1440
+ * // Notice: text1 is not touched!
1441
+ * ...text().leftOf(1, 'element_center_line').button()
1442
+ *
1443
+ * // Returns text3 because it is the third text touched by the
1444
+ * // vertical area leftOf the y-axis of button
1445
+ * // Notice: text2 is not touched!
1446
+ * ...text().leftOf(2, 'element_edge_area').button()
1447
+ *
1448
+ * // Returns text2 because it is the third element leftOf button
1449
+ * ...text().leftOf(2, 'display_edge_area').button()
1450
+ *
1451
+ * // Returns no element because button is rightOf the texts
1452
+ * ...button().leftOf().text()
1208
1453
  * ```
1209
1454
  * ![](https://docs.askui.com/img/gif/leftOf.gif)
1210
1455
  *
1456
+ * @param {number} [index=0] - Index of element to filter for going into the direction specified. Defaults to `0` which is the first element (zero-indexed) found in that direction.
1457
+ * @param {INTERSECTION_AREA} [intersection_area="element_edge_area"] - Intersecting with either `"element_center_line"`, `"element_edge_area"` or `"display_edge_area"`. Defaults to `"element_edge_area"`.
1458
+ *
1211
1459
  * @return {FluentFiltersCondition}
1212
1460
  */
1213
- leftOf(optionalIndex?: number, intersecting?: INTERSECTING_OPTION): FluentFiltersCondition;
1461
+ leftOf(index?: number, intersection_area?: INTERSECTION_AREA): FluentFiltersCondition;
1214
1462
  /**
1215
1463
  * Filters for an element below another element.
1216
1464
  *
1217
- * Takes an optional parameter `index` to select the `nth` element (starting with 0)
1465
+ * Takes an optional parameter `index` to select the nth element (defaults to `0`).
1466
+ *
1467
+ * Takes an optional parameter `intersection_area` to specify which elements below of the other element are filtered for based on their horizontal position (y-coordinates of bounding box):
1468
+ * - `"element_center_line"` - considered below of the other element if element's bounding box intersects with a vertical line passing through the center of the other element
1469
+ * - `"element_edge_area"` - considered below of the other element if element's bounding box intersects with an area between the left and the right edge of the other element
1470
+ * - `"display_edge_area"` - considered below of the other element no matter where it is placed horizontally on the screen (y-axis)
1218
1471
  *
1219
1472
  * **Examples:**
1220
1473
  * ```typescript
1221
- * --------------
1222
- * | text |
1223
- * --------------
1224
- * --------------
1225
- * | button0 |
1226
- * --------------
1227
- * --------------
1228
- * | button1 |
1229
- * --------------
1474
+ * ------------
1475
+ * | text |
1476
+ * ------------
1477
+ * ------------
1478
+ * | button0 |
1479
+ * ------------
1480
+ * -----------
1481
+ * | button1 |
1482
+ * -----------
1483
+ * -----------
1484
+ * | button2 |
1485
+ * -----------
1486
+ * ------------
1487
+ * | button3 |
1488
+ * ------------
1489
+ *
1490
+ * // General explanation for element_center_line
1491
+ * // This will find button0 and button3
1492
+ * ...button().below(..., 'element_center_line').text()
1493
+ *
1494
+ * // General explanation for element_edge_area
1495
+ * // This will find button0, button1 and button3
1496
+ * ...button().below(..., 'element_edge_area').text()
1497
+ *
1498
+ * // General explanation and display_edge_area
1499
+ * // This will find button0, button1, button2 and button3
1500
+ * ...button().below(..., 'display_edge_area').text()
1230
1501
  *
1502
+ * // More examples:
1231
1503
  * // Returns button0 because button0 is the first button below text
1232
1504
  * ...button().below().text()
1233
1505
  * ...button().below(0).text()
1234
- * // Returns button1 because button1 is the second button below text
1235
- * ...button().below(1).text()
1236
- * // Returns no element because text is above button
1506
+ * ...button().below(0, 'element_edge_area').text()
1507
+ *
1508
+ * // Returns button3 because it is the second button touched by the
1509
+ * // vertical line from the center of text
1510
+ * // Notice: button1 is not touched
1511
+ * ...button().below(1, 'element_center_line').text()
1512
+ *
1513
+ * // Returns button3 because it is the third button touched by the
1514
+ * // vertical area below the x-axis of text
1515
+ * // Notice: button2 is not touched!
1516
+ * ...button().below(2, 'element_edge_area').text()
1517
+ *
1518
+ * // Returns button2 because it is the third element below text
1519
+ * ...button().below(2, 'display_edge_area').text()
1520
+ *
1521
+ * // Returns no element because text is above the buttons
1237
1522
  * ...text().below().button()
1238
1523
  * ```
1239
1524
  * ![](https://docs.askui.com/img/gif/below.gif)
1240
1525
  *
1526
+ * @param {number} [index=0] - Index of element to filter for going into the direction specified. Defaults to `0` which is the first element (zero-indexed) found in that direction.
1527
+ * @param {INTERSECTION_AREA} [intersection_area="element_edge_area"] - Intersecting with either `"element_center_line"`, `"element_edge_area"` or `"display_edge_area"`. Defaults to `"element_edge_area"`.
1528
+ *
1241
1529
  * @return {FluentFiltersCondition}
1242
1530
  */
1243
- below(optionalIndex?: number, intersecting?: INTERSECTING_OPTION): FluentFiltersCondition;
1531
+ below(index?: number, intersection_area?: INTERSECTION_AREA): FluentFiltersCondition;
1244
1532
  /**
1245
1533
  * Filters for an element above another element.
1246
1534
  *
1247
- * Takes an optional parameter `index` to select the `nth` element (starting with 0)
1248
- *
1249
- * **Examples:**
1250
- * ```typescript
1251
- * --------------
1252
- * | text1 |
1253
- * --------------
1254
- * --------------
1255
- * | text0 |
1256
- * --------------
1257
- * --------------
1258
- * | button |
1259
- * --------------
1260
- *
1261
- * // Returns text0 because text0 is the first element above button
1535
+ * Takes an optional parameter `index` to select the nth element (defaults to `0`).
1536
+ *
1537
+ * Takes an optional parameter `intersection_area` to specify which elements above of the other element are filtered for based on their horizontal position (y-coordinates of bounding box):
1538
+ * - `"element_center_line"` - considered above of the other element if element's bounding box intersects with a vertical line passing through the center of the other element
1539
+ * - `"element_edge_area"` - considered above of the other element if element's bounding box intersects with an area between the left and the right edge of the other element
1540
+ * - `"display_edge_area"` - considered above of the other element no matter where it is placed horizontally on the screen (y-axis)
1541
+ *
1542
+ * **Examples:**
1543
+ * ```typescript
1544
+ * ------------
1545
+ * | text3 |
1546
+ * ------------
1547
+ * ------------
1548
+ * | text2 |
1549
+ * ------------
1550
+ * ------------
1551
+ * | text1 |
1552
+ * ------------
1553
+ * ------------
1554
+ * | text0 |
1555
+ * ------------
1556
+ * ------------
1557
+ * | button |
1558
+ * ------------
1559
+ *
1560
+ * // General explanation for element_center_line
1561
+ * // This will find text0 and text3
1562
+ * ...text().above(..., 'element_center_line').button()
1563
+ *
1564
+ * // General explanation for element_edge_area
1565
+ * // This will find text0, text1 and text3
1566
+ * ...text().above(..., 'element_edge_area').button()
1567
+ *
1568
+ * // General explanation and display_edge_area
1569
+ * // This will find text0, text1, text2 and text3
1570
+ * ...text().above(..., 'display_edge_area').button()
1571
+ *
1572
+ * // More examples:
1573
+ * // Returns text0 because it is the first element above button
1262
1574
  * ...text().above().button()
1263
1575
  * ...text().above(0).button()
1264
- * // Returns text1 because text1 is the second element above button
1265
- * ...text().above(1).button()
1266
- * // Returns no element because button is below text
1576
+ * ...text().above(0, 'element_edge_area').button()
1577
+ *
1578
+ * // Returns text3 because it is the second text touched by the
1579
+ * // vertical line from the center of button
1580
+ * // Notice: text1 is not touched!
1581
+ * ...text().above(1, 'element_center_line').button()
1582
+ *
1583
+ * // Returns text3 because it is the third text touched by the
1584
+ * // vertical area above the x-axis of button
1585
+ * // Notice: text2 is not touched!
1586
+ * ...text().above(2, 'element_edge_area').button()
1587
+ *
1588
+ * // Returns text2 because it is the third element above button
1589
+ * ...text().above(2, 'display_edge_area').button()
1590
+ *
1591
+ * // Returns no element because button is below the texts
1267
1592
  * ...button().above().text()
1268
1593
  * ```
1269
1594
  * ![](https://docs.askui.com/img/gif/above.gif)
1270
1595
  *
1596
+ * @param {number} [index=0] - Index of element to filter for going into the direction specified. Defaults to `0` which is the first element (zero-indexed) found in that direction.
1597
+ * @param {INTERSECTION_AREA} [intersection_area="element_edge_area"] - Intersecting with either `"element_center_line"`, `"element_edge_area"` or `"display_edge_area"`. Defaults to `"element_edge_area"`.
1598
+ *
1271
1599
  * @return {FluentFiltersCondition}
1272
1600
  */
1273
- above(optionalIndex?: number, intersecting?: INTERSECTING_OPTION): FluentFiltersCondition;
1601
+ above(index?: number, intersection_area?: INTERSECTION_AREA): FluentFiltersCondition;
1274
1602
  /**
1275
1603
  * Filters for an element nearest to another element.
1276
1604
  *
@@ -1374,7 +1702,7 @@ declare class ExecCondition extends Exec {
1374
1702
  export declare abstract class FluentCommand extends FluentBase {
1375
1703
  constructor();
1376
1704
  /**
1377
- * Expects a condition, e.g., `exists()` or `notExits()`.
1705
+ * Expects a condition, for example, `exists()` or `notExits()`.
1378
1706
  *
1379
1707
  * Use the structure `expect().<your filter>.(exists()|notExists())` as shown in the examples below.
1380
1708
  *
@@ -1412,7 +1740,7 @@ export declare abstract class FluentCommand extends FluentBase {
1412
1740
  * await aui.moveMouseTo().text().withText('Grinning_Face').exec()
1413
1741
  * ```
1414
1742
  *
1415
- * ![](https://docs.askui.com/img/gif/movemouseto.gif)
1743
+ * ![](https://docs.askui.com/img/gif/moveMouseTo.gif)
1416
1744
  *
1417
1745
  *
1418
1746
  *
@@ -1448,7 +1776,7 @@ export declare abstract class FluentCommand extends FluentBase {
1448
1776
  * await aui.scrollInside(0,-500).text().withText('Bottom sheet').exec();
1449
1777
  * ```
1450
1778
  *
1451
- * ![](https://docs.askui.com/img/gif/scrollinside.gif)
1779
+ * ![](https://docs.askui.com/img/gif/scrollInside.gif)
1452
1780
  *
1453
1781
  * @param {number} x_offset - A (positive/negative) x direction.
1454
1782
  * @param {number} y_offset - A (positive/negative) y direction.
@@ -1520,7 +1848,7 @@ export declare abstract class FluentCommand extends FluentBase {
1520
1848
  * await aui.moveMouseRelatively(0, 50).exec();
1521
1849
  * ```
1522
1850
  *
1523
- * ![](https://docs.askui.com/img/gif/movemouserelatively.gif)
1851
+ * ![](https://docs.askui.com/img/gif/moveMouseRelatively.gif)
1524
1852
  *
1525
1853
  * @param {number} x_offset - A (positive/negative) x direction.
1526
1854
  * @param {number} y_offset - A (positive/negative) y direction.
@@ -1568,7 +1896,7 @@ export declare abstract class FluentCommand extends FluentBase {
1568
1896
  */
1569
1897
  scroll(x_offset: number, y_offset: number): Exec;
1570
1898
  /**
1571
- * Executes a shell command on the device your UiController is connected to.
1899
+ * Executes a shell command on the device your AskUI Controller is connected to.
1572
1900
  *
1573
1901
  * **Example:**
1574
1902
  * ```typescript
@@ -1651,7 +1979,7 @@ export declare abstract class FluentCommand extends FluentBase {
1651
1979
  * await aui.mouseDoubleLeftClick().exec();
1652
1980
  * ```
1653
1981
  *
1654
- * ![](https://docs.askui.com/img/gif/mousedoubleleftclick.gif)
1982
+ * ![](https://docs.askui.com/img/gif/mouseDoubleLeftClick.gif)
1655
1983
  *
1656
1984
  * @return {Exec}
1657
1985
  */
@@ -1793,7 +2121,7 @@ export declare abstract class FluentCommand extends FluentBase {
1793
2121
  * await aui.pressAndroidTwoKey('volume_down', 'power').exec();
1794
2122
  * ```
1795
2123
  *
1796
- * ![](https://docs.askui.com/img/gif/pressAndroidTwoKey.gif)
2124
+ * ![](https://docs.askui.com/img/gif/pressAndroidTwoKeys.gif)
1797
2125
  *
1798
2126
  * @param {ANDROID_KEY} first_key - A Android key
1799
2127
  * @param {ANDROID_KEY} second_key - A Android key
@@ -1916,6 +2244,7 @@ export declare class FluentFiltersGetter extends FluentBase {
1916
2244
  */
1917
2245
  cell(row_index: number, column_index: number): FluentFiltersOrRelationsGetter;
1918
2246
  /**
2247
+ * Filters for a UI element 'table'.
1919
2248
  *
1920
2249
  * @return {FluentFiltersOrRelationsGetter}
1921
2250
  */
@@ -1940,6 +2269,8 @@ export declare class FluentFiltersGetter extends FluentBase {
1940
2269
  * await aui.click().text().withTextRegex('\b[Ss]\w+').exec();
1941
2270
  * ```
1942
2271
  *
2272
+ * @param {string} [text] - A text to be matched.
2273
+ *
1943
2274
  * @return {FluentFiltersOrRelationsGetter}
1944
2275
  */
1945
2276
  text(text?: string): FluentFiltersOrRelationsGetter;
@@ -1961,9 +2292,9 @@ export declare class FluentFiltersGetter extends FluentBase {
1961
2292
  */
1962
2293
  icon(): FluentFiltersOrRelationsGetter;
1963
2294
  /**
1964
- * Filters for a 'custom element', that is a UI element which is defined by providing an image and other parameters such as degree of rotation. It allows filtering for a UI element based on an image instead of using text or element descriptions like `button().withText('Submit')` in `await aui.click().button().withText('Submit').exec()`.
2295
+ * Filters for a 'custom element', that is a UI element that is defined by providing an image and other parameters such as degree of rotation. It allows filtering for a UI element based on an image instead of using text or element descriptions like `button().withText('Submit')` in `await aui.click().button().withText('Submit').exec()`.
1965
2296
  *
1966
- * See the tutorial - [Custom Element](https://docs.askui.com/docs/general/Tutorials/custom-element) for more detail.
2297
+ * See the tutorial - [Custom Element](https://docs.askui.com/docs/general/Element%20Selection/custom-elements) for more details.
1967
2298
  *
1968
2299
  * **Example**
1969
2300
  * ```typescript
@@ -1972,7 +2303,7 @@ export declare class FluentFiltersGetter extends FluentBase {
1972
2303
  * .customElement({
1973
2304
  * customImage: './logo.png', // required
1974
2305
  * name: 'myLogo', // optional
1975
- * threshold: 0.9, // optional, defaults to 0.9
2306
+ * threshold: 0.5, // optional, defaults to 0.5
1976
2307
  * stopThreshold: 0.9, // optional, defaults to 0.9
1977
2308
  * rotationDegreePerStep: 0, // optional, defaults to 0
1978
2309
  * imageCompareFormat: 'grayscale', // optional, defaults to 'grayscale'
@@ -1988,13 +2319,13 @@ export declare class FluentFiltersGetter extends FluentBase {
1988
2319
  * - **name** (*`string`, optional*):
1989
2320
  * - A unique name that can be used for filtering for the custom element. If not given, any text inside the custom image will be detected via OCR.
1990
2321
  * - **threshold** (*`number`, optional*):
1991
- * - A threshold for how much a UI element needs to be similar to the custom element as defined by the image. Takes values between `0.0` (== all elements are recognized as the custom element which is probably not what you want) and `1.0` (== elements need to look exactly like the `customImage` which is unlikely to be achieved as even minor differences count). Defaults to `0.9`.
2322
+ * - A threshold for how much a UI element needs to be similar to the custom element as defined by the image. Takes values between `0.0` (== all elements are recognized as the custom element which is probably not what you want) and `1.0` (== elements need to look exactly like the `customImage` which is unlikely to be achieved as even minor differences count). Defaults to `0.5`.
1992
2323
  * - **stopThreshold** (*`number`, optional*):
1993
2324
  * - A threshold for when to stop searching for UI elements similar to the custom element. As soon as UI elements have been found that are at least as similar as the `stopThreshold`, the search is going to stop. After that elements are filtered using the `threshold`. Because of that the `stopThreshold` should be greater than or equal to `threshold`. It is primarily to be used as a speed improvement (by lowering the value). Takes values between `0.0` and `1.0`. Defaults to `0.9`.
1994
2325
  * - **rotationDegreePerStep** (*`number`, optional*):
1995
2326
  * - Step size in rotation degree. Rotates the custom image by this step size until 360° is exceeded. The range is from `0` to `360`. Defaults to `0`.
1996
2327
  * - **imageCompareFormat** (*`'RGB' | 'grayscale' | 'edges'`, optional*):
1997
- * - The color compare style. 'edges' compares only edges, 'greyscale' compares the brightness of each pixel whereas 'RGB' compares all three colors (red, green, blue). Defaults to 'grayscale'.
2328
+ * - The color compare style. `'edges'` compares only edges, `'greyscale'` compares the brightness of each pixel whereas `'RGB'` compares all three colors (red, green, blue). Defaults to `'grayscale'`.
1998
2329
  *
1999
2330
  *
2000
2331
  * @param {CustomElementJson} customElement - The custom element to filter for.
@@ -2003,7 +2334,13 @@ export declare class FluentFiltersGetter extends FluentBase {
2003
2334
  */
2004
2335
  customElement(customElement: CustomElementJson): FluentFiltersOrRelationsGetter;
2005
2336
  /**
2006
- * Detects an AI Element created with the workflow creator.
2337
+ * Detects an AI Element created with the [snipping workflow](https://docs.askui.com/docs/general/Components/aielement#snipping-workflow).
2338
+ *
2339
+ * **Examples:**
2340
+ *
2341
+ * ```typescript
2342
+ * await aui.click().aiElement('askui-logo').exec();
2343
+ * ```
2007
2344
  *
2008
2345
  * @param {string} aiElementName - Name of the AI Element.
2009
2346
  *
@@ -2074,12 +2411,13 @@ export declare class FluentFiltersGetter extends FluentBase {
2074
2411
  * 'other' === withText('text') => false
2075
2412
  *
2076
2413
  * // optional parameter: similarity_score
2077
- * '978-0-201-00650-6' == withText('978-0-201-00') => true with 82.76 similarity
2078
- * '978-0-201-00650-6' == withText('978-0-201-00650', 90) => true with 93.75 < 90 similarity
2414
+ * '978-0-201-00650-6' == withText("978-0-201-00", 90) => false with 82.76 < 90 similarity
2415
+ * '978-0-201-00650-6' == withText("978-0-201-00650", 90) => true with 93.75 > 90 similarity
2079
2416
  * ```
2080
2417
  * ![](https://docs.askui.com/img/gif/withText.gif)
2081
2418
  *
2082
2419
  * @param {string} text - A text to be matched.
2420
+ * @param {number} [similarityScore=70] - Similarity score minimum value, it should be between `0` and `100`.
2083
2421
  *
2084
2422
  * @return {FluentFiltersOrRelationsGetter}
2085
2423
  */
@@ -2097,7 +2435,7 @@ export declare class FluentFiltersGetter extends FluentBase {
2097
2435
  * await aui.get().text().withTextRegex('\b[Ss]\w+').exec()
2098
2436
  * ```
2099
2437
  *
2100
- * ![](https://docs.askui.com/img/gif/withtextregex.gif)
2438
+ * ![](https://docs.askui.com/img/gif/withTextRegex.gif)
2101
2439
  *
2102
2440
  *
2103
2441
  *
@@ -2122,7 +2460,7 @@ export declare class FluentFiltersGetter extends FluentBase {
2122
2460
  * await aui.moveMouseTo().text().withExactText('Password').exec()
2123
2461
  * ```
2124
2462
  *
2125
- * ![](https://docs.askui.com/img/gif/withexacttext.gif)
2463
+ * ![](https://docs.askui.com/img/gif/withExactText.gif)
2126
2464
  *
2127
2465
  *
2128
2466
  *
@@ -2158,10 +2496,10 @@ export declare class FluentFiltersGetter extends FluentBase {
2158
2496
  * **Important: _Matching only returns the best matching element when you use it with `get()`_**
2159
2497
  *
2160
2498
  * A bit of playing around to find a matching description is sometimes needed:
2161
- * E.g., `puzzle piece` can fail while `an icon showing a puzzle piece` might work.
2499
+ * For example, `puzzle piece` can fail while `an icon showing a puzzle piece` might work.
2162
2500
  * Generally, the more detail the better.
2163
2501
  *
2164
- * We also recommend to not restrict the type of element by using the generalselector `element()` as shown in the examples below.
2502
+ * We also recommend to not restrict the type of element by using the general selector `element()` as shown in the examples below.
2165
2503
  *
2166
2504
  * **Examples:**
2167
2505
  * ```typescript
@@ -2315,111 +2653,265 @@ export declare class FluentFiltersOrRelationsGetter extends FluentFiltersGetter
2315
2653
  /**
2316
2654
  * Filters for an element right of another element.
2317
2655
  *
2318
- * Takes an optional parameter `index` to select the `nth` element (starting with 0)
2656
+ * Takes an optional parameter `index` to select the nth element (defaults to `0`).
2657
+ *
2658
+ * Takes an optional parameter `intersection_area` to specify which elements right of the other element are filtered for based on their vertical position (y-coordinates of bounding box):
2659
+ * - `"element_center_line"` - considered right of the other element if element's bounding box intersects with a horizontal line passing through the center of the other element
2660
+ * - `"element_edge_area"` - considered right of the other element if element's bounding box intersects with an area between the top and the bottom edge of the other element
2661
+ * - `"display_edge_area"` - considered right of the other element no matter where it is placed vertically on the screen (y-axis)
2319
2662
  *
2320
2663
  * **Examples:**
2321
2664
  * ```typescript
2322
- * -------------- -------------- --------------
2323
- * | leftEl | | rightEl0 | | rightEl1 |
2324
- * -------------- -------------- --------------
2665
+ * ---------- --------- ---------
2666
+ * | button | | text0 | | text3 |
2667
+ * ---------- --------- --------- ---------
2668
+ * | text1 | ---------
2669
+ * --------- | text2 |
2670
+ * ---------
2671
+ *
2672
+ * // General explanation for element_center_line
2673
+ * // This will find text0 and text3
2674
+ * ...text().rightOf(..., 'element_center_line').button()
2675
+ *
2676
+ * // General explanation for element_edge_area
2677
+ * // This will find text0, text1 and text3
2678
+ * ...text().rightOf(..., 'element_edge_area').button()
2679
+ *
2680
+ * // General explanation and display_edge_area
2681
+ * // This will find text0, text1, text2 and text3
2682
+ * ...text().rightOf(..., 'display_edge_area').button()
2325
2683
  *
2326
- * // Returns rightEl0 because rightEl0 is the first element right of leftEl
2327
- * ...rightEl().rightOf().leftEl()
2328
- * ...rightEl().rightOf(0).leftEl()
2329
- * // Returns rightEl1 because rightEl1 is the second element right of leftEl
2330
- * ...rightEl().rightOf(1).leftEl()
2331
- * // Returns no element because leftEl is left of rightEl
2332
- * ...leftEl().rightOf().rightEl()
2684
+ * // More examples:
2685
+ * // Returns text0 because it is the first element rightOf button
2686
+ * ...text().rightOf().button()
2687
+ * ...text().rightOf(0).button()
2688
+ * ...text().rightOf(0, 'element_edge_area').button()
2689
+ *
2690
+ * // Returns text3 because it is the second text touched by the
2691
+ * // horizontal line from the center of button
2692
+ * // Notice: text1 is not touched!
2693
+ * ...text().rightOf(1, 'element_center_line').button()
2694
+ *
2695
+ * // Returns text3 because it is the third text touched by the
2696
+ * // vertical area rightOf the y-axis of button
2697
+ * // Notice: text2 is not touched!
2698
+ * ...text().rightOf(2, 'element_edge_area').button()
2699
+ *
2700
+ * // Returns text2 because it is the third element rightOf button
2701
+ * ...text().rightOf(2, 'display_edge_area').button()
2702
+ *
2703
+ * // Returns no element because button is rightOf the texts
2704
+ * ...button().rightOf().text()
2333
2705
  * ```
2334
2706
  * ![](https://docs.askui.com/img/gif/rightOf.gif)
2335
2707
  *
2708
+ * @param {number} [index=0] - Index of element to filter for going into the direction specified. Defaults to `0` which is the first element (zero-indexed) found in that direction.
2709
+ * @param {INTERSECTION_AREA} [intersection_area="element_edge_area"] - Intersecting with either `"element_center_line"`, `"element_edge_area"` or `"display_edge_area"`. Defaults to `"element_edge_area"`.
2710
+ *
2336
2711
  * @return {FluentFiltersGetter}
2337
2712
  */
2338
- rightOf(optionalIndex?: number, intersecting?: INTERSECTING_OPTION): FluentFiltersGetter;
2713
+ rightOf(index?: number, intersection_area?: INTERSECTION_AREA): FluentFiltersGetter;
2339
2714
  /**
2340
2715
  * Filters for an element left of another element.
2341
2716
  *
2342
- * Takes an optional parameter `index` to select the `nth` element (starting with 0)
2717
+ * Takes an optional parameter `index` to select the nth element (defaults to `0`).
2718
+ *
2719
+ * Takes an optional parameter `intersection_area` to specify which elements left of the other element are filtered for based on their vertical position (y-coordinates of bounding box):
2720
+ * - `"element_center_line"` - considered left of the other element if element's bounding box intersects with a horizontal line passing through the center of the other element
2721
+ * - `"element_edge_area"` - considered left of the other element if element's bounding box intersects with an area between the top and the bottom edge of the other element
2722
+ * - `"display_edge_area"` - considered left of the other element no matter where it is placed vertically on the screen (y-axis)
2343
2723
  *
2344
2724
  * **Examples:**
2345
2725
  * ```typescript
2346
- * -------------- -------------- --------------
2347
- * | leftEl1 | | leftEl0 | | rightEl |
2348
- * -------------- -------------- --------------
2726
+ * --------- --------- ----------
2727
+ * | text3 | | text0 | | button |
2728
+ * --------- --------- --------- ----------
2729
+ * --------- | text1 |
2730
+ * | text2 | ---------
2731
+ * ---------
2732
+ *
2733
+ * // General explanation for element_center_line
2734
+ * // This will find text0 and text3
2735
+ * ...text().leftOf(..., 'element_center_line').button()
2736
+ *
2737
+ * // General explanation for element_edge_area
2738
+ * // This will find text0, text1 and text3
2739
+ * ...text().leftOf(..., 'element_edge_area').button()
2740
+ *
2741
+ * // General explanation and display_edge_area
2742
+ * // This will find text0, text1, text2 and text3
2743
+ * ...text().leftOf(..., 'display_edge_area').button()
2744
+ *
2745
+ * // More examples:
2746
+ * // Returns text0 because it is the first element leftOf button
2747
+ * ...text().leftOf().button()
2748
+ * ...text().leftOf(0).button()
2749
+ * ...text().leftOf(0, 'element_edge_area').button()
2750
+ *
2751
+ * // Returns text3 because it is the second text touched by the
2752
+ * // horizontal line from the center of button
2753
+ * // Notice: text1 is not touched!
2754
+ * ...text().leftOf(1, 'element_center_line').button()
2349
2755
  *
2350
- * // Returns leftEl0 because leftEl0 is the first element left of rightEl
2351
- * ...leftEl().leftOf().rightEl()
2352
- * ...leftEl().leftOf(0).rightEl()
2353
- * // Returns leftEl1 because leftEl1 is the second element left of rightEl
2354
- * ...leftEl().leftOf(1).rightEl()
2355
- * // Returns no element because rightEl is left of leftEl
2356
- * ...rightEl().leftOf().leftEl()
2756
+ * // Returns text3 because it is the third text touched by the
2757
+ * // vertical area leftOf the y-axis of button
2758
+ * // Notice: text2 is not touched!
2759
+ * ...text().leftOf(2, 'element_edge_area').button()
2760
+ *
2761
+ * // Returns text2 because it is the third element leftOf button
2762
+ * ...text().leftOf(2, 'display_edge_area').button()
2763
+ *
2764
+ * // Returns no element because button is rightOf the texts
2765
+ * ...button().leftOf().text()
2357
2766
  * ```
2358
2767
  * ![](https://docs.askui.com/img/gif/leftOf.gif)
2359
2768
  *
2769
+ * @param {number} [index=0] - Index of element to filter for going into the direction specified. Defaults to `0` which is the first element (zero-indexed) found in that direction.
2770
+ * @param {INTERSECTION_AREA} [intersection_area="element_edge_area"] - Intersecting with either `"element_center_line"`, `"element_edge_area"` or `"display_edge_area"`. Defaults to `"element_edge_area"`.
2771
+ *
2360
2772
  * @return {FluentFiltersGetter}
2361
2773
  */
2362
- leftOf(optionalIndex?: number, intersecting?: INTERSECTING_OPTION): FluentFiltersGetter;
2774
+ leftOf(index?: number, intersection_area?: INTERSECTION_AREA): FluentFiltersGetter;
2363
2775
  /**
2364
2776
  * Filters for an element below another element.
2365
2777
  *
2366
- * Takes an optional parameter `index` to select the `nth` element (starting with 0)
2778
+ * Takes an optional parameter `index` to select the nth element (defaults to `0`).
2779
+ *
2780
+ * Takes an optional parameter `intersection_area` to specify which elements below of the other element are filtered for based on their horizontal position (y-coordinates of bounding box):
2781
+ * - `"element_center_line"` - considered below of the other element if element's bounding box intersects with a vertical line passing through the center of the other element
2782
+ * - `"element_edge_area"` - considered below of the other element if element's bounding box intersects with an area between the left and the right edge of the other element
2783
+ * - `"display_edge_area"` - considered below of the other element no matter where it is placed horizontally on the screen (y-axis)
2367
2784
  *
2368
2785
  * **Examples:**
2369
2786
  * ```typescript
2370
- * --------------
2371
- * | text |
2372
- * --------------
2373
- * --------------
2374
- * | button0 |
2375
- * --------------
2376
- * --------------
2377
- * | button1 |
2378
- * --------------
2787
+ * ------------
2788
+ * | text |
2789
+ * ------------
2790
+ * ------------
2791
+ * | button0 |
2792
+ * ------------
2793
+ * -----------
2794
+ * | button1 |
2795
+ * -----------
2796
+ * -----------
2797
+ * | button2 |
2798
+ * -----------
2799
+ * ------------
2800
+ * | button3 |
2801
+ * ------------
2379
2802
  *
2803
+ * // General explanation for element_center_line
2804
+ * // This will find button0 and button3
2805
+ * ...button().below(..., 'element_center_line').text()
2806
+ *
2807
+ * // General explanation for element_edge_area
2808
+ * // This will find button0, button1 and button3
2809
+ * ...button().below(..., 'element_edge_area').text()
2810
+ *
2811
+ * // General explanation and display_edge_area
2812
+ * // This will find button0, button1, button2 and button3
2813
+ * ...button().below(..., 'display_edge_area').text()
2814
+ *
2815
+ * // More examples:
2380
2816
  * // Returns button0 because button0 is the first button below text
2381
2817
  * ...button().below().text()
2382
2818
  * ...button().below(0).text()
2383
- * // Returns button1 because button1 is the second button below text
2384
- * ...button().below(1).text()
2385
- * // Returns no element because text is above button
2819
+ * ...button().below(0, 'element_edge_area').text()
2820
+ *
2821
+ * // Returns button3 because it is the second button touched by the
2822
+ * // vertical line from the center of text
2823
+ * // Notice: button1 is not touched
2824
+ * ...button().below(1, 'element_center_line').text()
2825
+ *
2826
+ * // Returns button3 because it is the third button touched by the
2827
+ * // vertical area below the x-axis of text
2828
+ * // Notice: button2 is not touched!
2829
+ * ...button().below(2, 'element_edge_area').text()
2830
+ *
2831
+ * // Returns button2 because it is the third element below text
2832
+ * ...button().below(2, 'display_edge_area').text()
2833
+ *
2834
+ * // Returns no element because text is above the buttons
2386
2835
  * ...text().below().button()
2387
2836
  * ```
2388
2837
  * ![](https://docs.askui.com/img/gif/below.gif)
2389
2838
  *
2839
+ * @param {number} [index=0] - Index of element to filter for going into the direction specified. Defaults to `0` which is the first element (zero-indexed) found in that direction.
2840
+ * @param {INTERSECTION_AREA} [intersection_area="element_edge_area"] - Intersecting with either `"element_center_line"`, `"element_edge_area"` or `"display_edge_area"`. Defaults to `"element_edge_area"`.
2841
+ *
2390
2842
  * @return {FluentFiltersGetter}
2391
2843
  */
2392
- below(optionalIndex?: number, intersecting?: INTERSECTING_OPTION): FluentFiltersGetter;
2844
+ below(index?: number, intersection_area?: INTERSECTION_AREA): FluentFiltersGetter;
2393
2845
  /**
2394
2846
  * Filters for an element above another element.
2395
2847
  *
2396
- * Takes an optional parameter `index` to select the `nth` element (starting with 0)
2397
- *
2398
- * **Examples:**
2399
- * ```typescript
2400
- * --------------
2401
- * | text1 |
2402
- * --------------
2403
- * --------------
2404
- * | text0 |
2405
- * --------------
2406
- * --------------
2407
- * | button |
2408
- * --------------
2409
- *
2410
- * // Returns text0 because text0 is the first element above button
2848
+ * Takes an optional parameter `index` to select the nth element (defaults to `0`).
2849
+ *
2850
+ * Takes an optional parameter `intersection_area` to specify which elements above of the other element are filtered for based on their horizontal position (y-coordinates of bounding box):
2851
+ * - `"element_center_line"` - considered above of the other element if element's bounding box intersects with a vertical line passing through the center of the other element
2852
+ * - `"element_edge_area"` - considered above of the other element if element's bounding box intersects with an area between the left and the right edge of the other element
2853
+ * - `"display_edge_area"` - considered above of the other element no matter where it is placed horizontally on the screen (y-axis)
2854
+ *
2855
+ * **Examples:**
2856
+ * ```typescript
2857
+ * ------------
2858
+ * | text3 |
2859
+ * ------------
2860
+ * ------------
2861
+ * | text2 |
2862
+ * ------------
2863
+ * ------------
2864
+ * | text1 |
2865
+ * ------------
2866
+ * ------------
2867
+ * | text0 |
2868
+ * ------------
2869
+ * ------------
2870
+ * | button |
2871
+ * ------------
2872
+ *
2873
+ * // General explanation for element_center_line
2874
+ * // This will find text0 and text3
2875
+ * ...text().above(..., 'element_center_line').button()
2876
+ *
2877
+ * // General explanation for element_edge_area
2878
+ * // This will find text0, text1 and text3
2879
+ * ...text().above(..., 'element_edge_area').button()
2880
+ *
2881
+ * // General explanation and display_edge_area
2882
+ * // This will find text0, text1, text2 and text3
2883
+ * ...text().above(..., 'display_edge_area').button()
2884
+ *
2885
+ * // More examples:
2886
+ * // Returns text0 because it is the first element above button
2411
2887
  * ...text().above().button()
2412
2888
  * ...text().above(0).button()
2413
- * // Returns text1 because text1 is the second element above button
2414
- * ...text().above(1).button()
2415
- * // Returns no element because button is below text
2889
+ * ...text().above(0, 'element_edge_area').button()
2890
+ *
2891
+ * // Returns text3 because it is the second text touched by the
2892
+ * // vertical line from the center of button
2893
+ * // Notice: text1 is not touched!
2894
+ * ...text().above(1, 'element_center_line').button()
2895
+ *
2896
+ * // Returns text3 because it is the third text touched by the
2897
+ * // vertical area above the x-axis of button
2898
+ * // Notice: text2 is not touched!
2899
+ * ...text().above(2, 'element_edge_area').button()
2900
+ *
2901
+ * // Returns text2 because it is the third element above button
2902
+ * ...text().above(2, 'display_edge_area').button()
2903
+ *
2904
+ * // Returns no element because button is below the texts
2416
2905
  * ...button().above().text()
2417
2906
  * ```
2418
2907
  * ![](https://docs.askui.com/img/gif/above.gif)
2419
2908
  *
2909
+ * @param {number} [index=0] - Index of element to filter for going into the direction specified. Defaults to `0` which is the first element (zero-indexed) found in that direction.
2910
+ * @param {INTERSECTION_AREA} [intersection_area="element_edge_area"] - Intersecting with either `"element_center_line"`, `"element_edge_area"` or `"display_edge_area"`. Defaults to `"element_edge_area"`.
2911
+ *
2420
2912
  * @return {FluentFiltersGetter}
2421
2913
  */
2422
- above(optionalIndex?: number, intersecting?: INTERSECTING_OPTION): FluentFiltersGetter;
2914
+ above(index?: number, intersection_area?: INTERSECTION_AREA): FluentFiltersGetter;
2423
2915
  /**
2424
2916
  * Filters for an element nearest to another element.
2425
2917
  *
@@ -2507,6 +2999,7 @@ export declare abstract class Getter extends FluentCommand {
2507
2999
  * ]
2508
3000
  * ```
2509
3001
  *
3002
+ * ```typescript
2510
3003
  * // *************************************************** //
2511
3004
  * // Examples on how to work with the returned elements //
2512
3005
  * // *************************************************** //
@@ -2585,6 +3078,7 @@ export declare abstract class Getter extends FluentCommand {
2585
3078
  * xmax: 1178.8204241071428,
2586
3079
  * ymax: 180.83512834821428
2587
3080
  * },
3081
+ * },
2588
3082
  * DetectedElement {
2589
3083
  * name: 'ICON',
2590
3084
  * text: 'search',
@@ -2594,8 +3088,8 @@ export declare abstract class Getter extends FluentCommand {
2594
3088
  * xmax: 450.6304241071428,
2595
3089
  * ymax: 950.47812834821428
2596
3090
  * },
2597
- * ... 381 more items
2598
- * }
3091
+ * },
3092
+ * ... 381 more items
2599
3093
  * ]
2600
3094
  * ```
2601
3095
  *