import React from "react";
import { IBodyProps } from "./IBodyProps";
import RoomContext from "../../../contexts/RoomContext";
interface IState {
    decryptedUrl: string | null;
    decryptedThumbnailUrl: string | null;
    decryptedBlob: Blob | null;
    error?: any;
    fetchingData: boolean;
    posterLoading: boolean;
    blurhashUrl: string | null;
}
export default class MVideoBody extends React.PureComponent<IBodyProps, IState> {
    static contextType: React.Context<import("../../structures/RoomView").IRoomState & {
        threadId?: string;
    }>;
    context: React.ContextType<typeof RoomContext>;
    private videoRef;
    private sizeWatcher?;
    state: {
        fetchingData: boolean;
        decryptedUrl: null;
        decryptedThumbnailUrl: null;
        decryptedBlob: null;
        error: null;
        posterLoading: boolean;
        blurhashUrl: null;
    };
    private getContentUrl;
    private hasContentUrl;
    private getThumbUrl;
    private loadBlurhash;
    componentDidMount(): Promise<void>;
    componentWillUnmount(): void;
    private videoOnPlay;
    protected get showFileBody(): boolean;
    private getFileBody;
    render(): React.ReactNode;
}
export {};
