///
import { Transform } from 'stream';
/**
* Options for zlib compression methods (deflate, gzip, deflateRaw)
*/
export interface ZlibOptions {
/** The flush flag - one of the Z_*_FLUSH constants */
flush?: number;
/** The finish flush flag */
finishFlush?: number;
/** Chunk size for streaming (default: 16 * 1024) */
chunkSize?: number;
/** Window bits (default: 15) */
windowBits?: number;
/** Compression level (0-9 or -1) */
level?: number;
/** Memory level (1-9, default: 8) */
memLevel?: number;
/** Compression strategy (Z_DEFAULT_STRATEGY, Z_FILTERED, Z_HUFFMAN_ONLY, Z_RLE) */
strategy?: number;
/** Compression dictionary */
dictionary?: Buffer | Uint8Array;
}
/**
* Options for Brotli compression methods
*/
export interface BrotliOptions {
/** The flush flag */
flush?: number;
/** The finish flush flag */
finishFlush?: number;
/** Chunk size for streaming */
chunkSize?: number;
/** Brotli encoder/decoder parameters object */
params?: Record;
}
/**
* Zlib constants
*/
// Compression levels
export const Z_NO_COMPRESSION: number;
export const Z_BEST_SPEED: number;
export const Z_BEST_COMPRESSION: number;
export const Z_DEFAULT_COMPRESSION: number;
// Flush flags
export const Z_NO_FLUSH: number;
export const Z_PARTIAL_FLUSH: number;
export const Z_SYNC_FLUSH: number;
export const Z_FULL_FLUSH: number;
export const Z_FINISH: number;
export const Z_BLOCK: number;
// Return codes
export const Z_OK: number;
export const Z_STREAM_END: number;
export const Z_NEED_DICT: number;
export const Z_ERRNO: number;
export const Z_STREAM_ERROR: number;
export const Z_DATA_ERROR: number;
export const Z_MEM_ERROR: number;
export const Z_BUF_ERROR: number;
export const Z_VERSION_ERROR: number;
// Strategies
export const Z_FILTERED: number;
export const Z_HUFFMAN_ONLY: number;
export const Z_RLE: number;
export const Z_DEFAULT_STRATEGY: number;
// Window bits
export const Z_MIN_WINDOWBITS: number;
export const Z_MAX_WINDOWBITS: number;
export const Z_DEFAULT_WINDOWBITS: number;
// Chunk size
export const Z_MIN_CHUNK: number;
export const Z_MAX_CHUNK: number;
export const Z_DEFAULT_CHUNK: number;
// Memory level
export const Z_MIN_MEMLEVEL: number;
export const Z_MAX_MEMLEVEL: number;
export const Z_DEFAULT_MEMLEVEL: number;
// Compression level limits
export const Z_MIN_LEVEL: number;
export const Z_MAX_LEVEL: number;
export const Z_DEFAULT_LEVEL: number;
// Brotli constants (Node.js 11.7.0+)
// Brotli operations
export const BROTLI_OPERATION_PROCESS: number;
export const BROTLI_OPERATION_FLUSH: number;
export const BROTLI_OPERATION_FINISH: number;
export const BROTLI_OPERATION_EMIT_METADATA: number;
// Brotli modes
export const BROTLI_MODE_GENERIC: number;
export const BROTLI_MODE_TEXT: number;
export const BROTLI_MODE_FONT: number;
// Brotli quality
export const BROTLI_MIN_QUALITY: number;
export const BROTLI_MAX_QUALITY: number;
export const BROTLI_DEFAULT_QUALITY: number;
// Brotli window bits
export const BROTLI_MIN_WINDOW_BITS: number;
export const BROTLI_MAX_WINDOW_BITS: number;
export const BROTLI_LARGE_MAX_WINDOW_BITS: number;
export const BROTLI_DEFAULT_WINDOW: number;
// Brotli input block bits
export const BROTLI_MIN_INPUT_BLOCK_BITS: number;
export const BROTLI_MAX_INPUT_BLOCK_BITS: number;
// Brotli encoder parameters
export const BROTLI_PARAM_MODE: number;
export const BROTLI_PARAM_QUALITY: number;
export const BROTLI_PARAM_LGWIN: number;
export const BROTLI_PARAM_LGBLOCK: number;
export const BROTLI_PARAM_DISABLE_LITERAL_CONTEXT_MODELING: number;
export const BROTLI_PARAM_SIZE_HINT: number;
export const BROTLI_PARAM_LARGE_WINDOW: number;
export const BROTLI_PARAM_NPOSTFIX: number;
export const BROTLI_PARAM_NDIRECT: number;
// Brotli decoder parameters
export const BROTLI_DECODER_PARAM_DISABLE_RING_BUFFER_REALLOCATION: number;
export const BROTLI_DECODER_PARAM_LARGE_WINDOW: number;
// Brotli decoder result codes
export const BROTLI_DECODER_RESULT_ERROR: number;
export const BROTLI_DECODER_RESULT_SUCCESS: number;
export const BROTLI_DECODER_RESULT_NEEDS_MORE_INPUT: number;
export const BROTLI_DECODER_RESULT_NEEDS_MORE_OUTPUT: number;
/**
* Constants object containing all zlib and Brotli constants (Node.js 7.0.0+)
*/
export interface ConstantsType {
Z_NO_COMPRESSION: number;
Z_BEST_SPEED: number;
Z_BEST_COMPRESSION: number;
Z_DEFAULT_COMPRESSION: number;
Z_NO_FLUSH: number;
Z_PARTIAL_FLUSH: number;
Z_SYNC_FLUSH: number;
Z_FULL_FLUSH: number;
Z_FINISH: number;
Z_BLOCK: number;
Z_OK: number;
Z_STREAM_END: number;
Z_NEED_DICT: number;
Z_ERRNO: number;
Z_STREAM_ERROR: number;
Z_DATA_ERROR: number;
Z_MEM_ERROR: number;
Z_BUF_ERROR: number;
Z_VERSION_ERROR: number;
Z_FILTERED: number;
Z_HUFFMAN_ONLY: number;
Z_RLE: number;
Z_DEFAULT_STRATEGY: number;
Z_MIN_WINDOWBITS: number;
Z_MAX_WINDOWBITS: number;
Z_DEFAULT_WINDOWBITS: number;
Z_MIN_CHUNK: number;
Z_MAX_CHUNK: number;
Z_DEFAULT_CHUNK: number;
Z_MIN_MEMLEVEL: number;
Z_MAX_MEMLEVEL: number;
Z_DEFAULT_MEMLEVEL: number;
Z_MIN_LEVEL: number;
Z_MAX_LEVEL: number;
Z_DEFAULT_LEVEL: number;
BROTLI_OPERATION_PROCESS: number;
BROTLI_OPERATION_FLUSH: number;
BROTLI_OPERATION_FINISH: number;
BROTLI_OPERATION_EMIT_METADATA: number;
BROTLI_MODE_GENERIC: number;
BROTLI_MODE_TEXT: number;
BROTLI_MODE_FONT: number;
BROTLI_MIN_QUALITY: number;
BROTLI_MAX_QUALITY: number;
BROTLI_DEFAULT_QUALITY: number;
BROTLI_MIN_WINDOW_BITS: number;
BROTLI_MAX_WINDOW_BITS: number;
BROTLI_LARGE_MAX_WINDOW_BITS: number;
BROTLI_DEFAULT_WINDOW: number;
BROTLI_MIN_INPUT_BLOCK_BITS: number;
BROTLI_MAX_INPUT_BLOCK_BITS: number;
BROTLI_PARAM_MODE: number;
BROTLI_PARAM_QUALITY: number;
BROTLI_PARAM_LGWIN: number;
BROTLI_PARAM_LGBLOCK: number;
BROTLI_PARAM_DISABLE_LITERAL_CONTEXT_MODELING: number;
BROTLI_PARAM_SIZE_HINT: number;
BROTLI_PARAM_LARGE_WINDOW: number;
BROTLI_PARAM_NPOSTFIX: number;
BROTLI_PARAM_NDIRECT: number;
BROTLI_DECODER_PARAM_DISABLE_RING_BUFFER_REALLOCATION: number;
BROTLI_DECODER_PARAM_LARGE_WINDOW: number;
BROTLI_DECODER_RESULT_ERROR: number;
BROTLI_DECODER_RESULT_SUCCESS: number;
BROTLI_DECODER_RESULT_NEEDS_MORE_INPUT: number;
BROTLI_DECODER_RESULT_NEEDS_MORE_OUTPUT: number;
}
export const constants: ConstantsType;
/**
* Error codes mapping
*/
export interface CodesType {
Z_OK: number;
Z_STREAM_END: number;
Z_NEED_DICT: number;
Z_ERRNO: number;
Z_STREAM_ERROR: number;
Z_DATA_ERROR: number;
Z_MEM_ERROR: number;
Z_BUF_ERROR: number;
Z_VERSION_ERROR: number;
[key: number]: string;
}
export const codes: CodesType;
/**
* Stream classes
*/
export class Deflate extends Transform {
constructor(options?: ZlibOptions);
}
export class Inflate extends Transform {
constructor(options?: ZlibOptions);
}
export class Gzip extends Transform {
constructor(options?: ZlibOptions);
}
export class Gunzip extends Transform {
constructor(options?: ZlibOptions);
}
export class DeflateRaw extends Transform {
constructor(options?: ZlibOptions);
}
export class InflateRaw extends Transform {
constructor(options?: ZlibOptions);
}
export class Unzip extends Transform {
constructor(options?: ZlibOptions);
}
export class BrotliCompress extends Transform {
constructor(options?: BrotliOptions);
}
export class BrotliDecompress extends Transform {
constructor(options?: BrotliOptions);
}
/**
* Factory functions for creating stream instances
*/
export function createDeflate(options?: ZlibOptions): Deflate;
export function createInflate(options?: ZlibOptions): Inflate;
export function createGzip(options?: ZlibOptions): Gzip;
export function createGunzip(options?: ZlibOptions): Gunzip;
export function createDeflateRaw(options?: ZlibOptions): DeflateRaw;
export function createInflateRaw(options?: ZlibOptions): InflateRaw;
export function createUnzip(options?: ZlibOptions): Unzip;
export function createBrotliCompress(options?: BrotliOptions): BrotliCompress;
export function createBrotliDecompress(options?: BrotliOptions): BrotliDecompress;
/**
* Deflate: Promise and callback overloads
*/
export function deflate(buffer: string | Buffer | Uint8Array): Promise;
export function deflate(buffer: string | Buffer | Uint8Array, options: ZlibOptions): Promise;
export function deflate(buffer: string | Buffer | Uint8Array, callback: (error: Error | null, result?: Buffer) => void): void;
export function deflate(buffer: string | Buffer | Uint8Array, options: ZlibOptions, callback: (error: Error | null, result?: Buffer) => void): void;
/**
* Deflate synchronous
*/
export function deflateSync(buffer: string | Buffer | Uint8Array, options?: ZlibOptions): Buffer;
/**
* Inflate: Promise and callback overloads
*/
export function inflate(buffer: string | Buffer | Uint8Array): Promise;
export function inflate(buffer: string | Buffer | Uint8Array, options: ZlibOptions): Promise;
export function inflate(buffer: string | Buffer | Uint8Array, callback: (error: Error | null, result?: Buffer) => void): void;
export function inflate(buffer: string | Buffer | Uint8Array, options: ZlibOptions, callback: (error: Error | null, result?: Buffer) => void): void;
/**
* Inflate synchronous
*/
export function inflateSync(buffer: string | Buffer | Uint8Array, options?: ZlibOptions): Buffer;
/**
* Gzip: Promise and callback overloads
*/
export function gzip(buffer: string | Buffer | Uint8Array): Promise;
export function gzip(buffer: string | Buffer | Uint8Array, options: ZlibOptions): Promise;
export function gzip(buffer: string | Buffer | Uint8Array, callback: (error: Error | null, result?: Buffer) => void): void;
export function gzip(buffer: string | Buffer | Uint8Array, options: ZlibOptions, callback: (error: Error | null, result?: Buffer) => void): void;
/**
* Gzip synchronous
*/
export function gzipSync(buffer: string | Buffer | Uint8Array, options?: ZlibOptions): Buffer;
/**
* Gunzip: Promise and callback overloads
*/
export function gunzip(buffer: string | Buffer | Uint8Array): Promise;
export function gunzip(buffer: string | Buffer | Uint8Array, options: ZlibOptions): Promise;
export function gunzip(buffer: string | Buffer | Uint8Array, callback: (error: Error | null, result?: Buffer) => void): void;
export function gunzip(buffer: string | Buffer | Uint8Array, options: ZlibOptions, callback: (error: Error | null, result?: Buffer) => void): void;
/**
* Gunzip synchronous
*/
export function gunzipSync(buffer: string | Buffer | Uint8Array, options?: ZlibOptions): Buffer;
/**
* DeflateRaw: Promise and callback overloads
*/
export function deflateRaw(buffer: string | Buffer | Uint8Array): Promise;
export function deflateRaw(buffer: string | Buffer | Uint8Array, options: ZlibOptions): Promise;
export function deflateRaw(buffer: string | Buffer | Uint8Array, callback: (error: Error | null, result?: Buffer) => void): void;
export function deflateRaw(buffer: string | Buffer | Uint8Array, options: ZlibOptions, callback: (error: Error | null, result?: Buffer) => void): void;
/**
* DeflateRaw synchronous
*/
export function deflateRawSync(buffer: string | Buffer | Uint8Array, options?: ZlibOptions): Buffer;
/**
* InflateRaw: Promise and callback overloads
*/
export function inflateRaw(buffer: string | Buffer | Uint8Array): Promise;
export function inflateRaw(buffer: string | Buffer | Uint8Array, options: ZlibOptions): Promise;
export function inflateRaw(buffer: string | Buffer | Uint8Array, callback: (error: Error | null, result?: Buffer) => void): void;
export function inflateRaw(buffer: string | Buffer | Uint8Array, options: ZlibOptions, callback: (error: Error | null, result?: Buffer) => void): void;
/**
* InflateRaw synchronous
*/
export function inflateRawSync(buffer: string | Buffer | Uint8Array, options?: ZlibOptions): Buffer;
/**
* Unzip (auto-detect): Promise and callback overloads
*/
export function unzip(buffer: string | Buffer | Uint8Array): Promise;
export function unzip(buffer: string | Buffer | Uint8Array, options: ZlibOptions): Promise;
export function unzip(buffer: string | Buffer | Uint8Array, callback: (error: Error | null, result?: Buffer) => void): void;
export function unzip(buffer: string | Buffer | Uint8Array, options: ZlibOptions, callback: (error: Error | null, result?: Buffer) => void): void;
/**
* Unzip synchronous
*/
export function unzipSync(buffer: string | Buffer | Uint8Array, options?: ZlibOptions): Buffer;
/**
* BrotliCompress: Promise and callback overloads (Node.js 11.7.0+)
*/
export function brotliCompress(buffer: string | Buffer | Uint8Array): Promise;
export function brotliCompress(buffer: string | Buffer | Uint8Array, options: BrotliOptions): Promise;
export function brotliCompress(buffer: string | Buffer | Uint8Array, callback: (error: Error | null, result?: Buffer) => void): void;
export function brotliCompress(buffer: string | Buffer | Uint8Array, options: BrotliOptions, callback: (error: Error | null, result?: Buffer) => void): void;
/**
* BrotliCompress synchronous
*/
export function brotliCompressSync(buffer: string | Buffer | Uint8Array, options?: BrotliOptions): Buffer;
/**
* BrotliDecompress: Promise and callback overloads (Node.js 11.7.0+)
*/
export function brotliDecompress(buffer: string | Buffer | Uint8Array): Promise;
export function brotliDecompress(buffer: string | Buffer | Uint8Array, options: BrotliOptions): Promise;
export function brotliDecompress(buffer: string | Buffer | Uint8Array, callback: (error: Error | null, result?: Buffer) => void): void;
export function brotliDecompress(buffer: string | Buffer | Uint8Array, options: BrotliOptions, callback: (error: Error | null, result?: Buffer) => void): void;
/**
* BrotliDecompress synchronous
*/
export function brotliDecompressSync(buffer: string | Buffer | Uint8Array, options?: BrotliOptions): Buffer;
/**
* Compute CRC32 checksum
*/
export function crc32(data: string | Buffer | Uint8Array, value?: number): number;