import React, { FormEvent } from "react";
import { ZIMKitTextMessageModel, ZIMKitImgMessageModel, ZIMKitAudioMessageModel, ZIMKitVideoMessageModel, ZIMKitFileMessageModel } from "../Model";
import "../../ZIMKitCommon/UI/common.css";
import "./style.css";
import ZIMKitChatVM from "../VM/ZIMKitChatVM";
declare class MessageView extends React.Component<any, any> {
    constructor(props: any);
    componentDidMount(): void;
    componentWillUnmount(): void;
    currentChatChangedCallback(): (currentChat: ZIMKitChatVM) => void;
    currentChatUpdatedCallback(): (currentChat: ZIMKitChatVM) => void;
    modeChangedCallback(): (mode: number, message: ZIMKitTextMessageModel | ZIMKitImgMessageModel | ZIMKitAudioMessageModel | ZIMKitVideoMessageModel | ZIMKitFileMessageModel) => void;
    handleExpressionBoxOperation(type: string): void;
    handleClick(event: MouseEvent): void;
    triggerExpressionUI(): void;
    scrollToBottom(): void;
    listScroll(): void;
    sendMessage(): void;
    dateFormat(currentMessage: ZIMKitTextMessageModel | ZIMKitImgMessageModel | ZIMKitAudioMessageModel | ZIMKitVideoMessageModel | ZIMKitFileMessageModel, currentIndex: number): string | undefined;
    handleInputChange(event: FormEvent): void;
    clickUploadImageFile(): void;
    clickUploadVideoFile(): void;
    clickUploadFile(): void;
    handleImageChange(event: FormEvent): Promise<void>;
    handleVideoFileChange(event: FormEvent): void;
    handleFileChange(event: FormEvent): void;
    handleAddExpression(expression: string): void;
    showLargeImg(item: ZIMKitImgMessageModel | ZIMKitVideoMessageModel): void;
    handleCloseLargeImgBox(): void;
    operation(messageItem: any, event: any): void;
    playAudio(item: ZIMKitAudioMessageModel): void;
    startPlayingAudio(item: ZIMKitAudioMessageModel, audioDom: HTMLAudioElement): void;
    getAudioWidth(item: ZIMKitAudioMessageModel): number;
    getFileIcon(item: ZIMKitFileMessageModel): string;
    selectMessage(item: ZIMKitTextMessageModel | ZIMKitImgMessageModel | ZIMKitAudioMessageModel | ZIMKitVideoMessageModel | ZIMKitFileMessageModel): void;
    closeMultiSelectMode(): void;
    deleteMessage(): void;
    render(): JSX.Element;
}
export default MessageView;
