1<?php
2
3namespace Facebook\WebDriver;
4
5use Facebook\WebDriver\Interactions\Internal\WebDriverCoordinates;
6
7/**
8 * Interface representing basic mouse operations.
9 */
10interface WebDriverMouse
11{
12    /**
13     * @param WebDriverCoordinates $where
14     * @return WebDriverMouse
15     */
16    public function click(WebDriverCoordinates $where);
17
18    /**
19     * @param WebDriverCoordinates $where
20     * @return WebDriverMouse
21     */
22    public function contextClick(WebDriverCoordinates $where);
23
24    /**
25     * @param WebDriverCoordinates $where
26     * @return WebDriverMouse
27     */
28    public function doubleClick(WebDriverCoordinates $where);
29
30    /**
31     * @param WebDriverCoordinates $where
32     * @return WebDriverMouse
33     */
34    public function mouseDown(WebDriverCoordinates $where);
35
36    /**
37     * @param WebDriverCoordinates $where
38     * @param int $x_offset
39     * @param int $y_offset
40     * @return WebDriverMouse
41     */
42    public function mouseMove(
43        WebDriverCoordinates $where,
44        $x_offset = null,
45        $y_offset = null
46    );
47
48    /**
49     * @param WebDriverCoordinates $where
50     * @return WebDriverMouse
51     */
52    public function mouseUp(WebDriverCoordinates $where);
53}
54