from __future__ import annotations
from typing import Any, Protocol, runtime_checkable
from com.sun.star.uno import XInterface

@runtime_checkable
class XLayoutManager(XInterface, Protocol):
    def attachFrame(self, Frame: XFrame) -> None: ...
    def reset(self) -> None: ...
    def getCurrentDockingArea(self) -> Rectangle: ...
    def getDockingAreaAcceptor(self) -> XDockingAreaAcceptor: ...
    def setDockingAreaAcceptor(self, xDockingAreaAcceptor: XDockingAreaAcceptor) -> None: ...
    def createElement(self, ResourceURL: str) -> None: ...
    def destroyElement(self, ResourceURL: str) -> None: ...
    def requestElement(self, ResourceURL: str) -> bool: ...
    def getElement(self, ResourceURL: str) -> XUIElement: ...
    def getElements(self) -> list[XUIElement]: ...
    def showElement(self, ResourceURL: str) -> bool: ...
    def hideElement(self, ResourceURL: str) -> bool: ...
    def dockWindow(self, ResourceURL: str, DockingArea: DockingArea, Pos: Point) -> bool: ...
    def dockAllWindows(self, nElementType: int) -> bool: ...
    def floatWindow(self, ResourceURL: str) -> bool: ...
    def lockWindow(self, ResourceURL: str) -> bool: ...
    def unlockWindow(self, ResourceURL: str) -> bool: ...
    def setElementSize(self, ResourceURL: str, Size: Size) -> None: ...
    def setElementPos(self, ResourceURL: str, Pos: Point) -> None: ...
    def setElementPosSize(self, ResourceURL: str, Pos: Point, Size: Size) -> None: ...
    def isElementVisible(self, ResourceURL: str) -> bool: ...
    def isElementFloating(self, ResourceURL: str) -> bool: ...
    def isElementDocked(self, ResourceURL: str) -> bool: ...
    def isElementLocked(self, ResourceURL: str) -> bool: ...
    def getElementSize(self, ResourceURL: str) -> Size: ...
    def getElementPos(self, ResourceURL: str) -> Point: ...
    def lock(self) -> None: ...
    def unlock(self) -> None: ...
    def doLayout(self) -> None: ...
    def setVisible(self, Visible: bool) -> None: ...
    def isVisible(self) -> bool: ...
