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<string, ManifestItem>;
    guide: Record<string, string>[];
    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<void>;
    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<string, unknown> | Record<string, unknown>[], path: string[], idList: Record<string, string>, level?: number): TocElement[];
    getChapter(id: string): Promise<string>;
    getChapterRaw(id: string): Promise<string>;
    getImage(id: string): Promise<{
        data: Buffer;
        mimeType: string;
    }>;
    getFile(id: string): Promise<{
        data: Buffer;
        mimeType: string;
    }>;
    readFile(filename: string, encoding?: BufferEncoding): Promise<Buffer | string>;
    hasDRM(): boolean;
}
export default EPub;
