matrix-react-sdk
Version:
SDK for matrix.org using React
41 lines (40 loc) • 1.82 kB
TypeScript
import { MatrixEvent, Room } from "matrix-js-sdk/src/matrix";
import { ExportType, IExportOptions } from "./exportUtils";
type BlobFile = {
name: string;
blob: Blob;
};
export default abstract class Exporter {
protected room: Room;
protected exportType: ExportType;
protected exportOptions: IExportOptions;
protected setProgressText: React.Dispatch<React.SetStateAction<string>>;
protected files: BlobFile[];
protected cancelled: boolean;
protected constructor(room: Room, exportType: ExportType, exportOptions: IExportOptions, setProgressText: React.Dispatch<React.SetStateAction<string>>);
get destinationFileName(): string;
protected onBeforeUnload(e: BeforeUnloadEvent): string;
protected updateProgress(progress: string, log?: boolean, show?: boolean): void;
protected addFile(filePath: string, blob: Blob): void;
protected makeFileNameNoExtension(brand?: string): string;
protected downloadZIP(): Promise<string | void>;
protected cleanUp(): string;
cancelExport(): Promise<void>;
protected downloadPlainText(fileName: string, text: string): void;
protected setEventMetadata(event: MatrixEvent): MatrixEvent;
getLimit(): number;
protected getRequiredEvents(): Promise<MatrixEvent[]>;
/**
* Decrypts if necessary, and fetches media from a matrix event
* @param event - matrix event with media event content
* @resolves when media has been fetched
* @throws if media was unable to be fetched
*/
protected getMediaBlob(event: MatrixEvent): Promise<Blob>;
splitFileName(file: string): string[];
getFilePath(event: MatrixEvent): string;
protected isReply(event: MatrixEvent): boolean;
protected isAttachment(mxEv: MatrixEvent): boolean;
abstract export(): Promise<void>;
}
export {};