import { ICompressor } from "./i-compressor";
import { ZlibOptions } from "zlib";
import { BrotliEncodeParams } from "iltorb";
import { ICompressorCompressResult } from "./i-compressor-compress-result";
import { IFileSaver } from "@wessberg/filesaver";
/**
 * A class that helps with compressing files with Brotli and Zlib
 */
export declare class Compressor implements ICompressor {
    private readonly zlibCompressionOptions;
    private readonly brotliCompressionOptions;
    private readonly fileSaver;
    /**
     * The extension for Brotli-compressed files
     * @type {string}
     */
    private readonly BROTLI_EXTENSION;
    /**
     * The extension for Zlib-compressed files
     * @type {string}
     */
    private readonly ZLIB_EXTENSION;
    constructor(zlibCompressionOptions: ZlibOptions, brotliCompressionOptions: BrotliEncodeParams, fileSaver: IFileSaver);
    /**
     * Compresses the given code based on the given options
     * @param {Buffer} content
     * @returns {Promise<ICompressorCompressResult>}
     */
    compress(content: Buffer): Promise<ICompressorCompressResult>;
    /**
     * Compresses the given content and writes it to the given path, including relevant prioritizedExtensions
     * @param {Buffer} content
     * @param {string} writePath
     * @returns {Promise<void>}
     */
    compressAndWrite(content: Buffer, writePath: string): Promise<void>;
    /**
     * Compresses the given code with Brotli based on the given options
     * @param {string} code
     * @returns {Promise<Buffer>}
     */
    private compressWithBrotli(code);
    /**
     * Compresses the given code with Zlib based on the given options
     * @param {Buffer} code
     * @returns {Promise<Buffer>}
     */
    private compressWithZlib(code);
}
