from __future__ import annotations
from typing import Any, Protocol, runtime_checkable

@runtime_checkable
class XModel(Protocol):
    def getID(self) -> str: ...
    def setID(self, id: str) -> None: ...
    def initialize(self) -> None: ...
    def rebuild(self) -> None: ...
    def recalculate(self) -> None: ...
    def revalidate(self) -> None: ...
    def refresh(self) -> None: ...
    def getDataTypeRepository(self) -> XDataTypeRepository: ...
    def getInstances(self) -> XSet: ...
    def getInstanceDocument(self, id: str) -> XDocument: ...
    def getDefaultInstance(self) -> XDocument: ...
    def createBinding(self) -> XPropertySet: ...
    def cloneBinding(self, binding: XPropertySet) -> XPropertySet: ...
    def getBinding(self, id: str) -> XPropertySet: ...
    def getBindings(self) -> XSet: ...
    def createSubmission(self) -> XSubmission: ...
    def cloneSubmission(self, submission: XPropertySet) -> XSubmission: ...
    def getSubmission(self, id: str) -> XSubmission: ...
    def getSubmissions(self) -> XSet: ...
