import type { ZlibOptions, ZstdOptions } from 'node:zlib';
import type { Integer } from '@naturalcycles/js-lib/types';
declare class Zip2 {
    decompressZstdOrInflateToString(buf: Buffer): Promise<string>;
    decompressZstdOrInflateToStringSync(buf: Buffer): string;
    /**
     * Detects if Buffer is zstd-compressed.
     * Otherwise attempts to Inflate.
     */
    decompressZstdOrInflate(buf: Buffer): Promise<Buffer<ArrayBuffer>>;
    decompressZstdOrInflateSync(buf: Buffer): Buffer<ArrayBuffer>;
    /**
     * deflateBuffer uses `deflate`.
     * It's 9 bytes shorter than `gzip`.
     */
    deflate(input: string | Buffer, options?: ZlibOptions): Promise<Buffer<ArrayBuffer>>;
    /**
     * deflateSync uses `deflate`.
     * It's 9 bytes shorter than `gzip`.
     */
    deflateSync(input: string | Buffer, options?: ZlibOptions): Buffer<ArrayBuffer>;
    inflate(buf: Buffer, options?: ZlibOptions): Promise<Buffer<ArrayBuffer>>;
    inflateSync(buf: Buffer, options?: ZlibOptions): Buffer<ArrayBuffer>;
    inflateToString(buf: Buffer, options?: ZlibOptions): Promise<string>;
    inflateToStringSync(buf: Buffer, options?: ZlibOptions): string;
    /**
     * gzipBuffer uses `gzip`
     * It's 9 bytes longer than `deflate`.
     */
    gzip(input: string | Buffer, options?: ZlibOptions): Promise<Buffer<ArrayBuffer>>;
    /**
     * gzipBuffer uses `gzip`
     * It's 9 bytes longer than `deflate`.
     */
    gzipSync(input: string | Buffer, options?: ZlibOptions): Buffer<ArrayBuffer>;
    gunzip(buf: Buffer, options?: ZlibOptions): Promise<Buffer<ArrayBuffer>>;
    gunzipSync(buf: Buffer, options?: ZlibOptions): Buffer<ArrayBuffer>;
    gunzipToString(buf: Buffer, options?: ZlibOptions): Promise<string>;
    gunzipToStringSync(buf: Buffer, options?: ZlibOptions): string;
    zstdCompress(input: Buffer | string, level?: Integer, // defaults to 3
    options?: ZstdOptions): Promise<Buffer<ArrayBuffer>>;
    zstdCompressSync(input: Buffer | string, level?: Integer, // defaults to 3
    options?: ZstdOptions): Buffer<ArrayBuffer>;
    zstdLevelToOptions(level: Integer | undefined, opt?: ZstdOptions): ZstdOptions;
    zstdDecompressToString(input: Buffer, options?: ZstdOptions): Promise<string>;
    /**
     * Warning! It leaks memory severely. Prefer sync.
     */
    zstdDecompress(input: Buffer, options?: ZstdOptions): Promise<Buffer<ArrayBuffer>>;
    /**
     * Warning! It leaks memory severely. Prefer sync.
     */
    zstdDecompressToStringSync(input: Buffer, options?: ZstdOptions): string;
    zstdDecompressSync(input: Buffer, options?: ZstdOptions): Buffer<ArrayBuffer>;
    isZstdBuffer(input: Buffer): boolean;
    isGzipBuffer(input: Buffer): boolean;
}
export declare const zip2: Zip2;
export {};
