from __future__ import annotations

from typing import Any
from typing import List
from typing import Type

import System
import System.Collections
import System.ComponentModel
import System.Configuration
import System.Configuration.Assemblies
import System.Data
import System.Globalization
import System.IO
import System.Reflection
import System.Runtime
import System.Runtime.CompilerServices
import System.Runtime.InteropServices
import System.Runtime.Serialization
import System.Security
import System.Security.AccessControl
import System.Security.Cryptography
import System.Security.Cryptography.X509Certificates
import System.Security.Policy
import System.Security.Principal
import System.Threading
import System.Threading.Tasks
import System.Xml
import System.Xml.Schema
import System.Xml.Serialization
from System.ComponentModel import MarshalByValueComponent


class ObjRef:

    def __init__(self, *args, **kwargs) -> Any: ...

    @property
    def ChannelInfo(self): ...

    @ChannelInfo.setter
    def ChannelInfo(self, value): ...

    @property
    def EnvoyInfo(self): ...

    @EnvoyInfo.setter
    def EnvoyInfo(self, value): ...

    def Equals(self, _: object, __: object) -> bool: ...
    def Finalize(self) -> None: ...
    def GetHashCode(self) -> int: ...

    def GetObjectData(
            self,
            _: System.Runtime.Serialization.SerializationInfo,
            __: System.Runtime.Serialization.StreamingContext,
            ) -> None: ...

    def GetRealObject(self, _: System.Runtime.Serialization.StreamingContext) -> object: ...
    def GetType(self) -> Type: ...
    def IsFromThisAppDomain(self) -> bool: ...
    def IsFromThisProcess(self) -> bool: ...
    def MemberwiseClone(self) -> object: ...
    def Overloads(self, *args, **kwargs) -> Any: ...
    def ReferenceEquals(self, _: object, __: object) -> bool: ...
    def ToString(self) -> str: ...

    @property
    def TypeInfo(self): ...

    @TypeInfo.setter
    def TypeInfo(self, value): ...

    @property
    def URI(self): ...

    @URI.setter
    def URI(self, value): ...

    def get_ChannelInfo(self) -> IChannelInfo: ...
    def get_EnvoyInfo(self) -> IEnvoyInfo: ...
    def get_TypeInfo(self) -> IRemotingTypeInfo: ...
    def get_URI(self) -> str: ...
    def set_ChannelInfo(self, _: IChannelInfo) -> None: ...
    def set_EnvoyInfo(self, _: IEnvoyInfo) -> None: ...
    def set_TypeInfo(self, _: IRemotingTypeInfo) -> None: ...
    def set_URI(self, _: str) -> None: ...


class IChannelInfo:

    def __init__(self, *args, **kwargs) -> Any: ...

    @property
    def ChannelData(self): ...

    @ChannelData.setter
    def ChannelData(self, value): ...

    def get_ChannelData(self) -> List[object]: ...
    def set_ChannelData(self, _: List[object]) -> None: ...


class IEnvoyInfo:

    def __init__(self, *args, **kwargs) -> Any: ...

    @property
    def EnvoySinks(self): ...

    @EnvoySinks.setter
    def EnvoySinks(self, value): ...

    def get_EnvoySinks(self) -> Any: ...
    def set_EnvoySinks(self, _: Any) -> None: ...


class IRemotingTypeInfo:

    def __init__(self, *args, **kwargs) -> Any: ...
    def CanCastTo(self, _: Type, __: object) -> bool: ...

    @property
    def TypeName(self): ...

    @TypeName.setter
    def TypeName(self, value): ...

    def get_TypeName(self) -> str: ...
    def set_TypeName(self, _: str) -> None: ...
