import { IEventRelation, UploadProgress } from "matrix-js-sdk/src/matrix";
import { EncryptedFile } from "matrix-js-sdk/src/types";
export declare class RoomUpload {
    readonly roomId: string;
    readonly fileName: string;
    readonly relation?: IEventRelation | undefined;
    fileSize: number;
    readonly abortController: AbortController;
    promise?: Promise<{
        url?: string;
        file?: EncryptedFile;
    }>;
    private uploaded;
    constructor(roomId: string, fileName: string, relation?: IEventRelation | undefined, fileSize?: number);
    onProgress(progress: UploadProgress): void;
    abort(): void;
    get cancelled(): boolean;
    get total(): number;
    get loaded(): number;
}
