///
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 {};