import typing
from System import IDisposable, Decimal
from System.IO import Stream
from System.Text import Encoding

class DelimiterStreamReader(IDisposable):
    def __init__(self, stream: Stream, encoding: Encoding) -> None: ...
    @property
    def Column(self) -> int: ...
    @Column.setter
    def Column(self, value: int) -> int: ...
    @property
    def Row(self) -> int: ...
    @Row.setter
    def Row(self, value: int) -> int: ...
    def Close(self) -> None: ...
    def Dispose(self) -> None: ...
    def ReadBool(self) -> bool: ...
    def ReadString(self) -> str: ...
    def ReadToDelimiter(self) -> str: ...
    def SkipString(self) -> None: ...
    # Skipped ReadNumber due to it being static, abstract and generic.

    ReadNumber : ReadNumber_MethodGroup
    class ReadNumber_MethodGroup:
        def __getitem__(self, t:typing.Type[ReadNumber_1_T1]) -> ReadNumber_1[ReadNumber_1_T1]: ...

        ReadNumber_1_T1 = typing.TypeVar('ReadNumber_1_T1')
        class ReadNumber_1(typing.Generic[ReadNumber_1_T1]):
            ReadNumber_1_T = DelimiterStreamReader.ReadNumber_MethodGroup.ReadNumber_1_T1
            def __call__(self) -> ReadNumber_1_T:...




class DelimiterStreamWriter(IDisposable):
    def __init__(self, stream: Stream, encoding: Encoding) -> None: ...
    def Close(self) -> None: ...
    def Dispose(self) -> None: ...
    def WriteLine(self) -> None: ...
    # Skipped Write due to it being static, abstract and generic.

    Write : Write_MethodGroup
    class Write_MethodGroup:
        @typing.overload
        def __call__(self, value: float) -> None:...
        # Method Write(value : Single) was skipped since it collides with above method
        # Method Write(value : Int32) was skipped since it collides with above method
        # Method Write(value : Int64) was skipped since it collides with above method
        # Method Write(value : UInt32) was skipped since it collides with above method
        # Method Write(value : UInt64) was skipped since it collides with above method
        @typing.overload
        def __call__(self, value: Decimal) -> None:...
        @typing.overload
        def __call__(self, value: str) -> None:...
        # Method Write(value : Char) was skipped since it collides with above method
        # Method Write(value : Boolean) was skipped since it collides with above method


