import { Button, Point } from "@nut-tree-fork/shared"; import { EasingFunction } from "./mouse-movement.function"; import { ProviderRegistry } from "@nut-tree-fork/provider-interfaces"; /** * Config object for {@link MouseClass} class */ export interface MouseConfig { /** * Configures the delay between single mouse events */ autoDelayMs: number; /** * Configures the speed in pixels/second for mouse movement */ mouseSpeed: number; } /** * {@link MouseClass} class provides methods to emulate mouse input */ export declare class MouseClass { private providerRegistry; config: MouseConfig; /** * {@link MouseClass} class constructor * @param providerRegistry */ constructor(providerRegistry: ProviderRegistry); /** * {@link setPosition} instantly moves the mouse cursor to a given {@link Point} * @param target {@link Point} to move the cursor to */ setPosition(target: Point): Promise; /** * {@link getPosition} returns a {@link Point} representing the current mouse position */ getPosition(): Promise; /** * {@link move} moves the mouse cursor along a given path of {@link Point}s, according to a movement type * @param path Array of {@link Point}s to follow * @param movementType Defines the type of mouse movement. Would allow to configured acceleration etc. (Default: {@link linear}, no acceleration) */ move(path: Point[] | Promise, movementType?: EasingFunction): Promise; /** * {@link leftClick} performs a click with the left mouse button */ leftClick(): Promise; /** * {@link rightClick} performs a click with the right mouse button */ rightClick(): Promise; /** * {@link scrollDown} scrolls down for a given amount of "steps" * Please note that the actual scroll distance of a single "step" is OS dependent * @param amount The amount of "steps" to scroll */ scrollDown(amount: number): Promise; /** * {@link scrollUp} scrolls up for a given amount of "steps" * Please note that the actual scroll distance of a single "step" is OS dependent * @param amount The amount of "steps" to scroll */ scrollUp(amount: number): Promise; /** * {@link scrollLeft} scrolls left for a given amount of "steps" * Please note that the actual scroll distance of a single "step" is OS dependent * @param amount The amount of "steps" to scroll */ scrollLeft(amount: number): Promise; /** * {@link scrollRight} scrolls right for a given amount of "steps" * Please note that the actual scroll distance of a single "step" is OS dependent * @param amount The amount of "steps" to scroll */ scrollRight(amount: number): Promise; /** * {@link drag} drags the mouse along a certain path * In summary, {@link drag} presses and holds the left mouse button, moves the mouse and releases the left button * @param path The path of {@link Point}s to drag along */ drag(path: Point[] | Promise): Promise; /** * {@link pressButton} presses and holds a mouse button * @param btn The {@link Button} to press and hold */ pressButton(btn: Button): Promise; /** * {@link releaseButton} releases a mouse button previously pressed via {@link pressButton} * @param btn The {@link Button} to release */ releaseButton(btn: Button): Promise; /** * {@link click} clicks a mouse button * @param btn The {@link Button} to click */ click(btn: Button): Promise; /** * {@link doubleClick} performs a double click on a mouse button * @param btn The {@link Button} to click */ doubleClick(btn: Button): Promise; }