sig
  exception Error of string * string
  val compress :
    ?level:int ->
    ?header:bool -> (bytes -> int) -> (bytes -> int -> unit) -> unit
  val compress_direct :
    ?level:int ->
    ?header:bool ->
    (bytes -> int -> unit) -> (bytes -> int -> int -> unit) * (unit -> unit)
  val uncompress :
    ?header:bool -> (bytes -> int) -> (bytes -> int -> unit) -> unit
  val plain_uncompress : string -> int -> string -> int -> bool
  type stream
  type flush_command = Z_NO_FLUSH | Z_SYNC_FLUSH | Z_FULL_FLUSH | Z_FINISH
  external deflate_init : int -> bool -> Zlib.stream = "camlzip_deflateInit"
  external deflate :
    Zlib.stream ->
    bytes ->
    int ->
    int -> bytes -> int -> int -> Zlib.flush_command -> bool * int * int
    = "camlzip_deflate_bytecode" "camlzip_deflate"
  external deflate_string :
    Zlib.stream ->
    string ->
    int ->
    int -> bytes -> int -> int -> Zlib.flush_command -> bool * int * int
    = "camlzip_deflate_bytecode" "camlzip_deflate"
  external deflate_end : Zlib.stream -> unit = "camlzip_deflateEnd"
  external inflate_init : bool -> Zlib.stream = "camlzip_inflateInit"
  external inflate :
    Zlib.stream ->
    bytes ->
    int ->
    int -> bytes -> int -> int -> Zlib.flush_command -> bool * int * int
    = "camlzip_inflate_bytecode" "camlzip_inflate"
  external inflate_string :
    Zlib.stream ->
    string ->
    int ->
    int -> bytes -> int -> int -> Zlib.flush_command -> bool * int * int
    = "camlzip_inflate_bytecode" "camlzip_inflate"
  external inflate_end : Zlib.stream -> unit = "camlzip_inflateEnd"
  external update_crc : int32 -> bytes -> int -> int -> int32
    = "camlzip_update_crc32"
  external update_crc_string : int32 -> string -> int -> int -> int32
    = "camlzip_update_crc32"
end