from _typeshed import Incomplete
from arelle import Locale as Locale
from arelle.ModelValue import QName as QName, qname as qname, qnameEltPfxName as qnameEltPfxName
from collections import namedtuple as namedtuple
from lxml import etree

XmlUtil: Incomplete
VALID_NO_CONTENT: Incomplete
emptySet: Incomplete

def init() -> None: ...

class ModelObject(etree.ElementBase):
    def clear(self) -> None: ...
    modelDocument: Incomplete
    objectIndex: Incomplete
    def init(self, modelDocument) -> None: ...
    def objectId(self, refId: str = ...): ...
    @property
    def modelXbrl(self): ...
    def attr(self, attrname): ...
    @property
    def slottedAttributesNames(self): ...
    def setNamespaceLocalName(self) -> None: ...
    def getStripped(self, attrName): ...
    @property
    def localName(self): ...
    @property
    def prefixedName(self): ...
    @property
    def namespaceURI(self): ...
    @property
    def elementNamespaceURI(self): ...
    @property
    def qname(self): ...
    @property
    def elementQname(self): ...
    def vQname(self, validationModelXbrl: Incomplete | None = ...): ...
    def elementDeclaration(self, validationModelXbrl: Incomplete | None = ...): ...
    @property
    def elementSequence(self): ...
    @property
    def parentQname(self): ...
    @property
    def id(self): ...
    @property
    def stringValue(self): ...
    @property
    def textValue(self): ...
    @property
    def document(self): ...
    def prefixedNameQname(self, prefixedName): ...
    @property
    def elementAttributesTuple(self): ...
    @property
    def elementAttributesStr(self): ...
    def resolveUri(self, hrefObject: Incomplete | None = ..., uri: Incomplete | None = ..., dtsModelXbrl: Incomplete | None = ...): ...
    def genLabel(self, role: Incomplete | None = ..., fallbackToQname: bool = ..., fallbackToXlinkLabel: bool = ..., lang: Incomplete | None = ..., strip: bool = ..., linkrole: Incomplete | None = ...): ...
    def viewText(self, labelrole: Incomplete | None = ..., lang: Incomplete | None = ...): ...
    @property
    def propertyView(self): ...

class ModelComment(etree.CommentBase):
    modelDocument: Incomplete
    def init(self, modelDocument) -> None: ...

class ModelProcessingInstruction(etree.PIBase): ...

class ModelAttribute:
    modelElement: Incomplete
    attrTag: Incomplete
    xValid: Incomplete
    xValue: Incomplete
    sValue: Incomplete
    text: Incomplete
    def __init__(self, modelElement, attrTag, xValid, xValue, sValue, text) -> None: ...

class ObjectPropertyViewWrapper:
    modelObject: Incomplete
    extraProperties: Incomplete
    def __init__(self, modelObject, extraProperties=...) -> None: ...
    @property
    def propertyView(self): ...
