from __future__ import annotations
from typing import Any, Protocol, runtime_checkable
from com.sun.star.lang import XComponent

@runtime_checkable
class XModel(XComponent, Protocol):
    def attachResource(self, URL: str, Arguments: PropertyValue>) -> bool: ...
    def getURL(self) -> str: ...
    def getArgs(self) -> list[PropertyValue]: ...
    def connectController(self, Controller: XController) -> None: ...
    def disconnectController(self, Controller: XController) -> None: ...
    def lockControllers(self) -> None: ...
    def unlockControllers(self) -> None: ...
    def hasControllersLocked(self) -> bool: ...
    def getCurrentController(self) -> XController: ...
    def getCurrentSelection(self) -> XInterface: ...
