import typing, abc
from System.Xml.Schema import XmlSchema
from System.Xml import XmlReader, XmlWriter, XmlQualifiedName
from System import Array_1

class IXmlSerializable(typing.Protocol):
    @abc.abstractmethod
    def GetSchema(self) -> XmlSchema: ...
    @abc.abstractmethod
    def ReadXml(self, reader: XmlReader) -> None: ...
    @abc.abstractmethod
    def WriteXml(self, writer: XmlWriter) -> None: ...


class XmlSerializerNamespaces:
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, namespaces: XmlSerializerNamespaces) -> None: ...
    @typing.overload
    def __init__(self, namespaces: Array_1[XmlQualifiedName]) -> None: ...
    @property
    def Count(self) -> int: ...
    def Add(self, prefix: str, ns: str) -> None: ...
    def ToArray(self) -> Array_1[XmlQualifiedName]: ...

