import { Unzipped } from 'fflate';
export interface IZipFile {
    filename: string;
    content: Uint8Array | string | ArrayBuffer;
}
/**
 * zip压缩和解压
 */
export default class ZipTool {
    static runningInBrowser(): boolean;
    /**
     * 解决文件名乱码问题
     * @param str 乱码字符串
     * @returns
     */
    static encodeGBK(str: string): string;
    /**
     * 直接从文件列表数组，进行压缩文件
     * @param zipfileName
     * @param files
     */
    static saveZipFromFiles(zipfileName: string, files: Array<File>): Promise<void>;
    /**
     * 保存文件到本地
     * @param zipfileName zip文件名
     * @param files 压缩文件数组
     */
    static saveZipFile(zipfileName: string, files: Array<IZipFile>): void;
    /**
     * 同步方式压缩文件
     * @param zipfileName
     * @param files
     */
    static saveZipFileSync(zipfileName: string, files: Array<IZipFile>): boolean;
    /**
     * 同步解压压缩包
     * @param input
     * @returns
     */
    static unzipSync(input: ArrayBuffer | Uint8Array): Unzipped | undefined;
    /**
     * 直接读取压缩包文件，解压
     * @param file File文件内容
     * @returns
     */
    static readZipFromFile(file: File): Promise<IZipFile[]>;
    /**
     * 读压缩包文件内容，解压
     * @param zipfile
     * @returns
     */
    static readZipFile(zipfile: {
        content: any;
        name: string;
    }): Promise<IZipFile[]>;
    /**
     * 异步解压更快
     * @param buf
     * @param cb 回调函数
     */
    static unzipAsync(buf: ArrayBuffer | Uint8Array, cb: (err: any, data?: Unzipped) => {}): void;
    /**
     * 同步压缩
     * @param files
     * @returns
     */
    private static zipSync;
    /**
     * 异步压缩，回调返回：Uint8Array
     * @param files
     * @param cb 回调返回：Uint8Array
     */
    private static zipAsync;
    private static fflateFilter;
    private static fflatePostprocess;
    private static isImportableZipPath;
    private static fflatePreprocess;
}
