from typing import Any, Dict, Optional, Union

from com.inductiveautomation.factorypmi.application import FPMIWindow
from com.inductiveautomation.factorypmi.application.script.builtin import NavUtilities
from dev.thecesrom.helper.types import AnyStr
from java.util import EventObject

def centerWindow(arg: Union[AnyStr, FPMIWindow]) -> None: ...
def closeParentWindow(event: EventObject) -> None: ...
def closeWindow(arg: Union[AnyStr, FPMIWindow]) -> None: ...
def desktop(handle: Optional[AnyStr] = ...) -> NavUtilities: ...
def getCurrentWindow() -> AnyStr: ...
def goBack() -> FPMIWindow: ...
def goForward() -> FPMIWindow: ...
def goHome() -> FPMIWindow: ...
def openWindow(
    path: AnyStr, params: Optional[Dict[AnyStr, Any]] = ...
) -> FPMIWindow: ...
def openWindowInstance(
    path: AnyStr, params: Optional[Dict[AnyStr, Any]] = ...
) -> FPMIWindow: ...
def swapTo(path: AnyStr, params: Optional[Dict[AnyStr, Any]] = ...) -> FPMIWindow: ...
def swapWindow(
    arg: Union[AnyStr, EventObject],
    swapToPath: AnyStr,
    params: Optional[Dict[AnyStr, Any]] = ...,
) -> FPMIWindow: ...
