class System.IO.StreamReader
   inherits System.IO.TextReader
   implements System.IDisposable:

   /* use of a reserved keyword as a member variable cannot be modeled using the OO 4GL */
   /* def public static variable Null as System.IO.StreamReader. */

   def public property CurrentEncoding as System.Text.Encoding
      get.

   def public property BaseStream as System.IO.Stream
      get.

   def public property EndOfStream as logical
      get.

   constructor public StreamReader(input stream as System.IO.Stream):
   end constructor.

   constructor public StreamReader(input stream as System.IO.Stream, input detectEncodingFromByteOrderMarks as logical):
   end constructor.

   constructor public StreamReader(input stream as System.IO.Stream, input encoding as System.Text.Encoding):
   end constructor.

   constructor public StreamReader(input stream as System.IO.Stream, input encoding as System.Text.Encoding, input detectEncodingFromByteOrderMarks as logical):
   end constructor.

   constructor public StreamReader(input stream as System.IO.Stream, input encoding as System.Text.Encoding, input detectEncodingFromByteOrderMarks as logical, input bufferSize as integer):
   end constructor.

   constructor public StreamReader(input stream as System.IO.Stream, input encoding as System.Text.Encoding, input detectEncodingFromByteOrderMarks as logical, input bufferSize as integer, input leaveOpen as logical):
   end constructor.

   constructor public StreamReader(input path as character):
   end constructor.

   constructor public StreamReader(input path as character, input detectEncodingFromByteOrderMarks as logical):
   end constructor.

   constructor public StreamReader(input path as character, input encoding as System.Text.Encoding):
   end constructor.

   constructor public StreamReader(input path as character, input encoding as System.Text.Encoding, input detectEncodingFromByteOrderMarks as logical):
   end constructor.

   constructor public StreamReader(input path as character, input encoding as System.Text.Encoding, input detectEncodingFromByteOrderMarks as logical, input bufferSize as integer):
   end constructor.

   method public override void Close():
   end method.

   method protected final override void Dispose(input disposing as logical):
   end method.

   method public final void DiscardBufferedData():
   end method.

   method public override integer Peek():
   end method.

   method public override integer Read():
   end method.

   method public override integer Read(input buffer as System.Char extent, input index as integer, input count as integer):
   end method.

   method public override character ReadToEnd():
   end method.

   method public override integer ReadBlock(input buffer as System.Char extent, input index as integer, input count as integer):
   end method.

   method public override character ReadLine():
   end method.

   method public override System.Threading.Tasks.Task ReadLineAsync():
   end method.

   method public override System.Threading.Tasks.Task ReadToEndAsync():
   end method.

   method public override System.Threading.Tasks.Task ReadAsync(input buffer as System.Char extent, input index as integer, input count as integer):
   end method.

   method public override System.Threading.Tasks.Task ReadBlockAsync(input buffer as System.Char extent, input index as integer, input count as integer):
   end method.

end class.
