import { InquiryQuestion } from '.';
import { DbRecord } from './shared/DbRecord';
export type ChatRoomsMessages<T = Record<string, any>> = {
    /** メッセージの本文 */
    body: string;
    /** ファイルのソース */
    fileSrc: string;
    /** ファイルのタイプ */
    fileType: string;
    /**ファイルのアップロード未対応 */
    isFileUpload?: boolean;
    /** ユーザー名 */
    user: string;
    /** リプライメッセージのID */
    replyId: string;
    /** メンションされたユーザーのIDの配列 */
    mentionIds: string[];
    /** メッセージが非表示かどうかを示すフラグ */
    hidden: boolean;
    /** メッセージの編集履歴 */
    editHistory: string[];
    /** 保存する際に使用していたモード */
    isQAMode: boolean;
    /** その時保存したmodeの状態 */
    mode: 'contact' | 'chat';
    /** 最終更新グループ名 */
    createdGroupBy?: string;
    /**
     * 返信に必要なデータのタイプ。
     * - ''（空文字列）: 必須データなし。
     * - 'file': ファイルを添付する必要あり。
     * - 'text': テキストメッセージを返す必要あり。
     */
    replyRequiredDataType: '' | 'file' | 'text';
    /** InquiryQuestion情報（別コレクションあり） */
    InquiryQuestion?: InquiryQuestion;
    /**
     *  追加メンバー(isMemberAddNotificationをChatRoomで指定した場合)
     */
    additionalMembers?: {
        /** メンバーのID */
        id: string;
        /** メンバーの名前 */
        name: string;
    }[];
    /** その他のプロパティ */
    [key: string]: any;
} & DbRecord & T;
/**
 * 削除用のprops用の型
 * @param {ChatRoomsMessages} question 対象の質問
 * @param {ChatRoomsMessages} answer 対象の回答
 * @param {boolean} deleteFlag 削除の状態
 *  */
export type QAObj = {
    /** 最後の質問があるか */
    lastQuestion?: boolean;
    /** 現在のモード */
    isQAMode: boolean;
    /** 対象の質問 */
    question?: ChatRoomsMessages;
    /** 対象の回答 */
    answer?: ChatRoomsMessages;
    /** 削除の状態
     * - 一個戻る場合の削除 'back'
     * - 全て削除する場合の削除 'all'
     * - 何もない場合 ''
     */
    deleteFlag?: 'back' | 'all' | '';
};
/**
 * ChatRoomsMessagesデータの初期設定をする関数
 * @returns {ChatRoomsMessages} ChatRoomsMessagesデータの初期設定
 */
export declare function defaultChatRoomsMessages(partial?: Partial<ChatRoomsMessages>, qAPartial?: Partial<Omit<InquiryQuestion, keyof DbRecord>>): ChatRoomsMessages;
