def click(
        self,
        x: Optional[Union[int, Tuple[int, int]]] = None,
        y: Optional[int] = None,
        button: Optional[Union[MouseButton, str]] = None,
        click_count: Optional[int] = None,
        direction: Optional[Literal['U', 'D', 'Up', 'Down']] = None,
        *,
        relative: Optional[bool] = None,
        blocking: bool = True,
        coord_mode: Optional[CoordModeRelativeTo] = None,
        send_mode: Optional[SendMode] = None,
    ) -> Union[None, FutureResult[None]]:
        """
        Analog for `Click <https://www.autohotkey.com/docs/commands/Click.htm>`_
        """
        if x or y:
            if y is None and isinstance(x, tuple) and len(x) == 2:
                #  allow position to be specified by a two-sequence tuple
                x, y = x
            assert x is not None and y is not None, 'If provided, position must be specified by x AND y'
        if button is None:
            button = 'L'
        button = _resolve_button(button)

        if relative:
            r = 'Rel'
        else:
            r = ''
        if coord_mode is None:
            coord_mode = ''
        if send_mode is None:
            send_mode = ''
        args = [str(x), str(y), button, str(click_count), direction or '', r, coord_mode, str(send_mode)]
        resp = self._transport.function_call('AHKClick', args, blocking=blocking)
        return resp

        Analog for `Click <https://www.autohotkey.com/docs/commands/Click.htm>`_
        
ahk/_sync/engine.py