import { BrotliOptions, InputType, CompressCallback } from 'zlib' import { stringify as JSONBstringify, parse as JSONBparse } from 'json-buffer' declare module 'compress-brotli' type CompressResult = Promise[1]> type DecompressResult = Promise> type Serialize = (source: InputType) => T type Deserialize = (source: CompressResult) => T declare function createCompress< SerializeResult = ReturnType, DeserializeResult = ReturnType >( options?: { enable?: boolean, serialize?: Serialize, deserialize?: Deserialize, iltorb?: any, compressOptions?: BrotliOptions, decompressOptions?: BrotliOptions } ): { serialize: Serialize, deserialize: Deserialize, compress: (data: InputType, optioins?: BrotliOptions) => CompressResult decompress: (data: InputType, optioins?: BrotliOptions) => DecompressResult } declare namespace createCompress { const stringify: typeof JSONBstringify const parse: typeof JSONBparse } export default createCompress