import React from "react";
import { Room, MatrixEvent } from "matrix-js-sdk/src/matrix";
import Exporter from "./Exporter";
import { RoomPermalinkCreator } from "../permalinks/Permalinks";
import { ExportType, IExportOptions } from "./exportUtils";
export default class HTMLExporter extends Exporter {
    protected avatars: Map<string, boolean>;
    protected permalinkCreator: RoomPermalinkCreator;
    protected totalSize: number;
    protected mediaOmitText: string;
    constructor(room: Room, exportType: ExportType, exportOptions: IExportOptions, setProgressText: React.Dispatch<React.SetStateAction<string>>);
    protected getRoomAvatar(): Promise<string>;
    protected wrapHTML(content: string, currentPage: number, nbPages: number): Promise<string>;
    protected getAvatarURL(event: MatrixEvent): string | null;
    protected saveAvatarIfNeeded(event: MatrixEvent): Promise<void>;
    protected getDateSeparator(event: MatrixEvent): string;
    protected needsDateSeparator(event: MatrixEvent, prevEvent: MatrixEvent | null): boolean;
    getEventTile(mxEv: MatrixEvent, continuation: boolean): JSX.Element;
    protected getEventTileMarkup(mxEv: MatrixEvent, continuation: boolean, filePath?: string): Promise<string>;
    protected createModifiedEvent(text: string, mxEv: MatrixEvent, italic?: boolean): MatrixEvent;
    protected createMessageBody(mxEv: MatrixEvent, joined?: boolean): Promise<string>;
    protected createHTML(events: MatrixEvent[], start: number, currentPage: number, nbPages: number): Promise<string>;
    export(): Promise<void>;
}
