/**
 * @typedef {object} ShopeeWebchatLogin
 * @property {string} token
 * @property {string} p_token
 * @property {User} user
 * @property {number} version
 * @property {Shop} shop
 * @property {boolean} is_ccu_grey
 * @property {boolean} show_chatbot_entrance
 * @property {boolean} use_top_region_ui
 */
/**
 * @typedef {object} User
 * @property {number} id
 * @property {string} uid
 * @property {string} name
 * @property {string} type
 * @property {string} avatar
 * @property {string} avatar_hash
 * @property {string} locale
 * @property {number} shop_id
 * @property {string} country
 * @property {string} status
 * @property {boolean} is_seller
 */
/**
 * @typedef {object} Shop
 * @property {number} id
 * @property {number} user_id
 * @property {string} name
 * @property {string} country
 * @property {string} image
 * @property {string} image_hash
 * @property {boolean} auto_reply_on
 * @property {string} auto_reply_msg
 * @property {boolean} hide_for_mart_seller
 */

/**
 * @typedef {object} ShopeeWebchatSentResponse
 * @property {string} id
 * @property {string} request_id
 * @property {number} to_id
 * @property {string} type
 * @property {Content} content
 * @property {string} conversation_id
 * @property {number} created_timestamp
 * @property {string} created_at
 * @property {object} source_content
 * @property {string} source_type
 * @property {number} message_option
 * @property {number} to_id_status
 * @property {MsgTag} msg_tag
 * @property {number} waring_tip_types
 */
/**
 * @typedef {object} Content
 * @property {string} text
 * @property {object} vid
 */
/**
 * @typedef {object} MsgTag
 * @property {boolean} is_chatbot_session
 * @property {boolean} is_rcmd_reply
 */

/**
 * @typedef {object} ShopeeWebchatSocketMessage
 * @property {string} id
 * @property {number} shop_id
 * @property {string} request_id
 * @property {number} from_id
 * @property {number} to_id
 * @property {number} from_shop_id
 * @property {number} to_shop_id
 * @property {string} from_user_name
 * @property {string} to_user_name
 * @property {number} seller_uid
 * @property {string} type
 * @property {number} chat_type_int
 * @property {Content} content
 * @property {string} conversation_id
 * @property {string} source_type
 * @property {number} created_timestamp
 * @property {string} country
 * @property {string} created_at
 * @property {number} message_option
 * @property {string} crm_activity_id
 * @property {number} stored_time
 * @property {boolean} send_by_yourself
 * @property {boolean} warning
 * @property {string} business_tag
 * @property {number} entry_point
 * @property {FaqInfo} faq_info
 * @property {string} faq_session_id
 * @property {object} quoted_msg
 * @property {number} biz_id
 * @property {number} sub_biz_id
 * @property {ChatBotInfo} chat_bot_info
 * @property {string} raw_content
 * @property {LabelInfo} label_info
 * @property {object} chat_msg_labels
 * @property {FeedbackInfo} feedback_info
 * @property {string} tracking_play_load
 * @property {number} subaccount_id
 * @property {CustomPreviewText} custom_preview_text
 * @property {CustomSenderPreviewText} custom_sender_preview_text
 * @property {MsgTag} msg_tag
 * @property {number} plat_form_subaccount_id
 * @property {string} subaccount_name
 * @property {boolean} is_chatbot_session
 * @property {number} waring_tip_types
 * @property {ChatbotPassContent} chatbot_pass_content
 * @property {number} affiliate_role
 */
/**
 * @typedef {object} Content
 * @property {string} text
 */
/**
 * @typedef {object} FaqInfo
 * @property {number} FaqType
 * @property {number} FaqSessionId
 * @property {boolean} is_faq_reply
 */
/**
 * @typedef {object} ChatBotInfo
 * @property {boolean} triggerd_by_server
 */
/**
 * @typedef {object} LabelInfo
 * @property {number} label_type
 */
/**
 * @typedef {object} FeedbackInfo
 * @property {number} feedback_thumb_info
 */
/**
 * @typedef {object} CustomPreviewText
 * @property {string} text
 * @property {object} translated_with_lang
 */
/**
 * @typedef {object} CustomSenderPreviewText
 * @property {string} text
 * @property {object} translated_with_lang
 */
/**
 * @typedef {object} MsgTag
 * @property {ChoiceInfo} choice_info
 * @property {boolean} chatbot_serve_feature
 * @property {boolean} is_chatbot_session
 * @property {number} msg_tag_opt
 * @property {boolean} is_rcmd_reply
 */
/**
 * @typedef {object} ChoiceInfo
 * @property {ChoiceSession} choice_session
 * @property {number} opt
 */
/**
 * @typedef {object} ChoiceSession
 * @property {ChoiceAttr} choice_attr
 * @property {string} bot_session_id
 * @property {string} cs_session_id
 * @property {string} chat_session_id
 * @property {number} session_event
 */
/**
 * @typedef {object} ChoiceAttr
 * @property {number} real_shop_id
 * @property {number} real_user_id
 * @property {number} real_entry_point
 * @property {number} real_source
 * @property {object} tag_ids
 */
/**
 * @typedef {object} ChatbotPassContent
 * @property {string} id
 * @property {string} title
 * @property {string} trigger_source
 * @property {string} trigger_type
 * @property {string} report_data
 * @property {string} bot_data
 * @property {boolean} is_send_open_message
 */

/**
 * @typedef {object} ShopeeSendChatResponse
 * @property {string} id
 * @property {string} request_id
 * @property {number} to_id
 * @property {string} type
 * @property {object} content
 * @property {string} conversation_id
 * @property {number} created_timestamp
 * @property {string} created_at
 * @property {object} source_content
 * @property {string} source_type
 * @property {number} message_option
 * @property {number} to_id_status
 * @property {MsgTag} msg_tag
 * @property {number} waring_tip_types
 */

/**
 * @typedef {object} MsgTag
 * @property {boolean} is_chatbot_session
 * @property {boolean} is_rcmd_reply
 * @property {number} msg_ui_opt
 */

/**
 * @typedef {object} ShopeeWebchatConversationRedirection
 * @property {string} conversation_id
 * @property {number} user_id
 * @property {number} shop_id
 * @property {string} entry_point
 */
