Index: imaps-frontend/node_modules/fflate/esm/browser.d.ts
===================================================================
--- imaps-frontend/node_modules/fflate/esm/browser.d.ts	(revision 79a03170cdde4e801d12257ee86723774970427b)
+++ imaps-frontend/node_modules/fflate/esm/browser.d.ts	(revision 79a03170cdde4e801d12257ee86723774970427b)
@@ -0,0 +1,1501 @@
+/**
+ * Codes for errors generated within this library
+ */
+export declare const FlateErrorCode: {
+    readonly UnexpectedEOF: 0;
+    readonly InvalidBlockType: 1;
+    readonly InvalidLengthLiteral: 2;
+    readonly InvalidDistance: 3;
+    readonly StreamFinished: 4;
+    readonly NoStreamHandler: 5;
+    readonly InvalidHeader: 6;
+    readonly NoCallback: 7;
+    readonly InvalidUTF8: 8;
+    readonly ExtraFieldTooLong: 9;
+    readonly InvalidDate: 10;
+    readonly FilenameTooLong: 11;
+    readonly StreamFinishing: 12;
+    readonly InvalidZipData: 13;
+    readonly UnknownCompressionMethod: 14;
+};
+/**
+ * An error generated within this library
+ */
+export interface FlateError extends Error {
+    /**
+     * The code associated with this error
+     */
+    code: number;
+}
+/**
+ * Options for decompressing a DEFLATE stream
+ */
+export interface InflateStreamOptions {
+    /**
+     * The dictionary used to compress the original data. If no dictionary was used during compression, this option has no effect.
+     *
+     * Supplying the wrong dictionary during decompression usually yields corrupt output or causes an invalid distance error.
+     */
+    dictionary?: Uint8Array;
+}
+/**
+ * Options for decompressing DEFLATE data
+ */
+export interface InflateOptions extends InflateStreamOptions {
+    /**
+     * The buffer into which to write the decompressed data. Saves memory if you know the decompressed size in advance.
+     *
+     * Note that if the decompression result is larger than the size of this buffer, it will be truncated to fit.
+     */
+    out?: Uint8Array;
+}
+/**
+ * Options for decompressing a GZIP stream
+ */
+export interface GunzipStreamOptions extends InflateStreamOptions {
+}
+/**
+ * Options for decompressing GZIP data
+ */
+export interface GunzipOptions extends InflateStreamOptions {
+    /**
+     * The buffer into which to write the decompressed data. GZIP already encodes the output size, so providing this doesn't save memory.
+     *
+     * Note that if the decompression result is larger than the size of this buffer, it will be truncated to fit.
+     */
+    out?: Uint8Array;
+}
+/**
+ * Options for decompressing a Zlib stream
+ */
+export interface UnzlibStreamOptions extends InflateStreamOptions {
+}
+/**
+ * Options for decompressing Zlib data
+ */
+export interface UnzlibOptions extends InflateOptions {
+}
+/**
+ * Options for compressing data into a DEFLATE format
+ */
+export interface DeflateOptions {
+    /**
+     * The level of compression to use, ranging from 0-9.
+     *
+     * 0 will store the data without compression.
+     * 1 is fastest but compresses the worst, 9 is slowest but compresses the best.
+     * The default level is 6.
+     *
+     * Typically, binary data benefits much more from higher values than text data.
+     * In both cases, higher values usually take disproportionately longer than the reduction in final size that results.
+     *
+     * For example, a 1 MB text file could:
+     * - become 1.01 MB with level 0 in 1ms
+     * - become 400 kB with level 1 in 10ms
+     * - become 320 kB with level 9 in 100ms
+     */
+    level?: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9;
+    /**
+     * The memory level to use, ranging from 0-12. Increasing this increases speed and compression ratio at the cost of memory.
+     *
+     * Note that this is exponential: while level 0 uses 4 kB, level 4 uses 64 kB, level 8 uses 1 MB, and level 12 uses 16 MB.
+     * It is recommended not to lower the value below 4, since that tends to hurt performance.
+     * In addition, values above 8 tend to help very little on most data and can even hurt performance.
+     *
+     * The default value is automatically determined based on the size of the input data.
+     */
+    mem?: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;
+    /**
+     * A buffer containing common byte sequences in the input data that can be used to significantly improve compression ratios.
+     *
+     * Dictionaries should be 32kB or smaller and include strings or byte sequences likely to appear in the input.
+     * The decompressor must supply the same dictionary as the compressor to extract the original data.
+     *
+     * Dictionaries only improve aggregate compression ratio when reused across multiple small inputs. They should typically not be used otherwise.
+     *
+     * Avoid using dictionaries with GZIP and ZIP to maximize software compatibility.
+     */
+    dictionary?: Uint8Array;
+}
+/**
+ * Options for compressing data into a GZIP format
+ */
+export interface GzipOptions extends DeflateOptions {
+    /**
+     * When the file was last modified. Defaults to the current time.
+     * Set this to 0 to avoid revealing a modification date entirely.
+     */
+    mtime?: Date | string | number;
+    /**
+     * The filename of the data. If the `gunzip` command is used to decompress the data, it will output a file
+     * with this name instead of the name of the compressed file.
+     */
+    filename?: string;
+}
+/**
+ * Options for compressing data into a Zlib format
+ */
+export interface ZlibOptions extends DeflateOptions {
+}
+/**
+ * Handler for data (de)compression streams
+ * @param data The data output from the stream processor
+ * @param final Whether this is the final block
+ */
+export type FlateStreamHandler = (data: Uint8Array, final: boolean) => void;
+/**
+ * Handler for asynchronous data (de)compression streams
+ * @param err Any error that occurred
+ * @param data The data output from the stream processor
+ * @param final Whether this is the final block
+ */
+export type AsyncFlateStreamHandler = (err: FlateError | null, data: Uint8Array, final: boolean) => void;
+/**
+ * Handler for the asynchronous completion of (de)compression for a data chunk
+ * @param size The number of bytes that were processed. This is measured in terms of the input
+ * (i.e. compressed bytes for decompression, uncompressed bytes for compression.)
+ */
+export type AsyncFlateDrainHandler = (size: number) => void;
+/**
+ * Callback for asynchronous (de)compression methods
+ * @param err Any error that occurred
+ * @param data The resulting data. Only present if `err` is null
+ */
+export type FlateCallback = (err: FlateError | null, data: Uint8Array) => void;
+interface AsyncOptions {
+    /**
+     * Whether or not to "consume" the source data. This will make the typed array/buffer you pass in
+     * unusable but will increase performance and reduce memory usage.
+     */
+    consume?: boolean;
+}
+/**
+ * Options for compressing data asynchronously into a DEFLATE format
+ */
+export interface AsyncDeflateOptions extends DeflateOptions, AsyncOptions {
+}
+/**
+ * Options for decompressing DEFLATE data asynchronously
+ */
+export interface AsyncInflateOptions extends AsyncOptions, InflateStreamOptions {
+    /**
+     * The original size of the data. Currently, the asynchronous API disallows
+     * writing into a buffer you provide; the best you can do is provide the
+     * size in bytes and be given back a new typed array.
+     */
+    size?: number;
+}
+/**
+ * Options for compressing data asynchronously into a GZIP format
+ */
+export interface AsyncGzipOptions extends GzipOptions, AsyncOptions {
+}
+/**
+ * Options for decompressing GZIP data asynchronously
+ */
+export interface AsyncGunzipOptions extends AsyncOptions, InflateStreamOptions {
+}
+/**
+ * Options for compressing data asynchronously into a Zlib format
+ */
+export interface AsyncZlibOptions extends ZlibOptions, AsyncOptions {
+}
+/**
+ * Options for decompressing Zlib data asynchronously
+ */
+export interface AsyncUnzlibOptions extends AsyncInflateOptions {
+}
+/**
+ * A terminable compression/decompression process
+ */
+export interface AsyncTerminable {
+    /**
+     * Terminates the worker thread immediately. The callback will not be called.
+     */
+    (): void;
+}
+/**
+ * Streaming DEFLATE compression
+ */
+export declare class Deflate {
+    /**
+     * Creates a DEFLATE stream
+     * @param opts The compression options
+     * @param cb The callback to call whenever data is deflated
+     */
+    constructor(opts: DeflateOptions, cb?: FlateStreamHandler);
+    /**
+     * Creates a DEFLATE stream
+     * @param cb The callback to call whenever data is deflated
+     */
+    constructor(cb?: FlateStreamHandler);
+    private b;
+    private s;
+    private o;
+    /**
+     * The handler to call whenever data is available
+     */
+    ondata: FlateStreamHandler;
+    private p;
+    /**
+     * Pushes a chunk to be deflated
+     * @param chunk The chunk to push
+     * @param final Whether this is the last chunk
+     */
+    push(chunk: Uint8Array, final?: boolean): void;
+    /**
+     * Flushes buffered uncompressed data. Useful to immediately retrieve the
+     * deflated output for small inputs.
+     */
+    flush(): void;
+}
+/**
+ * Asynchronous streaming DEFLATE compression
+ */
+export declare class AsyncDeflate {
+    /**
+     * The handler to call whenever data is available
+     */
+    ondata: AsyncFlateStreamHandler;
+    /**
+     * The handler to call whenever buffered source data is processed (i.e. `queuedSize` updates)
+     */
+    ondrain?: AsyncFlateDrainHandler;
+    /**
+     * The number of uncompressed bytes buffered in the stream
+     */
+    queuedSize: number;
+    /**
+     * Creates an asynchronous DEFLATE stream
+     * @param opts The compression options
+     * @param cb The callback to call whenever data is deflated
+     */
+    constructor(opts: DeflateOptions, cb?: AsyncFlateStreamHandler);
+    /**
+     * Creates an asynchronous DEFLATE stream
+     * @param cb The callback to call whenever data is deflated
+     */
+    constructor(cb?: AsyncFlateStreamHandler);
+    /**
+     * Pushes a chunk to be deflated
+     * @param chunk The chunk to push
+     * @param final Whether this is the last chunk
+     */
+    push(chunk: Uint8Array, final?: boolean): void;
+    /**
+     * Flushes buffered uncompressed data. Useful to immediately retrieve the
+     * deflated output for small inputs.
+     */
+    flush(): void;
+    /**
+     * A method to terminate the stream's internal worker. Subsequent calls to
+     * push() will silently fail.
+     */
+    terminate: AsyncTerminable;
+}
+/**
+ * Asynchronously compresses data with DEFLATE without any wrapper
+ * @param data The data to compress
+ * @param opts The compression options
+ * @param cb The function to be called upon compression completion
+ * @returns A function that can be used to immediately terminate the compression
+ */
+export declare function deflate(data: Uint8Array, opts: AsyncDeflateOptions, cb: FlateCallback): AsyncTerminable;
+/**
+ * Asynchronously compresses data with DEFLATE without any wrapper
+ * @param data The data to compress
+ * @param cb The function to be called upon compression completion
+ */
+export declare function deflate(data: Uint8Array, cb: FlateCallback): AsyncTerminable;
+/**
+ * Compresses data with DEFLATE without any wrapper
+ * @param data The data to compress
+ * @param opts The compression options
+ * @returns The deflated version of the data
+ */
+export declare function deflateSync(data: Uint8Array, opts?: DeflateOptions): Uint8Array;
+/**
+ * Streaming DEFLATE decompression
+ */
+export declare class Inflate {
+    private s;
+    private o;
+    private p;
+    private d;
+    /**
+     * The handler to call whenever data is available
+     */
+    ondata: FlateStreamHandler;
+    /**
+     * Creates a DEFLATE decompression stream
+     * @param opts The decompression options
+     * @param cb The callback to call whenever data is inflated
+     */
+    constructor(opts: InflateStreamOptions, cb?: FlateStreamHandler);
+    /**
+     * Creates a DEFLATE decompression stream
+     * @param cb The callback to call whenever data is inflated
+     */
+    constructor(cb?: FlateStreamHandler);
+    private e;
+    private c;
+    /**
+     * Pushes a chunk to be inflated
+     * @param chunk The chunk to push
+     * @param final Whether this is the final chunk
+     */
+    push(chunk: Uint8Array, final?: boolean): void;
+}
+/**
+ * Asynchronous streaming DEFLATE decompression
+ */
+export declare class AsyncInflate {
+    /**
+     * The handler to call whenever data is available
+     */
+    ondata: AsyncFlateStreamHandler;
+    /**
+     * The handler to call whenever buffered source data is processed (i.e. `queuedSize` updates)
+     */
+    ondrain?: AsyncFlateDrainHandler;
+    /**
+     * The number of compressed bytes buffered in the stream
+     */
+    queuedSize: number;
+    /**
+     * Creates an asynchronous DEFLATE decompression stream
+     * @param opts The decompression options
+     * @param cb The callback to call whenever data is inflated
+     */
+    constructor(opts: InflateStreamOptions, cb?: AsyncFlateStreamHandler);
+    /**
+     * Creates an asynchronous DEFLATE decompression stream
+     * @param cb The callback to call whenever data is inflated
+     */
+    constructor(cb?: AsyncFlateStreamHandler);
+    /**
+     * Pushes a chunk to be inflated
+     * @param chunk The chunk to push
+     * @param final Whether this is the last chunk
+     */
+    push(chunk: Uint8Array, final?: boolean): void;
+    /**
+     * A method to terminate the stream's internal worker. Subsequent calls to
+     * push() will silently fail.
+     */
+    terminate: AsyncTerminable;
+}
+/**
+ * Asynchronously expands DEFLATE data with no wrapper
+ * @param data The data to decompress
+ * @param opts The decompression options
+ * @param cb The function to be called upon decompression completion
+ * @returns A function that can be used to immediately terminate the decompression
+ */
+export declare function inflate(data: Uint8Array, opts: AsyncInflateOptions, cb: FlateCallback): AsyncTerminable;
+/**
+ * Asynchronously expands DEFLATE data with no wrapper
+ * @param data The data to decompress
+ * @param cb The function to be called upon decompression completion
+ * @returns A function that can be used to immediately terminate the decompression
+ */
+export declare function inflate(data: Uint8Array, cb: FlateCallback): AsyncTerminable;
+/**
+ * Expands DEFLATE data with no wrapper
+ * @param data The data to decompress
+ * @param opts The decompression options
+ * @returns The decompressed version of the data
+ */
+export declare function inflateSync(data: Uint8Array, opts?: InflateOptions): Uint8Array;
+/**
+ * Streaming GZIP compression
+ */
+export declare class Gzip {
+    private c;
+    private l;
+    private v;
+    private o;
+    private s;
+    /**
+     * The handler to call whenever data is available
+     */
+    ondata: FlateStreamHandler;
+    /**
+     * Creates a GZIP stream
+     * @param opts The compression options
+     * @param cb The callback to call whenever data is deflated
+     */
+    constructor(opts: GzipOptions, cb?: FlateStreamHandler);
+    /**
+     * Creates a GZIP stream
+     * @param cb The callback to call whenever data is deflated
+     */
+    constructor(cb?: FlateStreamHandler);
+    /**
+     * Pushes a chunk to be GZIPped
+     * @param chunk The chunk to push
+     * @param final Whether this is the last chunk
+     */
+    push(chunk: Uint8Array, final?: boolean): void;
+    private p;
+    /**
+     * Flushes buffered uncompressed data. Useful to immediately retrieve the
+     * GZIPped output for small inputs.
+     */
+    flush(): void;
+}
+/**
+ * Asynchronous streaming GZIP compression
+ */
+export declare class AsyncGzip {
+    /**
+     * The handler to call whenever data is available
+     */
+    ondata: AsyncFlateStreamHandler;
+    /**
+     * The handler to call whenever buffered source data is processed (i.e. `queuedSize` updates)
+     */
+    ondrain?: AsyncFlateDrainHandler;
+    /**
+     * The number of uncompressed bytes buffered in the stream
+     */
+    queuedSize: number;
+    /**
+     * Creates an asynchronous GZIP stream
+     * @param opts The compression options
+     * @param cb The callback to call whenever data is deflated
+     */
+    constructor(opts: GzipOptions, cb?: AsyncFlateStreamHandler);
+    /**
+     * Creates an asynchronous GZIP stream
+     * @param cb The callback to call whenever data is deflated
+     */
+    constructor(cb?: AsyncFlateStreamHandler);
+    /**
+     * Pushes a chunk to be GZIPped
+     * @param chunk The chunk to push
+     * @param final Whether this is the last chunk
+     */
+    push(chunk: Uint8Array, final?: boolean): void;
+    /**
+     * Flushes buffered uncompressed data. Useful to immediately retrieve the
+     * GZIPped output for small inputs.
+     */
+    flush(): void;
+    /**
+     * A method to terminate the stream's internal worker. Subsequent calls to
+     * push() will silently fail.
+     */
+    terminate: AsyncTerminable;
+}
+/**
+ * Asynchronously compresses data with GZIP
+ * @param data The data to compress
+ * @param opts The compression options
+ * @param cb The function to be called upon compression completion
+ * @returns A function that can be used to immediately terminate the compression
+ */
+export declare function gzip(data: Uint8Array, opts: AsyncGzipOptions, cb: FlateCallback): AsyncTerminable;
+/**
+ * Asynchronously compresses data with GZIP
+ * @param data The data to compress
+ * @param cb The function to be called upon compression completion
+ * @returns A function that can be used to immediately terminate the decompression
+ */
+export declare function gzip(data: Uint8Array, cb: FlateCallback): AsyncTerminable;
+/**
+ * Compresses data with GZIP
+ * @param data The data to compress
+ * @param opts The compression options
+ * @returns The gzipped version of the data
+ */
+export declare function gzipSync(data: Uint8Array, opts?: GzipOptions): Uint8Array;
+/**
+ * Handler for new GZIP members in concatenated GZIP streams. Useful for building indices used to perform random-access reads on compressed files.
+ * @param offset The offset of the new member relative to the start of the stream
+ */
+export type GunzipMemberHandler = (offset: number) => void;
+/**
+ * Streaming single or multi-member GZIP decompression
+ */
+export declare class Gunzip {
+    private v;
+    private r;
+    private o;
+    private p;
+    private s;
+    /**
+     * The handler to call whenever data is available
+     */
+    ondata: FlateStreamHandler;
+    /**
+     * The handler to call whenever a new GZIP member is found
+     */
+    onmember?: GunzipMemberHandler;
+    /**
+     * Creates a GUNZIP stream
+     * @param opts The decompression options
+     * @param cb The callback to call whenever data is inflated
+     */
+    constructor(opts: GunzipStreamOptions, cb?: FlateStreamHandler);
+    /**
+     * Creates a GUNZIP stream
+     * @param cb The callback to call whenever data is inflated
+     */
+    constructor(cb?: FlateStreamHandler);
+    /**
+     * Pushes a chunk to be GUNZIPped
+     * @param chunk The chunk to push
+     * @param final Whether this is the last chunk
+     */
+    push(chunk: Uint8Array, final?: boolean): void;
+}
+/**
+ * Asynchronous streaming single or multi-member GZIP decompression
+ */
+export declare class AsyncGunzip {
+    /**
+     * The handler to call whenever data is available
+     */
+    ondata: AsyncFlateStreamHandler;
+    /**
+     * The handler to call whenever buffered source data is processed (i.e. `queuedSize` updates)
+     */
+    ondrain?: AsyncFlateDrainHandler;
+    /**
+     * The number of compressed bytes buffered in the stream
+     */
+    queuedSize: number;
+    /**
+     * The handler to call whenever a new GZIP member is found
+     */
+    onmember?: GunzipMemberHandler;
+    /**
+     * Creates an asynchronous GUNZIP stream
+     * @param opts The decompression options
+     * @param cb The callback to call whenever data is inflated
+     */
+    constructor(opts: GunzipStreamOptions, cb?: AsyncFlateStreamHandler);
+    /**
+     * Creates an asynchronous GUNZIP stream
+     * @param cb The callback to call whenever data is inflated
+     */
+    constructor(cb?: AsyncFlateStreamHandler);
+    /**
+     * Pushes a chunk to be GUNZIPped
+     * @param chunk The chunk to push
+     * @param final Whether this is the last chunk
+     */
+    push(chunk: Uint8Array, final?: boolean): void;
+    /**
+     * A method to terminate the stream's internal worker. Subsequent calls to
+     * push() will silently fail.
+     */
+    terminate: AsyncTerminable;
+}
+/**
+ * Asynchronously expands GZIP data
+ * @param data The data to decompress
+ * @param opts The decompression options
+ * @param cb The function to be called upon decompression completion
+ * @returns A function that can be used to immediately terminate the decompression
+ */
+export declare function gunzip(data: Uint8Array, opts: AsyncGunzipOptions, cb: FlateCallback): AsyncTerminable;
+/**
+ * Asynchronously expands GZIP data
+ * @param data The data to decompress
+ * @param cb The function to be called upon decompression completion
+ * @returns A function that can be used to immediately terminate the decompression
+ */
+export declare function gunzip(data: Uint8Array, cb: FlateCallback): AsyncTerminable;
+/**
+ * Expands GZIP data
+ * @param data The data to decompress
+ * @param opts The decompression options
+ * @returns The decompressed version of the data
+ */
+export declare function gunzipSync(data: Uint8Array, opts?: GunzipOptions): Uint8Array;
+/**
+ * Streaming Zlib compression
+ */
+export declare class Zlib {
+    private c;
+    private v;
+    private o;
+    private s;
+    /**
+     * The handler to call whenever data is available
+     */
+    ondata: FlateStreamHandler;
+    /**
+     * Creates a Zlib stream
+     * @param opts The compression options
+     * @param cb The callback to call whenever data is deflated
+     */
+    constructor(opts: ZlibOptions, cb?: FlateStreamHandler);
+    /**
+     * Creates a Zlib stream
+     * @param cb The callback to call whenever data is deflated
+     */
+    constructor(cb?: FlateStreamHandler);
+    /**
+     * Pushes a chunk to be zlibbed
+     * @param chunk The chunk to push
+     * @param final Whether this is the last chunk
+     */
+    push(chunk: Uint8Array, final?: boolean): void;
+    private p;
+    /**
+     * Flushes buffered uncompressed data. Useful to immediately retrieve the
+     * zlibbed output for small inputs.
+     */
+    flush(): void;
+}
+/**
+ * Asynchronous streaming Zlib compression
+ */
+export declare class AsyncZlib {
+    /**
+     * The handler to call whenever data is available
+     */
+    ondata: AsyncFlateStreamHandler;
+    /**
+     * The handler to call whenever buffered source data is processed (i.e. `queuedSize` updates)
+     */
+    ondrain?: AsyncFlateDrainHandler;
+    /**
+     * The number of uncompressed bytes buffered in the stream
+     */
+    queuedSize: number;
+    /**
+     * Creates an asynchronous Zlib stream
+     * @param opts The compression options
+     * @param cb The callback to call whenever data is deflated
+     */
+    constructor(opts: ZlibOptions, cb?: AsyncFlateStreamHandler);
+    /**
+     * Creates an asynchronous Zlib stream
+     * @param cb The callback to call whenever data is deflated
+     */
+    constructor(cb?: AsyncFlateStreamHandler);
+    /**
+     * Pushes a chunk to be deflated
+     * @param chunk The chunk to push
+     * @param final Whether this is the last chunk
+     */
+    push(chunk: Uint8Array, final?: boolean): void;
+    /**
+     * Flushes buffered uncompressed data. Useful to immediately retrieve the
+     * zlibbed output for small inputs.
+     */
+    flush(): void;
+    /**
+     * A method to terminate the stream's internal worker. Subsequent calls to
+     * push() will silently fail.
+     */
+    terminate: AsyncTerminable;
+}
+/**
+ * Asynchronously compresses data with Zlib
+ * @param data The data to compress
+ * @param opts The compression options
+ * @param cb The function to be called upon compression completion
+ */
+export declare function zlib(data: Uint8Array, opts: AsyncZlibOptions, cb: FlateCallback): AsyncTerminable;
+/**
+ * Asynchronously compresses data with Zlib
+ * @param data The data to compress
+ * @param cb The function to be called upon compression completion
+ * @returns A function that can be used to immediately terminate the compression
+ */
+export declare function zlib(data: Uint8Array, cb: FlateCallback): AsyncTerminable;
+/**
+ * Compress data with Zlib
+ * @param data The data to compress
+ * @param opts The compression options
+ * @returns The zlib-compressed version of the data
+ */
+export declare function zlibSync(data: Uint8Array, opts?: ZlibOptions): Uint8Array;
+/**
+ * Streaming Zlib decompression
+ */
+export declare class Unzlib {
+    private v;
+    private p;
+    /**
+     * The handler to call whenever data is available
+     */
+    ondata: FlateStreamHandler;
+    /**
+     * Creates a Zlib decompression stream
+     * @param opts The decompression options
+     * @param cb The callback to call whenever data is inflated
+     */
+    constructor(opts: UnzlibStreamOptions, cb?: FlateStreamHandler);
+    /**
+     * Creates a Zlib decompression stream
+     * @param cb The callback to call whenever data is inflated
+     */
+    constructor(cb?: FlateStreamHandler);
+    /**
+     * Pushes a chunk to be unzlibbed
+     * @param chunk The chunk to push
+     * @param final Whether this is the last chunk
+     */
+    push(chunk: Uint8Array, final?: boolean): void;
+}
+/**
+ * Asynchronous streaming Zlib decompression
+ */
+export declare class AsyncUnzlib {
+    /**
+     * The handler to call whenever data is available
+     */
+    ondata: AsyncFlateStreamHandler;
+    /**
+     * The handler to call whenever buffered source data is processed (i.e. `queuedSize` updates)
+     */
+    ondrain?: AsyncFlateDrainHandler;
+    /**
+     * The number of compressed bytes buffered in the stream
+     */
+    queuedSize: number;
+    /**
+     * Creates an asynchronous Zlib decompression stream
+     * @param opts The decompression options
+     * @param cb The callback to call whenever data is inflated
+     */
+    constructor(opts: UnzlibStreamOptions, cb?: AsyncFlateStreamHandler);
+    /**
+     * Creates an asynchronous Zlib decompression stream
+     * @param cb The callback to call whenever data is inflated
+     */
+    constructor(cb?: AsyncFlateStreamHandler);
+    /**
+     * Pushes a chunk to be decompressed from Zlib
+     * @param chunk The chunk to push
+     * @param final Whether this is the last chunk
+     */
+    push(chunk: Uint8Array, final?: boolean): void;
+    /**
+     * A method to terminate the stream's internal worker. Subsequent calls to
+     * push() will silently fail.
+     */
+    terminate: AsyncTerminable;
+}
+/**
+ * Asynchronously expands Zlib data
+ * @param data The data to decompress
+ * @param opts The decompression options
+ * @param cb The function to be called upon decompression completion
+ * @returns A function that can be used to immediately terminate the decompression
+ */
+export declare function unzlib(data: Uint8Array, opts: AsyncUnzlibOptions, cb: FlateCallback): AsyncTerminable;
+/**
+ * Asynchronously expands Zlib data
+ * @param data The data to decompress
+ * @param cb The function to be called upon decompression completion
+ * @returns A function that can be used to immediately terminate the decompression
+ */
+export declare function unzlib(data: Uint8Array, cb: FlateCallback): AsyncTerminable;
+/**
+ * Expands Zlib data
+ * @param data The data to decompress
+ * @param opts The decompression options
+ * @returns The decompressed version of the data
+ */
+export declare function unzlibSync(data: Uint8Array, opts?: UnzlibOptions): Uint8Array;
+export { gzip as compress, AsyncGzip as AsyncCompress };
+export { gzipSync as compressSync, Gzip as Compress };
+/**
+ * Streaming GZIP, Zlib, or raw DEFLATE decompression
+ */
+export declare class Decompress {
+    private G;
+    private I;
+    private Z;
+    private o;
+    private s;
+    private p;
+    /**
+     * The handler to call whenever data is available
+     */
+    ondata: FlateStreamHandler;
+    /**
+     * Creates a decompression stream
+     * @param opts The decompression options
+     * @param cb The callback to call whenever data is decompressed
+     */
+    constructor(opts: InflateStreamOptions, cb?: FlateStreamHandler);
+    /**
+     * Creates a decompression stream
+     * @param cb The callback to call whenever data is decompressed
+     */
+    constructor(cb?: FlateStreamHandler);
+    private i;
+    /**
+     * Pushes a chunk to be decompressed
+     * @param chunk The chunk to push
+     * @param final Whether this is the last chunk
+     */
+    push(chunk: Uint8Array, final?: boolean): void;
+}
+/**
+ * Asynchronous streaming GZIP, Zlib, or raw DEFLATE decompression
+ */
+export declare class AsyncDecompress {
+    private G;
+    private I;
+    private Z;
+    /**
+     * The handler to call whenever data is available
+     */
+    ondata: AsyncFlateStreamHandler;
+    /**
+     * The handler to call whenever buffered source data is processed (i.e. `queuedSize` updates)
+     */
+    ondrain?: AsyncFlateDrainHandler;
+    /**
+     * The number of compressed bytes buffered in the stream
+     */
+    queuedSize: number;
+    /**
+     * Creates an asynchronous decompression stream
+     * @param opts The decompression options
+     * @param cb The callback to call whenever data is decompressed
+     */
+    constructor(opts: InflateStreamOptions, cb?: AsyncFlateStreamHandler);
+    /**
+     * Creates an asynchronous decompression stream
+     * @param cb The callback to call whenever data is decompressed
+     */
+    constructor(cb?: AsyncFlateStreamHandler);
+    private i;
+    /**
+     * Pushes a chunk to be decompressed
+     * @param chunk The chunk to push
+     * @param final Whether this is the last chunk
+     */
+    push(chunk: Uint8Array, final?: boolean): void;
+}
+/**
+ * Asynchrononously expands compressed GZIP, Zlib, or raw DEFLATE data, automatically detecting the format
+ * @param data The data to decompress
+ * @param opts The decompression options
+ * @param cb The function to be called upon decompression completion
+ * @returns A function that can be used to immediately terminate the decompression
+ */
+export declare function decompress(data: Uint8Array, opts: AsyncInflateOptions, cb: FlateCallback): AsyncTerminable;
+/**
+ * Asynchrononously expands compressed GZIP, Zlib, or raw DEFLATE data, automatically detecting the format
+ * @param data The data to decompress
+ * @param cb The function to be called upon decompression completion
+ * @returns A function that can be used to immediately terminate the decompression
+ */
+export declare function decompress(data: Uint8Array, cb: FlateCallback): AsyncTerminable;
+/**
+ * Expands compressed GZIP, Zlib, or raw DEFLATE data, automatically detecting the format
+ * @param data The data to decompress
+ * @param opts The decompression options
+ * @returns The decompressed version of the data
+ */
+export declare function decompressSync(data: Uint8Array, opts?: InflateOptions): Uint8Array;
+/**
+ * Attributes for files added to a ZIP archive object
+ */
+export interface ZipAttributes {
+    /**
+     * The operating system of origin for this file. The value is defined
+     * by PKZIP's APPNOTE.txt, section 4.4.2.2. For example, 0 (the default)
+     * is MS/DOS, 3 is Unix, 19 is macOS.
+     */
+    os?: number;
+    /**
+     * The file's attributes. These are traditionally somewhat complicated
+     * and platform-dependent, so using them is scarcely necessary. However,
+     * here is a representation of what this is, bit by bit:
+     *
+     * `TTTTugtrwxrwxrwx0000000000ADVSHR`
+     *
+     * TTTT = file type (rarely useful)
+     *
+     * u = setuid, g = setgid, t = sticky
+     *
+     * rwx = user permissions, rwx = group permissions, rwx = other permissions
+     *
+     * 0000000000 = unused
+     *
+     * A = archive, D = directory, V = volume label, S = system file, H = hidden, R = read-only
+     *
+     * If you want to set the Unix permissions, for instance, just bit shift by 16, e.g. 0o644 << 16.
+     * Note that attributes usually only work in conjunction with the `os` setting: you must use
+     * `os` = 3 (Unix) if you want to set Unix permissions
+     */
+    attrs?: number;
+    /**
+     * Extra metadata to add to the file. This field is defined by PKZIP's APPNOTE.txt,
+     * section 4.4.28. At most 65,535 bytes may be used in each ID. The ID must be an
+     * integer between 0 and 65,535, inclusive.
+     *
+     * This field is incredibly rare and almost never needed except for compliance with
+     * proprietary standards and software.
+     */
+    extra?: Record<number, Uint8Array>;
+    /**
+     * The comment to attach to the file. This field is defined by PKZIP's APPNOTE.txt,
+     * section 4.4.26. The comment must be at most 65,535 bytes long UTF-8 encoded. This
+     * field is not read by consumer software.
+     */
+    comment?: string;
+    /**
+     * When the file was last modified. Defaults to the current time.
+     */
+    mtime?: GzipOptions['mtime'];
+}
+/**
+ * Options for creating a ZIP archive
+ */
+export interface ZipOptions extends DeflateOptions, ZipAttributes {
+}
+/**
+ * Options for expanding a ZIP archive
+ */
+export interface UnzipOptions {
+    /**
+     * A filter function to extract only certain files from a ZIP archive
+     */
+    filter?: UnzipFileFilter;
+}
+/**
+ * Options for asynchronously creating a ZIP archive
+ */
+export interface AsyncZipOptions extends AsyncDeflateOptions, ZipAttributes {
+}
+/**
+ * Options for asynchronously expanding a ZIP archive
+ */
+export interface AsyncUnzipOptions extends UnzipOptions {
+}
+/**
+ * A file that can be used to create a ZIP archive
+ */
+export type ZippableFile = Uint8Array | Zippable | [Uint8Array | Zippable, ZipOptions];
+/**
+ * A file that can be used to asynchronously create a ZIP archive
+ */
+export type AsyncZippableFile = Uint8Array | AsyncZippable | [Uint8Array | AsyncZippable, AsyncZipOptions];
+/**
+ * The complete directory structure of a ZIPpable archive
+ */
+export interface Zippable {
+    [path: string]: ZippableFile;
+}
+/**
+ * The complete directory structure of an asynchronously ZIPpable archive
+ */
+export interface AsyncZippable {
+    [path: string]: AsyncZippableFile;
+}
+/**
+ * An unzipped archive. The full path of each file is used as the key,
+ * and the file is the value
+ */
+export interface Unzipped {
+    [path: string]: Uint8Array;
+}
+/**
+ * Handler for string generation streams
+ * @param data The string output from the stream processor
+ * @param final Whether this is the final block
+ */
+export type StringStreamHandler = (data: string, final: boolean) => void;
+/**
+ * Callback for asynchronous ZIP decompression
+ * @param err Any error that occurred
+ * @param data The decompressed ZIP archive
+ */
+export type UnzipCallback = (err: FlateError | null, data: Unzipped) => void;
+/**
+ * Handler for streaming ZIP decompression
+ * @param file The file that was found in the archive
+ */
+export type UnzipFileHandler = (file: UnzipFile) => void;
+/**
+ * Streaming UTF-8 decoding
+ */
+export declare class DecodeUTF8 {
+    private p;
+    private t;
+    /**
+     * Creates a UTF-8 decoding stream
+     * @param cb The callback to call whenever data is decoded
+     */
+    constructor(cb?: StringStreamHandler);
+    /**
+     * Pushes a chunk to be decoded from UTF-8 binary
+     * @param chunk The chunk to push
+     * @param final Whether this is the last chunk
+     */
+    push(chunk: Uint8Array, final?: boolean): void;
+    /**
+     * The handler to call whenever data is available
+     */
+    ondata: StringStreamHandler;
+}
+/**
+ * Streaming UTF-8 encoding
+ */
+export declare class EncodeUTF8 {
+    private d;
+    /**
+     * Creates a UTF-8 decoding stream
+     * @param cb The callback to call whenever data is encoded
+     */
+    constructor(cb?: FlateStreamHandler);
+    /**
+     * Pushes a chunk to be encoded to UTF-8
+     * @param chunk The string data to push
+     * @param final Whether this is the last chunk
+     */
+    push(chunk: string, final?: boolean): void;
+    /**
+     * The handler to call whenever data is available
+     */
+    ondata: FlateStreamHandler;
+}
+/**
+ * Converts a string into a Uint8Array for use with compression/decompression methods
+ * @param str The string to encode
+ * @param latin1 Whether or not to interpret the data as Latin-1. This should
+ *               not need to be true unless decoding a binary string.
+ * @returns The string encoded in UTF-8/Latin-1 binary
+ */
+export declare function strToU8(str: string, latin1?: boolean): Uint8Array;
+/**
+ * Converts a Uint8Array to a string
+ * @param dat The data to decode to string
+ * @param latin1 Whether or not to interpret the data as Latin-1. This should
+ *               not need to be true unless encoding to binary string.
+ * @returns The original UTF-8/Latin-1 string
+ */
+export declare function strFromU8(dat: Uint8Array, latin1?: boolean): string;
+/**
+ * A stream that can be used to create a file in a ZIP archive
+ */
+export interface ZipInputFile extends ZipAttributes {
+    /**
+     * The filename to associate with the data provided to this stream. If you
+     * want a file in a subdirectory, use forward slashes as a separator (e.g.
+     * `directory/filename.ext`). This will still work on Windows.
+     */
+    filename: string;
+    /**
+     * The size of the file in bytes. This attribute may be invalid after
+     * the file is added to the ZIP archive; it must be correct only before the
+     * stream completes.
+     *
+     * If you don't want to have to compute this yourself, consider extending the
+     * ZipPassThrough class and overriding its process() method, or using one of
+     * ZipDeflate or AsyncZipDeflate.
+     */
+    size: number;
+    /**
+     * A CRC of the original file contents. This attribute may be invalid after
+     * the file is added to the ZIP archive; it must be correct only before the
+     * stream completes.
+     *
+     * If you don't want to have to generate this yourself, consider extending the
+     * ZipPassThrough class and overriding its process() method, or using one of
+     * ZipDeflate or AsyncZipDeflate.
+     */
+    crc: number;
+    /**
+     * The compression format for the data stream. This number is determined by
+     * the spec in PKZIP's APPNOTE.txt, section 4.4.5. For example, 0 = no
+     * compression, 8 = deflate, 14 = LZMA
+     */
+    compression: number;
+    /**
+     * Bits 1 and 2 of the general purpose bit flag, specified in PKZIP's
+     * APPNOTE.txt, section 4.4.4. Should be between 0 and 3. This is unlikely
+     * to be necessary.
+     */
+    flag?: number;
+    /**
+     * The handler to be called when data is added. After passing this stream to
+     * the ZIP file object, this handler will always be defined. To call it:
+     *
+     * `stream.ondata(error, chunk, final)`
+     *
+     * error = any error that occurred (null if there was no error)
+     *
+     * chunk = a Uint8Array of the data that was added (null if there was an
+     * error)
+     *
+     * final = boolean, whether this is the final chunk in the stream
+     */
+    ondata?: AsyncFlateStreamHandler;
+    /**
+     * A method called when the stream is no longer needed, for clean-up
+     * purposes. This will not always be called after the stream completes,
+     * so you may wish to call this.terminate() after the final chunk is
+     * processed if you have clean-up logic.
+     */
+    terminate?: AsyncTerminable;
+}
+/**
+ * A pass-through stream to keep data uncompressed in a ZIP archive.
+ */
+export declare class ZipPassThrough implements ZipInputFile {
+    filename: string;
+    crc: number;
+    size: number;
+    compression: number;
+    os?: number;
+    attrs?: number;
+    comment?: string;
+    extra?: Record<number, Uint8Array>;
+    mtime?: GzipOptions['mtime'];
+    ondata: AsyncFlateStreamHandler;
+    private c;
+    /**
+     * Creates a pass-through stream that can be added to ZIP archives
+     * @param filename The filename to associate with this data stream
+     */
+    constructor(filename: string);
+    /**
+     * Processes a chunk and pushes to the output stream. You can override this
+     * method in a subclass for custom behavior, but by default this passes
+     * the data through. You must call this.ondata(err, chunk, final) at some
+     * point in this method.
+     * @param chunk The chunk to process
+     * @param final Whether this is the last chunk
+     */
+    protected process(chunk: Uint8Array, final: boolean): void;
+    /**
+     * Pushes a chunk to be added. If you are subclassing this with a custom
+     * compression algorithm, note that you must push data from the source
+     * file only, pre-compression.
+     * @param chunk The chunk to push
+     * @param final Whether this is the last chunk
+     */
+    push(chunk: Uint8Array, final?: boolean): void;
+}
+/**
+ * Streaming DEFLATE compression for ZIP archives. Prefer using AsyncZipDeflate
+ * for better performance
+ */
+export declare class ZipDeflate implements ZipInputFile {
+    filename: string;
+    crc: number;
+    size: number;
+    compression: number;
+    flag: 0 | 1 | 2 | 3;
+    os?: number;
+    attrs?: number;
+    comment?: string;
+    extra?: Record<number, Uint8Array>;
+    mtime?: GzipOptions['mtime'];
+    ondata: AsyncFlateStreamHandler;
+    private d;
+    /**
+     * Creates a DEFLATE stream that can be added to ZIP archives
+     * @param filename The filename to associate with this data stream
+     * @param opts The compression options
+     */
+    constructor(filename: string, opts?: DeflateOptions);
+    process(chunk: Uint8Array, final: boolean): void;
+    /**
+     * Pushes a chunk to be deflated
+     * @param chunk The chunk to push
+     * @param final Whether this is the last chunk
+     */
+    push(chunk: Uint8Array, final?: boolean): void;
+}
+/**
+ * Asynchronous streaming DEFLATE compression for ZIP archives
+ */
+export declare class AsyncZipDeflate implements ZipInputFile {
+    filename: string;
+    crc: number;
+    size: number;
+    compression: number;
+    flag: 0 | 1 | 2 | 3;
+    os?: number;
+    attrs?: number;
+    comment?: string;
+    extra?: Record<number, Uint8Array>;
+    mtime?: GzipOptions['mtime'];
+    ondata: AsyncFlateStreamHandler;
+    private d;
+    terminate: AsyncTerminable;
+    /**
+     * Creates an asynchronous DEFLATE stream that can be added to ZIP archives
+     * @param filename The filename to associate with this data stream
+     * @param opts The compression options
+     */
+    constructor(filename: string, opts?: DeflateOptions);
+    process(chunk: Uint8Array, final: boolean): void;
+    /**
+     * Pushes a chunk to be deflated
+     * @param chunk The chunk to push
+     * @param final Whether this is the last chunk
+     */
+    push(chunk: Uint8Array, final?: boolean): void;
+}
+/**
+ * A zippable archive to which files can incrementally be added
+ */
+export declare class Zip {
+    private u;
+    private d;
+    /**
+     * Creates an empty ZIP archive to which files can be added
+     * @param cb The callback to call whenever data for the generated ZIP archive
+     *           is available
+     */
+    constructor(cb?: AsyncFlateStreamHandler);
+    /**
+     * Adds a file to the ZIP archive
+     * @param file The file stream to add
+     */
+    add(file: ZipInputFile): void;
+    /**
+     * Ends the process of adding files and prepares to emit the final chunks.
+     * This *must* be called after adding all desired files for the resulting
+     * ZIP file to work properly.
+     */
+    end(): void;
+    private e;
+    /**
+     * A method to terminate any internal workers used by the stream. Subsequent
+     * calls to add() will fail.
+     */
+    terminate(): void;
+    /**
+     * The handler to call whenever data is available
+     */
+    ondata: AsyncFlateStreamHandler;
+}
+/**
+ * Asynchronously creates a ZIP file
+ * @param data The directory structure for the ZIP archive
+ * @param opts The main options, merged with per-file options
+ * @param cb The callback to call with the generated ZIP archive
+ * @returns A function that can be used to immediately terminate the compression
+ */
+export declare function zip(data: AsyncZippable, opts: AsyncZipOptions, cb: FlateCallback): AsyncTerminable;
+/**
+ * Asynchronously creates a ZIP file
+ * @param data The directory structure for the ZIP archive
+ * @param cb The callback to call with the generated ZIP archive
+ * @returns A function that can be used to immediately terminate the compression
+ */
+export declare function zip(data: AsyncZippable, cb: FlateCallback): AsyncTerminable;
+/**
+ * Synchronously creates a ZIP file. Prefer using `zip` for better performance
+ * with more than one file.
+ * @param data The directory structure for the ZIP archive
+ * @param opts The main options, merged with per-file options
+ * @returns The generated ZIP archive
+ */
+export declare function zipSync(data: Zippable, opts?: ZipOptions): Uint8Array;
+/**
+ * A decoder for files in ZIP streams
+ */
+export interface UnzipDecoder {
+    /**
+     * The handler to call whenever data is available
+     */
+    ondata: AsyncFlateStreamHandler;
+    /**
+     * Pushes a chunk to be decompressed
+     * @param data The data in this chunk. Do not consume (detach) this data.
+     * @param final Whether this is the last chunk in the data stream
+     */
+    push(data: Uint8Array, final: boolean): void;
+    /**
+     * A method to terminate any internal workers used by the stream. Subsequent
+     * calls to push() should silently fail.
+     */
+    terminate?: AsyncTerminable;
+}
+/**
+ * A constructor for a decoder for unzip streams
+ */
+export interface UnzipDecoderConstructor {
+    /**
+     * Creates an instance of the decoder
+     * @param filename The name of the file
+     * @param size The compressed size of the file
+     * @param originalSize The original size of the file
+     */
+    new (filename: string, size?: number, originalSize?: number): UnzipDecoder;
+    /**
+     * The compression format for the data stream. This number is determined by
+     * the spec in PKZIP's APPNOTE.txt, section 4.4.5. For example, 0 = no
+     * compression, 8 = deflate, 14 = LZMA
+     */
+    compression: number;
+}
+/**
+ * Information about a file to be extracted from a ZIP archive
+ */
+export interface UnzipFileInfo {
+    /**
+     * The name of the file
+     */
+    name: string;
+    /**
+     * The compressed size of the file
+     */
+    size: number;
+    /**
+     * The original size of the file
+     */
+    originalSize: number;
+    /**
+     * The compression format for the data stream. This number is determined by
+     * the spec in PKZIP's APPNOTE.txt, section 4.4.5. For example, 0 = no
+     * compression, 8 = deflate, 14 = LZMA. If the filter function returns true
+     * but this value is not 8, the unzip function will throw.
+     */
+    compression: number;
+}
+/**
+ * A filter for files to be extracted during the unzipping process
+ * @param file The info for the current file being processed
+ * @returns Whether or not to extract the current file
+ */
+export type UnzipFileFilter = (file: UnzipFileInfo) => boolean;
+/**
+ * Streaming file extraction from ZIP archives
+ */
+export interface UnzipFile {
+    /**
+     * The handler to call whenever data is available
+     */
+    ondata: AsyncFlateStreamHandler;
+    /**
+     * The name of the file
+     */
+    name: string;
+    /**
+     * The compression format for the data stream. This number is determined by
+     * the spec in PKZIP's APPNOTE.txt, section 4.4.5. For example, 0 = no
+     * compression, 8 = deflate, 14 = LZMA. If start() is called but there is no
+     * decompression stream available for this method, start() will throw.
+     */
+    compression: number;
+    /**
+     * The compressed size of the file. Will not be present for archives created
+     * in a streaming fashion.
+     */
+    size?: number;
+    /**
+     * The original size of the file. Will not be present for archives created
+     * in a streaming fashion.
+     */
+    originalSize?: number;
+    /**
+     * Starts reading from the stream. Calling this function will always enable
+     * this stream, but ocassionally the stream will be enabled even without
+     * this being called.
+     */
+    start(): void;
+    /**
+     * A method to terminate any internal workers used by the stream. ondata
+     * will not be called any further.
+     */
+    terminate: AsyncTerminable;
+}
+/**
+ * Streaming pass-through decompression for ZIP archives
+ */
+export declare class UnzipPassThrough implements UnzipDecoder {
+    static compression: number;
+    ondata: AsyncFlateStreamHandler;
+    push(data: Uint8Array, final: boolean): void;
+}
+/**
+ * Streaming DEFLATE decompression for ZIP archives. Prefer AsyncZipInflate for
+ * better performance.
+ */
+export declare class UnzipInflate implements UnzipDecoder {
+    static compression: number;
+    private i;
+    ondata: AsyncFlateStreamHandler;
+    /**
+     * Creates a DEFLATE decompression that can be used in ZIP archives
+     */
+    constructor();
+    push(data: Uint8Array, final: boolean): void;
+}
+/**
+ * Asynchronous streaming DEFLATE decompression for ZIP archives
+ */
+export declare class AsyncUnzipInflate implements UnzipDecoder {
+    static compression: number;
+    private i;
+    ondata: AsyncFlateStreamHandler;
+    terminate: AsyncTerminable;
+    /**
+     * Creates a DEFLATE decompression that can be used in ZIP archives
+     */
+    constructor(_: string, sz?: number);
+    push(data: Uint8Array, final: boolean): void;
+}
+/**
+ * A ZIP archive decompression stream that emits files as they are discovered
+ */
+export declare class Unzip {
+    private d;
+    private c;
+    private p;
+    private k;
+    private o;
+    /**
+     * Creates a ZIP decompression stream
+     * @param cb The callback to call whenever a file in the ZIP archive is found
+     */
+    constructor(cb?: UnzipFileHandler);
+    /**
+     * Pushes a chunk to be unzipped
+     * @param chunk The chunk to push
+     * @param final Whether this is the last chunk
+     */
+    push(chunk: Uint8Array, final?: boolean): any;
+    /**
+     * Registers a decoder with the stream, allowing for files compressed with
+     * the compression type provided to be expanded correctly
+     * @param decoder The decoder constructor
+     */
+    register(decoder: UnzipDecoderConstructor): void;
+    /**
+     * The handler to call whenever a file is discovered
+     */
+    onfile: UnzipFileHandler;
+}
+/**
+ * Asynchronously decompresses a ZIP archive
+ * @param data The raw compressed ZIP file
+ * @param opts The ZIP extraction options
+ * @param cb The callback to call with the decompressed files
+ * @returns A function that can be used to immediately terminate the unzipping
+ */
+export declare function unzip(data: Uint8Array, opts: AsyncUnzipOptions, cb: UnzipCallback): AsyncTerminable;
+/**
+ * Asynchronously decompresses a ZIP archive
+ * @param data The raw compressed ZIP file
+ * @param cb The callback to call with the decompressed files
+ * @returns A function that can be used to immediately terminate the unzipping
+ */
+export declare function unzip(data: Uint8Array, cb: UnzipCallback): AsyncTerminable;
+/**
+ * Synchronously decompresses a ZIP archive. Prefer using `unzip` for better
+ * performance with more than one file.
+ * @param data The raw compressed ZIP file
+ * @param opts The ZIP extraction options
+ * @returns The decompressed files
+ */
+export declare function unzipSync(data: Uint8Array, opts?: UnzipOptions): Unzipped;
