import JSZip from "jszip"; export interface ManifestItem { id: string; href: string; "media-type": string; [key: string]: unknown; } export interface TocElement { level: number; order: number; title: string; id: string; href: string; "media-type"?: string; [key: string]: unknown; } export interface Metadata { creator: string; creatorFileAs: string; title: string; language: string; subject: string; subjects?: string[]; date: string; description: string; publisher?: string; source?: string; UUID?: string; [key: string]: unknown; } export declare class EPub { input: string | Buffer | ArrayBuffer; imageroot: string; linkroot: string; metadata: Metadata; manifest: Record; guide: Record[]; spine: { toc: ManifestItem | false; contents: ManifestItem[]; }; flow: ManifestItem[]; toc: TocElement[]; version: string; zip: JSZip; containerFile: string | false; mimeFile: string | false; rootFile: string | false; constructor(input: string | Buffer | ArrayBuffer, imageroot?: string, linkroot?: string); parse(): Promise; private _readFile; private _open; private _checkMimeType; private _getRootFiles; private _handleRootFile; private _parseRootFile; private _parseMetadata; private _parseManifest; private _parseGuide; private _parseSpine; private _parseTOC; walkNavMap(branch: Record | Record[], path: string[], idList: Record, level?: number): TocElement[]; getChapter(id: string): Promise; getChapterRaw(id: string): Promise; getImage(id: string): Promise<{ data: Buffer; mimeType: string; }>; getFile(id: string): Promise<{ data: Buffer; mimeType: string; }>; readFile(filename: string, encoding?: BufferEncoding): Promise; hasDRM(): boolean; } export default EPub;