/// import type * as stream from 'stream'; import type { AsyncIterableReturn, ObjectValue } from '../utils/type'; import { createCompress as createBrotliCompress, createDecompress as createBrotliDecompress } from './brotli'; import { createCompress as createGzipCompress, createDecompress as createGzipDecompress } from './gzip'; interface CompressorTableEntry { createCompress: (options: never) => () => stream.Transform; createDecompress: () => stream.Transform; } declare type Table2CompressOptions> = ObjectValue<{ [P in keyof T]: { algorithm: P; } & Exclude[0], undefined>; }>; export declare type GetOptions stream.Transform> = (T extends ((options?: infer U) => stream.Transform) ? U : never); declare const compressorTable: { gzip: { createCompress: typeof createGzipCompress; createDecompress: typeof createGzipDecompress; }; brotli: { createCompress: typeof createBrotliCompress; createDecompress: typeof createBrotliDecompress; }; }; export declare type CompressOptions = Table2CompressOptions; export declare function createCompressor(options: CompressOptions | CompressOptions['algorithm'] | undefined): { compressAlgorithmName: CompressOptions['algorithm'] | undefined; compressIterable: (source: AsyncIterable) => AsyncIterableReturn; }; export declare function decompressIterable(data: Iterable | AsyncIterable, algorithm: CompressOptions['algorithm']): AsyncIterableReturn; export {};