export function configure(configuration: ConfigurationOptions): void; declare global { // deno-lint-ignore no-empty-interface interface FileSystemEntry { } } interface ConfigurationOptions { useWebWorkers?: boolean; maxWorkers?: number; terminateWorkerTimeout?: number; workerScripts?: { deflate?: string[]; inflate?: string[]; }; chunkSize?: number; Deflate?: Codec; Inflate?: Codec; } export function initShimAsyncCodec(library: ZipLibrary, constructorOptions?: ConstructorOptions): { Deflate: Codec, Inflate: Codec }; export function terminateWorkers(): void; interface ZipLibrary { Deflate: ZipDeflate["constructor"], Inflate: ZipInflate["constructor"] } interface ZipDeflate { append(): Uint8Array, flush(): Uint8Array } interface ZipInflate { append(): Uint8Array, flush(): void } interface ConstructorOptions { chunkSize?: number, level?: number } export interface Codec { append(data: Uint8Array): Promise; flush(): Promise; } export function getMimeType(fileExtension: string): string; export class Stream { public size: number; public init(): Promise; } export class Reader extends Stream { constructor(value: Type); public readUint8Array(index: number, length: number): Promise; } export class TextReader extends Reader { } export class BlobReader extends Reader { } export class Data64URIReader extends Reader { } export class Uint8ArrayReader extends Reader { } export class HttpReader extends Reader { constructor(url: Type, options?: HttpOptions); } export class HttpRangeReader extends Reader { constructor(url: Type, options?: HttpRangeOptions); } interface HttpOptions extends HttpRangeOptions { useRangeHeader?: boolean; preventHeadRequest?: boolean; } interface HttpRangeOptions { forceRangeRequests?: boolean; useXHR?: boolean; headers?: Iterable<[string, string]> | Map; } export class ReadableStreamReader { constructor(readableStream: ReadableStream); public readUint8Array(_index: number, length: number): Promise; } export class Writer extends Stream { public writeUint8Array(array: Uint8Array): Promise; public getData(): Promise; } export class TextWriter extends Writer { constructor(encoding?: string); } export class BlobWriter extends Writer { constructor(mimeString?: string); } export class Data64URIWriter extends Writer { constructor(mimeString?: string); } export class Uint8ArrayWriter extends Writer { constructor(); } export class WritableStreamWriter extends Writer { constructor(writableStream: Type); } export class ZipReader { constructor(reader: Reader, options?: ZipReaderConstructorOptions); getEntries(options?: ZipReaderGetEntriesOptions): Promise; getEntriesGenerator(options?: ZipReaderGetEntriesOptions): AsyncGenerator; close(): Promise; } type ZipReaderConstructorOptions = ZipReaderOptions & GetEntriesOptions; type ZipReaderGetEntriesOptions = EntryOnprogressOption & GetEntriesOptions; interface ZipReaderOptions { checkSignature?: boolean; password?: string; useWebWorkers?: boolean; signal?: AbortSignal; } interface GetEntriesOptions { filenameEncoding?: string; commentEncoding?: string; } export interface Entry { offset?: number; filename: string; rawFilename: Uint8Array; filenameUTF8: boolean; directory: boolean; encrypted: boolean; compressedSize: number; uncompressedSize: number; lastModDate: Date; lastAccessDate?: Date; creationDate?: Date; rawLastModDate: number; rawLastAccessDate?: Date; rawCreationDate?: Date; comment: string; rawComment: Uint8Array; commentUTF8: boolean; signature: Uint8Array; extraField?: Map; rawExtraField: Uint8Array; zip64: boolean; version: number; versionMadeBy: number; msDosCompatible: boolean; internalFileAttribute: number; externalFileAttribute: number; getData?(writer: Writer, options?: EntryGetDataOptions): Promise; } type EntryGetDataOptions = EntryDataOnprogressOption & ZipReaderOptions; export class ZipWriter { readonly hasCorruptedEntries?: boolean; constructor(writer: Writer, options?: ZipWriterConstructorOptions); public add(name: string, reader: Reader | ReadableStreamReader | null, options?: ZipWriterAddDataOptions): Promise; public close(comment?: Uint8Array, options?: ZipWriterCloseOptions): Promise; } type ZipWriterAddDataOptions = EntryDataOnprogressOption & AddDataOptions & ZipWriterConstructorOptions; type ZipWriterCloseOptions = EntryOnprogressOption & CloseOptions; interface ZipWriterConstructorOptions { zip64?: boolean; level?: number; bufferedWrite?: boolean; keepOrder?: boolean; version?: number; password?: string; encryptionStrength?: number; zipCrypto?: boolean; useWebWorkers?: boolean; dataDescriptor?: boolean; dataDescriptorSignature?: boolean; signal?: AbortSignal; lastModDate?: Date; lastAccessDate?: Date; creationDate?: Date; extendedTimestamp?: boolean; msDosCompatible?: boolean; internalFileAttribute?: number; externalFileAttribute?: number; } interface AddDataOptions { directory?: boolean; comment?: string; extraField?: Map; } interface CloseOptions { zip64?: boolean; } interface EntryDataOnprogressOption { onprogress?: (progress: number, total: number) => void; } interface EntryOnprogressOption { onprogress?: (progress: number, total: number, entry: Entry) => void; } interface ZipEntryConstructorParams { data: Entry; } export class ZipEntry { constructor(fs: FS, name: string, params: ZipEntryConstructorParams, parent: ZipDirectoryEntry); name: string; data?: Entry; id: number; parent?: ZipEntry; children: ZipEntry[]; uncompressedSize: number; getFullname(): string; getRelativeName(ancestor: ZipDirectoryEntry): string; isDescendantOf(ancestor: ZipDirectoryEntry): boolean; } interface ZipFileEntryConstructorParams extends ZipEntryConstructorParams { reader: Reader; writer: Writer; getData?(writer: Writer, options?: EntryGetDataOptions): Promise; } export class ZipFileEntry extends ZipEntry { constructor(fs: FS, name: string, params: ZipFileEntryConstructorParams, parent: ZipDirectoryEntry); reader: Reader; writer: Writer; getText(encoding?: string, options?: EntryGetDataOptions): Promise; getBlob(mimeType?: string, options?: EntryGetDataOptions): Promise; getData64URI(mimeType?: string, options?: EntryGetDataOptions): Promise; getUint8Array(options?: EntryGetDataOptions): Promise; getData(writer: Writer, options?: EntryGetDataOptions): Promise; replaceBlob(blob: Blob): void; replaceText(text: string): void; replaceData64URI(dataURI: string): void; replaceUint8Array(array: Uint8Array): void; } interface ExportOptions { relativePath?: boolean; } export class ZipDirectoryEntry extends ZipEntry { constructor(fs: FS, name: string, params: ZipEntryConstructorParams, parent: ZipDirectoryEntry); getChildByName(name: string): ZipEntry; addDirectory(name: string): ZipDirectoryEntry; addText(name: string, text: string): ZipFileEntry; addBlob(name: string, blob: Blob): ZipFileEntry; addData64URI(name: string, dataURI: string): ZipFileEntry; addUint8Array(name: string, array: Uint8Array): ZipFileEntry; addHttpContent(name: string, url: string, options?: HttpOptions): ZipFileEntry; addFileSystemEntry(fileSystemEntry: FileSystemEntry): Promise; importBlob(blob: Blob, options?: ZipReaderConstructorOptions): Promise; importData64URI(dataURI: string, options?: ZipReaderConstructorOptions): Promise; importUint8Array(array: Uint8Array, options?: ZipReaderConstructorOptions): Promise; importHttpContent(url: string, options?: ZipDirectoryEntryImportHttpOptions): Promise; exportBlob(options?: ZipDirectoryEntryExportOptions): Promise; exportData64URI(options?: ZipDirectoryEntryExportOptions): Promise; exportUint8Array(options?: ZipDirectoryEntryExportOptions): Promise; } type ZipDirectoryEntryImportHttpOptions = ZipReaderConstructorOptions & HttpOptions; type ZipDirectoryEntryExportOptions = EntryDataOnprogressOption & ExportOptions & ZipWriterConstructorOptions; export class FS extends ZipDirectoryEntry { constructor(); root: ZipDirectoryEntry; remove(entry: ZipEntry): void; move(entry: ZipEntry, destination: ZipDirectoryEntry): void; find(fullname: string): ZipEntry; getById(id: number): ZipEntry; } export const fs: { FS: typeof FS, ZipDirectoryEntry: typeof ZipDirectoryEntry, ZipFileEntry: typeof ZipFileEntry }; export const ERR_HTTP_RANGE: string; export const ERR_BAD_FORMAT: string; export const ERR_EOCDR_NOT_FOUND: string; export const ERR_EOCDR_ZIP64_NOT_FOUND: string; export const ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND: string; export const ERR_CENTRAL_DIRECTORY_NOT_FOUND: string; export const ERR_LOCAL_FILE_HEADER_NOT_FOUND: string; export const ERR_EXTRAFIELD_ZIP64_NOT_FOUND: string; export const ERR_ENCRYPTED: string; export const ERR_UNSUPPORTED_ENCRYPTION: string; export const ERR_UNSUPPORTED_COMPRESSION: string; export const ERR_INVALID_SIGNATURE: string; export const ERR_INVALID_PASSWORD: string; export const ERR_DUPLICATED_NAME: string; export const ERR_INVALID_COMMENT: string; export const ERR_INVALID_ENTRY_NAME: string; export const ERR_INVALID_ENTRY_COMMENT: string; export const ERR_INVALID_VERSION: string; export const ERR_INVALID_EXTRAFIELD_TYPE: string; export const ERR_INVALID_EXTRAFIELD_DATA: string; export const ERR_INVALID_ENCRYPTION_STRENGTH: string; export const ERR_UNSUPPORTED_FORMAT: string; export const ERR_ABORT: string; export const ERR_NOT_SEEKABLE_READER: string