/**
 * Base compression utilities using Web Streams API
 * Shared between Node.js and Browser implementations
 *
 * Uses CompressionStream/DecompressionStream API with "deflate-raw" format
 * (raw DEFLATE without zlib header/trailer, required for ZIP files)
 *
 * Browser fallback: For browsers without deflate-raw support (Firefox < 113, Safari < 16.4),
 * see deflate-fallback.ts for pure JS implementation
 */
/**
 * Compression options
 */
export interface CompressOptions {
    /**
     * Compression level (0-9)
     * - 0: No compression (STORE)
     * - 1: Fastest compression
     * - 6: Default compression (good balance)
     * - 9: Best compression (slowest)
     *
     * Note: CompressionStream does not support level configuration,
     * it uses a fixed level (~6)
     */
    level?: number;
    /**
     * Threshold (in bytes) to choose the lower-overhead path.
     *
     * - Node.js: inputs <= threshold use sync zlib fast-path (avoid threadpool overhead)
     * - Browser: inputs <= threshold use the pure-JS fallback (avoid stream scheduling overhead)
     */
    thresholdBytes?: number;
}
/**
 * Default threshold (in bytes) to choose the lower-overhead path.
 *
 * This is a performance knob, not a correctness requirement.
 * Default: 8MB.
 */
export declare const DEFAULT_COMPRESS_THRESHOLD_BYTES: number;
/**
 * Resolve the effective threshold bytes.
 */
export declare function resolveCompressThresholdBytes(options: CompressOptions): number;
/**
 * Check if CompressionStream is available
 */
export declare function hasCompressionStream(): boolean;
/**
 * Non-cached probe for CompressionStream("deflate-raw") support.
 *
 * Prefer this in code paths that want up-to-date environment checks
 * (e.g. tests that stub globals).
 */
export declare function probeDeflateRawCompressionStream(): boolean;
/**
 * Non-cached probe for DecompressionStream("deflate-raw") support.
 */
export declare function probeDeflateRawDecompressionStream(): boolean;
/**
 * Non-cached probe for full deflate-raw Web Streams support.
 *
 * Returns true only if BOTH CompressionStream("deflate-raw") and
 * DecompressionStream("deflate-raw") are supported.
 */
export declare function probeDeflateRawWebStreams(): boolean;
/**
 * Check if CompressionStream supports the "deflate-raw" format.
 *
 * This is a stricter check than {@link hasCompressionStream} because some
 * environments expose CompressionStream but do not support "deflate-raw".
 */
export declare function hasDeflateRawCompressionStream(): boolean;
/**
 * Check if DecompressionStream supports the "deflate-raw" format.
 */
export declare function hasDeflateRawDecompressionStream(): boolean;
/**
 * Cached check for full deflate-raw Web Streams support.
 *
 * Returns true only if BOTH CompressionStream("deflate-raw") and
 * DecompressionStream("deflate-raw") are supported.
 */
export declare function hasDeflateRawWebStreams(): boolean;
/**
 * Compress using CompressionStream API
 * Uses "deflate-raw" format (required for ZIP files)
 *
 * @param data - Data to compress
 * @returns Compressed data
 */
export declare function compressWithStream(data: Uint8Array): Promise<Uint8Array>;
/**
 * Decompress using DecompressionStream API
 *
 * @param data - Compressed data (deflate-raw format)
 * @returns Decompressed data
 */
export declare function decompressWithStream(data: Uint8Array): Promise<Uint8Array>;
