def input_box(
        self,
        prompt: str = '',
        title: str = 'Input',
        default: str = '',
        hide: bool = False,
        width: Optional[int] = None,
        height: Optional[int] = None,
        x: Optional[int] = None,
        y: Optional[int] = None,
        locale: bool = True,
        timeout: Optional[int] = None,
        *,
        blocking: bool = True,
    ) -> Union[None, str, FutureResult[str], FutureResult[None]]:
        """
        Like AHK's ``InputBox``

        If the user presses Cancel or closes the box, ``None`` is returned.
        Otherwise, the user's input is returned.
        Raises a ``TimeoutError`` if a timeout is specified and expires.
        """
        args = [title, prompt]
        if hide:
            args.append('hide')
        else:
            args.append('')
        for opt in (width, height, x, y):
            if opt is not None:
                args.append(str(opt))
            else:
                args.append('')
        if locale:
            args.append('Locale')
        else:
            args.append('')
        if timeout is not None:
            args.append(str(timeout))
        else:
            args.append('')
        args.append(default)
        return self._transport.function_call('AHKInputBox', args, blocking=blocking)

        Like AHK's ``InputBox``

        If the user presses Cancel or closes the box, ``None`` is returned.
        Otherwise, the user's input is returned.
        Raises a ``TimeoutError`` if a timeout is specified and expires.
        
ahk/_sync/engine.py