/// <reference types="@types/react" />
import React from 'react';
import '../Presentation/Views/Dialog/Dialog.scss';
import '../Presentation/Views/Dialog/DialogHeader/DialogInfoIcon/DialogInfoIcon.scss';
import { Tone } from 'qb-ai-rephrase/src/Tone';
import useQbInitializedDataContext from '../Presentation/providers/QuickBloxUIKitProvider/useQbInitializedDataContext';
import { DialogEntity } from '../Domain/entity/DialogEntity';
import { DialogListViewModel } from '../Presentation/Views/DialogList/DialogListViewModel';
import { AIMessageWidget } from '../Presentation/Views/Dialog/AIWidgets/AIMessageWidget';
import { DialogViewModel } from '../Presentation/Views/Dialog/DialogViewModel';
import { MessageEntity } from '../Domain/entity/MessageEntity';
import useModal from './useModal';
import { QuickBloxUIKitProps } from '../CommonTypes/CommonTypes';
import { UsersListViewModel } from '../Presentation/Views/DialogInfo/UsersList/UsersListViewModel';
interface QuickBloxUIKitReturn {
    constants: {
        messagePerPage: number;
        maxFileSize?: number;
        maxWidthToResizing: string;
        workHeight: string;
        messagesContainerMobileHeight: string;
        messagesContainerHeight: string;
        clientContainerHeight: string;
        headerHeight: number;
        dialogListScrollableHeight: number;
    };
    data: {
        isOnline: boolean;
        isMobile: boolean;
        width: number;
        height: number;
        breakpoint: number;
        selectedDialog?: DialogEntity;
        dialogAvatarUrl: string;
        showDialogList: boolean;
        showDialogMessages: boolean;
        showDialogInformation: boolean;
        needDialogInformation: boolean;
        isRecording: boolean;
        stream?: MediaStream | null;
        permission: boolean;
        resultAudioBlob?: Blob | null;
        audioChunks: Blob[];
        fileToSend?: File | null;
        messageText: string;
        isLeaving: boolean;
        waitAIWidget: boolean;
        maxTokensForAIRephrase: number;
        defaultAIRephraseWidget?: AIMessageWidget;
        defaultAITranslateWidget?: AIMessageWidget;
        defaultAIAssistWidget?: AIMessageWidget;
        rephraseTones: Tone[];
        messagePerPage: number;
        enableForwarding: boolean;
        enableReplying: boolean;
        maxFileSize?: number;
        userName?: string;
        currentUserId?: number;
        sessionToken?: string;
        forwardMessage: MessageEntity | null;
        newModal: ReturnType<typeof useModal>;
        isOpen: boolean;
        warningErrorText: string;
        isAllMembersShow: boolean;
        scrollUpToDown: boolean;
        needRefresh: boolean;
        forwardMessageModal: ReturnType<typeof useModal>;
        showReplyMessage: boolean;
        messagesToReply: MessageEntity[];
    };
    models: {
        dialogsViewModel: DialogListViewModel;
        messagesViewModel: DialogViewModel;
        userViewModel: UsersListViewModel;
        currentContext: ReturnType<typeof useQbInitializedDataContext>;
    };
    handlers: {
        setSelectedDialog: (dialog: DialogEntity | undefined) => void;
        setShowDialogList: (value: boolean) => void;
        setShowDialogMessages: (value: boolean) => void;
        setShowDialogInformation: (value: boolean) => void;
        setNeedDialogInformation: (value: boolean) => void;
        handleLeaveDialog: () => void;
        leaveDialogHandler: (dialog: DialogEntity) => void;
        createDialogHandler: () => void;
        getDialogPhotoFileForPreview: () => Promise<void>;
        getMicrophonePermission: () => Promise<void>;
        startRecording: () => Promise<void>;
        stopRecording: () => void;
        setForwardMessage: (message: MessageEntity | null) => void;
        setWarningErrorText: (text: string) => void;
        setIsAllMembersShow: (value: boolean) => void;
        informationCloseHandler: () => void;
        informationOpenHandler: () => void;
        setIsRecording: (value: boolean) => void;
        fetchMoreData: () => void;
        sendTextMessageActions: (textToSend: string) => void;
        ChangeFileHandler: (event: React.ChangeEvent<HTMLInputElement>) => void;
        handleOnReply: (message: MessageEntity) => void;
        handleSendData: (dialogsForForward: DialogEntity[], messagesForForward: MessageEntity[], relatedText: string) => void;
        handleHeightChange: (newHeight: number) => void;
        closeReplyMessageFlowHandler: () => void;
        setMessageText: (text: string) => void;
        setWaitAIWidget: (value: boolean) => void;
        handleDialogOnClick: () => void;
    };
}
export default function useQuickBloxUIKit({ AIRephrase, AITranslate, AIAssist, uikitHeightOffset, }: QuickBloxUIKitProps): QuickBloxUIKitReturn;
export {};
