module HTTPX module Plugins module Compression type deflatable = _Reader | _ToS interface _Deflater def deflate: (deflatable, ?_Writer, ?chunk_size: Integer) -> _ToS | (deflatable, ?_Writer, ?chunk_size: Integer) { (String) -> void } -> _ToS end interface _Inflater def inflate: (string) -> String def initialize: (Integer | Float bytesize) -> untyped end interface _Compressor def deflater: () -> _Deflater def inflater: (Integer | Float bytesize) -> _Inflater end def self.configure: (singleton(Session)) -> void interface _CompressionOptions def compression_threshold_size: () -> Integer? def encodings: () -> Hash[String, _Compressor] end def self.extra_options: (Options) -> (Options & _CompressionOptions) module ResponseBodyMethods @encodings: Array[String] @_deflaters: Array[_Deflater] private def decompress: (string) -> String end class Encoder include Transcoder::_Encoder include _ToS include _Each[String] def close: () -> void private def initialize: (deflatable body, _Deflater deflater) -> untyped def deflate: () -> void | () { (String) -> void } -> void end end end end