/**
 * @brief 错误码
 * 详细 [错误码](https://cloud.tencent.com/document/product/269/1671)，请您移步官网查看
 */
declare enum TIMErrCode {
    ERR_SUCC = 0,
    ERR_IN_PROGESS = 6015,
    ERR_INVALID_PARAMETERS = 6017,
    ERR_IO_OPERATION_FAILED = 6022,
    ERR_INVALID_JSON = 6027,
    ERR_OUT_OF_MEMORY = 6028,
    ERR_PARSE_RESPONSE_FAILED = 6001,
    ERR_SERIALIZE_REQ_FAILED = 6002,
    ERR_SDK_NOT_INITIALIZED = 6013,
    ERR_LOADMSG_FAILED = 6005,
    ERR_DATABASE_OPERATE_FAILED = 6019,
    ERR_SDK_COMM_CROSS_THREAD = 7001,
    ERR_SDK_COMM_TINYID_EMPTY = 7002,
    ERR_SDK_COMM_INVALID_IDENTIFIER = 7003,
    ERR_SDK_COMM_FILE_NOT_FOUND = 7004,
    ERR_SDK_COMM_FILE_TOO_LARGE = 7005,
    ERR_SDK_COMM_FILE_SIZE_EMPTY = 7006,
    ERR_SDK_COMM_FILE_OPEN_FAILED = 7007,
    ERR_SDK_COMM_API_CALL_FREQUENCY_LIMIT = 7008,
    ERR_SDK_COMM_INTERRUPT = 7009,
    ERR_SDK_COMM_DATABASE_FAILURE = 7010,
    ERR_SDK_COMM_DATABASE_NOTFOUND = 7011,
    ERR_SDK_INTERNAL_ERROR = 7012,
    ERR_SDK_NOT_LOGGED_IN = 6014,
    ERR_NO_PREVIOUS_LOGIN = 6026,
    ERR_USER_SIG_EXPIRED = 6206,
    ERR_LOGIN_KICKED_OFF_BY_OTHER = 6208,
    ERR_SDK_ACCOUNT_LOGIN_IN_PROCESS = 7501,
    ERR_SDK_ACCOUNT_LOGOUT_IN_PROCESS = 7502,
    ERR_SDK_ACCOUNT_TLS_INIT_FAILED = 7503,
    ERR_SDK_ACCOUNT_TLS_NOT_INITIALIZED = 7504,
    ERR_SDK_ACCOUNT_TLS_TRANSPKG_ERROR = 7505,
    ERR_SDK_ACCOUNT_TLS_DECRYPT_FAILED = 7506,
    ERR_SDK_ACCOUNT_TLS_REQUEST_FAILED = 7507,
    ERR_SDK_ACCOUNT_TLS_REQUEST_TIMEOUT = 7508,
    ERR_INVALID_CONVERSATION = 6004,
    ERR_FILE_TRANS_AUTH_FAILED = 6006,
    ERR_FILE_TRANS_NO_SERVER = 6007,
    ERR_FILE_TRANS_UPLOAD_FAILED = 6008,
    ERR_IMAGE_UPLOAD_FAILED_NOTIMAGE = 6031,
    ERR_FILE_TRANS_DOWNLOAD_FAILED = 6009,
    ERR_HTTP_REQ_FAILED = 6010,
    ERR_INVALID_MSG_ELEM = 6016,
    ERR_INVALID_SDK_OBJECT = 6021,
    ERR_SDK_MSG_BODY_SIZE_LIMIT = 8001,
    ERR_SDK_MSG_KEY_REQ_DIFFER_RSP = 8002,
    ERR_SDK_IMAGE_CONVERT_ERROR = 8003,
    ERR_SDK_IMAGE_CI_BLOCK = 8004,
    ERR_MERGER_MSG_LAYERS_OVER_LIMIT = 8005,
    ERR_SDK_SIGNALING_INVALID_INVITE_ID = 8010,
    ERR_SDK_SIGNALING_NO_PERMISSION = 8011,
    ERR_SDK_INVALID_CANCEL_MESSAGE = 8020,
    ERR_SDK_SEND_MESSAGE_FAILED_WITH_CANCEL = 8021,
    ERR_SDK_GROUP_INVALID_ID = 8501,
    ERR_SDK_GROUP_INVALID_NAME = 8502,
    ERR_SDK_GROUP_INVALID_INTRODUCTION = 8503,
    ERR_SDK_GROUP_INVALID_NOTIFICATION = 8504,
    ERR_SDK_GROUP_INVALID_FACE_URL = 8505,
    ERR_SDK_GROUP_INVALID_NAME_CARD = 8506,
    ERR_SDK_GROUP_MEMBER_COUNT_LIMIT = 8507,
    ERR_SDK_GROUP_JOIN_PRIVATE_GROUP_DENY = 8508,
    ERR_SDK_GROUP_INVITE_SUPER_DENY = 8509,
    ERR_SDK_GROUP_INVITE_NO_MEMBER = 8510,
    ERR_SDK_GROUP_ATTR_FREQUENCY_LIMIT = 8511,
    ERR_SDK_GROUP_GET_ONLINE_MEMBER_COUNT_LIMIT = 8512,
    ERR_SDK_GROUP_GET_GROUPS_INFO_LIMIT = 8513,
    ERR_SDK_GROUP_GET_JOINED_GROUP_LIMIT = 8514,
    ERR_SDK_FRIENDSHIP_INVALID_PROFILE_KEY = 9001,
    ERR_SDK_FRIENDSHIP_INVALID_ADD_REMARK = 9002,
    ERR_SDK_FRIENDSHIP_INVALID_ADD_WORDING = 9003,
    ERR_SDK_FRIENDSHIP_INVALID_ADD_SOURCE = 9004,
    ERR_SDK_FRIENDSHIP_FRIEND_GROUP_EMPTY = 9005,
    ERR_SDK_FRIENDSHIP_EXCEED_THE_LIMIT = 9006,
    ERR_SDK_NET_ENCODE_FAILED = 9501,
    ERR_SDK_NET_DECODE_FAILED = 9502,
    ERR_SDK_NET_AUTH_INVALID = 9503,
    ERR_SDK_NET_COMPRESS_FAILED = 9504,
    ERR_SDK_NET_UNCOMPRESS_FAILED = 9505,
    ERR_SDK_NET_FREQ_LIMIT = 9506,
    ERR_SDK_NET_REQ_COUNT_LIMIT = 9507,
    ERR_SDK_NET_DISCONNECT = 9508,
    ERR_SDK_NET_ALLREADY_CONN = 9509,
    ERR_SDK_NET_CONN_TIMEOUT = 9510,
    ERR_SDK_NET_CONN_REFUSE = 9511,
    ERR_SDK_NET_NET_UNREACH = 9512,
    ERR_SDK_NET_SOCKET_NO_BUFF = 9513,
    ERR_SDK_NET_RESET_BY_PEER = 9514,
    ERR_SDK_NET_SOCKET_INVALID = 9515,
    ERR_SDK_NET_HOST_GETADDRINFO_FAILED = 9516,
    ERR_SDK_NET_CONNECT_RESET = 9517,
    ERR_SDK_NET_WAIT_INQUEUE_TIMEOUT = 9518,
    ERR_SDK_NET_WAIT_SEND_TIMEOUT = 9519,
    ERR_SDK_NET_WAIT_ACK_TIMEOUT = 9520,
    ERR_SDK_NET_WAIT_SEND_REMAINING_TIMEOUT = 9521,
    ERR_SDK_NET_PKG_SIZE_LIMIT = 9522,
    ERR_SDK_NET_WAIT_SEND_TIMEOUT_NO_NETWORK = 9523,
    ERR_SDK_NET_WAIT_ACK_TIMEOUT_NO_NETWORK = 9524,
    ERR_SDK_NET_SEND_REMAINING_TIMEOUT_NO_NETWORK = 9525,
    ERR_SVR_SSO_CONNECT_LIMIT = -302,
    ERR_SVR_SSO_VCODE = -10000,
    ERR_SVR_SSO_D2_EXPIRED = -10001,
    ERR_SVR_SSO_A2_UP_INVALID = -10003,
    ERR_SVR_SSO_A2_DOWN_INVALID = -10004,
    ERR_SVR_SSO_EMPTY_KEY = -10005,
    ERR_SVR_SSO_UIN_INVALID = -10006,
    ERR_SVR_SSO_VCODE_TIMEOUT = -10007,
    ERR_SVR_SSO_NO_IMEI_AND_A2 = -10008,
    ERR_SVR_SSO_COOKIE_INVALID = -10009,
    ERR_SVR_SSO_DOWN_TIP = -10101,
    ERR_SVR_SSO_DISCONNECT = -10102,
    ERR_SVR_SSO_IDENTIFIER_INVALID = -10103,
    ERR_SVR_SSO_CLIENT_CLOSE = -10104,
    ERR_SVR_SSO_MSFSDK_QUIT = -10105,
    ERR_SVR_SSO_D2KEY_WRONG = -10106,
    ERR_SVR_SSO_UNSURPPORT = -10107,
    ERR_SVR_SSO_PREPAID_ARREARS = -10108,
    ERR_SVR_SSO_PACKET_WRONG = -10109,
    ERR_SVR_SSO_APPID_BLACK_LIST = -10110,
    ERR_SVR_SSO_CMD_BLACK_LIST = -10111,
    ERR_SVR_SSO_APPID_WITHOUT_USING = -10112,
    ERR_SVR_SSO_FREQ_LIMIT = -10113,
    ERR_SVR_SSO_OVERLOAD = -10114,
    ERR_SVR_RES_NOT_FOUND = 114000,
    ERR_SVR_RES_ACCESS_DENY = 114001,
    ERR_SVR_RES_SIZE_LIMIT = 114002,
    ERR_SVR_RES_SEND_CANCEL = 114003,
    ERR_SVR_RES_READ_FAILED = 114004,
    ERR_SVR_RES_TRANSFER_TIMEOUT = 114005,
    ERR_SVR_RES_INVALID_PARAMETERS = 114011,
    ERR_SVR_RES_INVALID_FILE_MD5 = 115066,
    ERR_SVR_RES_INVALID_PART_MD5 = 115068,
    ERR_SVR_COMM_INVALID_HTTP_URL = 60002,
    ERR_SVR_COMM_REQ_JSON_PARSE_FAILED = 60003,
    ERR_SVR_COMM_INVALID_ACCOUNT = 60004,
    ERR_SVR_COMM_INVALID_ACCOUNT_EX = 60005,
    ERR_SVR_COMM_INVALID_SDKAPPID = 60006,
    ERR_SVR_COMM_REST_FREQ_LIMIT = 60007,
    ERR_SVR_COMM_REQUEST_TIMEOUT = 60008,
    ERR_SVR_COMM_INVALID_RES = 60009,
    ERR_SVR_COMM_ID_NOT_ADMIN = 60010,
    ERR_SVR_COMM_SDKAPPID_FREQ_LIMIT = 60011,
    ERR_SVR_COMM_SDKAPPID_MISS = 60012,
    ERR_SVR_COMM_RSP_JSON_PARSE_FAILED = 60013,
    ERR_SVR_COMM_EXCHANGE_ACCOUNT_TIMEUT = 60014,
    ERR_SVR_COMM_INVALID_ID_FORMAT = 60015,
    ERR_SVR_COMM_SDKAPPID_FORBIDDEN = 60016,
    ERR_SVR_COMM_REQ_FORBIDDEN = 60017,
    ERR_SVR_COMM_REQ_FREQ_LIMIT = 60018,
    ERR_SVR_COMM_REQ_FREQ_LIMIT_EX = 60019,
    ERR_SVR_COMM_INVALID_SERVICE = 60020,
    ERR_SVR_COMM_SENSITIVE_TEXT = 80001,
    ERR_SVR_COMM_BODY_SIZE_LIMIT = 80002,
    ERR_SVR_ACCOUNT_USERSIG_EXPIRED = 70001,
    ERR_SVR_ACCOUNT_USERSIG_EMPTY = 70002,
    ERR_SVR_ACCOUNT_USERSIG_CHECK_FAILED = 70003,
    ERR_SVR_ACCOUNT_USERSIG_CHECK_FAILED_EX = 70005,
    ERR_SVR_ACCOUNT_USERSIG_MISMATCH_PUBLICKEY = 70009,
    ERR_SVR_ACCOUNT_USERSIG_MISMATCH_ID = 70013,
    ERR_SVR_ACCOUNT_USERSIG_MISMATCH_SDKAPPID = 70014,
    ERR_SVR_ACCOUNT_USERSIG_PUBLICKEY_NOT_FOUND = 70016,
    ERR_SVR_ACCOUNT_SDKAPPID_NOT_FOUND = 70020,
    ERR_SVR_ACCOUNT_INVALID_USERSIG = 70052,
    ERR_SVR_ACCOUNT_NOT_FOUND = 70107,
    ERR_SVR_ACCOUNT_SEC_RSTR = 70114,
    ERR_SVR_ACCOUNT_INTERNAL_TIMEOUT = 70169,
    ERR_SVR_ACCOUNT_INVALID_COUNT = 70206,
    ERR_SVR_ACCOUNT_INVALID_PARAMETERS = 70402,
    ERR_SVR_ACCOUNT_ADMIN_REQUIRED = 70403,
    ERR_SVR_ACCOUNT_FREQ_LIMIT = 70050,
    ERR_SVR_ACCOUNT_BLACKLIST = 70051,
    ERR_SVR_ACCOUNT_COUNT_LIMIT = 70398,
    ERR_SVR_ACCOUNT_INTERNAL_ERROR = 70500,
    ERR_SVR_PROFILE_INVALID_PARAMETERS = 40001,
    ERR_SVR_PROFILE_ACCOUNT_MISS = 40002,
    ERR_SVR_PROFILE_ACCOUNT_NOT_FOUND = 40003,
    ERR_SVR_PROFILE_ADMIN_REQUIRED = 40004,
    ERR_SVR_PROFILE_SENSITIVE_TEXT = 40005,
    ERR_SVR_PROFILE_INTERNAL_ERROR = 40006,
    ERR_SVR_PROFILE_READ_PERMISSION_REQUIRED = 40007,
    ERR_SVR_PROFILE_WRITE_PERMISSION_REQUIRED = 40008,
    ERR_SVR_PROFILE_TAG_NOT_FOUND = 40009,
    ERR_SVR_PROFILE_SIZE_LIMIT = 40601,
    ERR_SVR_PROFILE_VALUE_ERROR = 40605,
    ERR_SVR_PROFILE_INVALID_VALUE_FORMAT = 40610,
    ERR_SVR_FRIENDSHIP_INVALID_PARAMETERS = 30001,
    ERR_SVR_FRIENDSHIP_INVALID_SDKAPPID = 30002,
    ERR_SVR_FRIENDSHIP_ACCOUNT_NOT_FOUND = 30003,
    ERR_SVR_FRIENDSHIP_ADMIN_REQUIRED = 30004,
    ERR_SVR_FRIENDSHIP_SENSITIVE_TEXT = 30005,
    ERR_SVR_FRIENDSHIP_INTERNAL_ERROR = 30006,
    ERR_SVR_FRIENDSHIP_NET_TIMEOUT = 30007,
    ERR_SVR_FRIENDSHIP_WRITE_CONFLICT = 30008,
    ERR_SVR_FRIENDSHIP_ADD_FRIEND_DENY = 30009,
    ERR_SVR_FRIENDSHIP_COUNT_LIMIT = 30010,
    ERR_SVR_FRIENDSHIP_GROUP_COUNT_LIMIT = 30011,
    ERR_SVR_FRIENDSHIP_PENDENCY_LIMIT = 30012,
    ERR_SVR_FRIENDSHIP_BLACKLIST_LIMIT = 30013,
    ERR_SVR_FRIENDSHIP_PEER_FRIEND_LIMIT = 30014,
    ERR_SVR_FRIENDSHIP_IN_SELF_BLACKLIST = 30515,
    ERR_SVR_FRIENDSHIP_ALLOW_TYPE_DENY_ANY = 30516,
    ERR_SVR_FRIENDSHIP_IN_PEER_BLACKLIST = 30525,
    ERR_SVR_FRIENDSHIP_ALLOW_TYPE_NEED_CONFIRM = 30539,
    ERR_SVR_FRIENDSHIP_ADD_FRIEND_SEC_RSTR = 30540,
    ERR_SVR_FRIENDSHIP_PENDENCY_NOT_FOUND = 30614,
    ERR_SVR_FRIENDSHIP_DEL_NONFRIEND = 31704,
    ERR_SVR_FRIENDSHIP_DEL_FRIEND_SEC_RSTR = 31707,
    ERR_SVR_FRIENDSHIP_ACCOUNT_NOT_FOUND_EX = 31804,
    ERR_SVR_CONV_ACCOUNT_NOT_FOUND = 50001,
    ERR_SVR_CONV_INVALID_PARAMETERS = 50002,
    ERR_SVR_CONV_ADMIN_REQUIRED = 50003,
    ERR_SVR_CONV_INTERNAL_ERROR = 50004,
    ERR_SVR_CONV_NET_TIMEOUT = 50005,
    ERR_SVR_MSG_PKG_PARSE_FAILED = 20001,
    ERR_SVR_MSG_INTERNAL_AUTH_FAILED = 20002,
    ERR_SVR_MSG_INVALID_ID = 20003,
    ERR_SVR_MSG_NET_ERROR = 20004,
    ERR_SVR_MSG_INTERNAL_ERROR1 = 20005,
    ERR_SVR_MSG_PUSH_DENY = 20006,
    ERR_SVR_MSG_IN_PEER_BLACKLIST = 20007,
    ERR_SVR_MSG_BOTH_NOT_FRIEND = 20009,
    ERR_SVR_MSG_NOT_PEER_FRIEND = 20010,
    ERR_SVR_MSG_NOT_SELF_FRIEND = 20011,
    ERR_SVR_MSG_SHUTUP_DENY = 20012,
    ERR_SVR_MSG_REVOKE_TIME_LIMIT = 20016,
    ERR_SVR_MSG_DEL_RAMBLE_INTERNAL_ERROR = 20018,
    ERR_SVR_MSG_JSON_PARSE_FAILED = 90001,
    ERR_SVR_MSG_INVALID_JSON_BODY_FORMAT = 90002,
    ERR_SVR_MSG_INVALID_TO_ACCOUNT = 90003,
    ERR_SVR_MSG_INVALID_RAND = 90005,
    ERR_SVR_MSG_INVALID_TIMESTAMP = 90006,
    ERR_SVR_MSG_BODY_NOT_ARRAY = 90007,
    ERR_SVR_MSG_ADMIN_REQUIRED = 90009,
    ERR_SVR_MSG_INVALID_JSON_FORMAT = 90010,
    ERR_SVR_MSG_TO_ACCOUNT_COUNT_LIMIT = 90011,
    ERR_SVR_MSG_TO_ACCOUNT_NOT_FOUND = 90012,
    ERR_SVR_MSG_TIME_LIMIT = 90026,
    ERR_SVR_MSG_INVALID_SYNCOTHERMACHINE = 90031,
    ERR_SVR_MSG_INVALID_MSGLIFETIME = 90044,
    ERR_SVR_MSG_ACCOUNT_NOT_FOUND = 90048,
    ERR_SVR_MSG_INTERNAL_ERROR2 = 90994,
    ERR_SVR_MSG_INTERNAL_ERROR3 = 90995,
    ERR_SVR_MSG_INTERNAL_ERROR4 = 91000,
    ERR_SVR_MSG_INTERNAL_ERROR5 = 90992,
    ERR_SVR_MSG_BODY_SIZE_LIMIT = 93000,
    ERR_SVR_MSG_LONGPOLLING_COUNT_LIMIT = 91101,
    ERR_SVR_GROUP_INTERNAL_ERROR = 10002,
    ERR_SVR_GROUP_API_NAME_ERROR = 10003,
    ERR_SVR_GROUP_INVALID_PARAMETERS = 10004,
    ERR_SVR_GROUP_ACOUNT_COUNT_LIMIT = 10005,
    ERR_SVR_GROUP_FREQ_LIMIT = 10006,
    ERR_SVR_GROUP_PERMISSION_DENY = 10007,
    ERR_SVR_GROUP_INVALID_REQ = 10008,
    ERR_SVR_GROUP_SUPER_NOT_ALLOW_QUIT = 10009,
    ERR_SVR_GROUP_NOT_FOUND = 10010,
    ERR_SVR_GROUP_JSON_PARSE_FAILED = 10011,
    ERR_SVR_GROUP_INVALID_ID = 10012,
    ERR_SVR_GROUP_ALLREADY_MEMBER = 10013,
    ERR_SVR_GROUP_FULL_MEMBER_COUNT = 10014,
    ERR_SVR_GROUP_INVALID_GROUPID = 10015,
    ERR_SVR_GROUP_REJECT_FROM_THIRDPARTY = 10016,
    ERR_SVR_GROUP_SHUTUP_DENY = 10017,
    ERR_SVR_GROUP_RSP_SIZE_LIMIT = 10018,
    ERR_SVR_GROUP_ACCOUNT_NOT_FOUND = 10019,
    ERR_SVR_GROUP_GROUPID_IN_USED = 10021,
    ERR_SVR_GROUP_SEND_MSG_FREQ_LIMIT = 10023,
    ERR_SVR_GROUP_REQ_ALLREADY_BEEN_PROCESSED = 10024,
    ERR_SVR_GROUP_GROUPID_IN_USED_FOR_SUPER = 10025,
    ERR_SVR_GROUP_SDKAPPID_DENY = 10026,
    ERR_SVR_GROUP_REVOKE_MSG_NOT_FOUND = 10030,
    ERR_SVR_GROUP_REVOKE_MSG_TIME_LIMIT = 10031,
    ERR_SVR_GROUP_REVOKE_MSG_DENY = 10032,
    ERR_SVR_GROUP_NOT_ALLOW_REVOKE_MSG = 10033,
    ERR_SVR_GROUP_REMOVE_MSG_DENY = 10034,
    ERR_SVR_GROUP_NOT_ALLOW_REMOVE_MSG = 10035,
    ERR_SVR_GROUP_AVCHATROOM_COUNT_LIMIT = 10036,
    ERR_SVR_GROUP_COUNT_LIMIT = 10037,
    ERR_SVR_GROUP_MEMBER_COUNT_LIMIT = 10038,
    ERR_NO_SUCC_RESULT = 6003,
    ERR_TO_USER_INVALID = 6011,
    ERR_REQUEST_TIMEOUT = 6012,
    ERR_INIT_CORE_FAIL = 6018,
    ERR_EXPIRED_SESSION_NODE = 6020,
    ERR_LOGGED_OUT_BEFORE_LOGIN_FINISHED = 6023,
    ERR_TLSSDK_NOT_INITIALIZED = 6024,
    ERR_TLSSDK_USER_NOT_FOUND = 6025,
    ERR_BIND_FAIL_UNKNOWN = 6100,
    ERR_BIND_FAIL_NO_SSOTICKET = 6101,
    ERR_BIND_FAIL_REPEATD_BIND = 6102,
    ERR_BIND_FAIL_TINYID_NULL = 6103,
    ERR_BIND_FAIL_GUID_NULL = 6104,
    ERR_BIND_FAIL_UNPACK_REGPACK_FAILED = 6105,
    ERR_BIND_FAIL_REG_TIMEOUT = 6106,
    ERR_BIND_FAIL_ISBINDING = 6107,
    ERR_PACKET_FAIL_UNKNOWN = 6120,
    ERR_PACKET_FAIL_REQ_NO_NET = 6121,
    ERR_PACKET_FAIL_RESP_NO_NET = 6122,
    ERR_PACKET_FAIL_REQ_NO_AUTH = 6123,
    ERR_PACKET_FAIL_SSO_ERR = 6124,
    ERR_PACKET_FAIL_REQ_TIMEOUT = 6125,
    ERR_PACKET_FAIL_RESP_TIMEOUT = 6126,
    ERR_PACKET_FAIL_REQ_ON_RESEND = 6127,
    ERR_PACKET_FAIL_RESP_NO_RESEND = 6128,
    ERR_PACKET_FAIL_FLOW_SAVE_FILTERED = 6129,
    ERR_PACKET_FAIL_REQ_OVER_LOAD = 6130,
    ERR_PACKET_FAIL_LOGIC_ERR = 6131,
    ERR_FRIENDSHIP_PROXY_NOT_SYNCED = 6150,
    ERR_FRIENDSHIP_PROXY_SYNCING = 6151,
    ERR_FRIENDSHIP_PROXY_SYNCED_FAIL = 6152,
    ERR_FRIENDSHIP_PROXY_LOCAL_CHECK_ERR = 6153,
    ERR_GROUP_INVALID_FIELD = 6160,
    ERR_GROUP_STORAGE_DISABLED = 6161,
    ERR_LOADGRPINFO_FAILED = 6162,
    ERR_REQ_NO_NET_ON_REQ = 6200,
    ERR_REQ_NO_NET_ON_RSP = 6201,
    ERR_SERIVCE_NOT_READY = 6205,
    ERR_LOGIN_AUTH_FAILED = 6207,
    ERR_NEVER_CONNECT_AFTER_LAUNCH = 6209,
    ERR_REQ_FAILED = 6210,
    ERR_REQ_INVALID_REQ = 6211,
    ERR_REQ_OVERLOADED = 6212,
    ERR_REQ_KICK_OFF = 6213,
    ERR_REQ_SERVICE_SUSPEND = 6214,
    ERR_REQ_INVALID_SIGN = 6215,
    ERR_REQ_INVALID_COOKIE = 6216,
    ERR_LOGIN_TLS_RSP_PARSE_FAILED = 6217,
    ERR_LOGIN_OPENMSG_TIMEOUT = 6218,
    ERR_LOGIN_OPENMSG_RSP_PARSE_FAILED = 6219,
    ERR_LOGIN_TLS_DECRYPT_FAILED = 6220,
    ERR_WIFI_NEED_AUTH = 6221,
    ERR_USER_CANCELED = 6222,
    ERR_REVOKE_TIME_LIMIT_EXCEED = 6223,
    ERR_LACK_UGC_EXT = 6224,
    ERR_AUTOLOGIN_NEED_USERSIG = 6226,
    ERR_QAL_NO_SHORT_CONN_AVAILABLE = 6300,
    ERR_REQ_CONTENT_ATTACK = 80101,
    ERR_LOGIN_SIG_EXPIRE = 70101,
    ERR_SDK_HAD_INITIALIZED = 90101,
    ERR_OPENBDH_BASE = 115000,
    ERR_REQUEST_NO_NET_ONREQ = 6250,
    ERR_REQUEST_NO_NET_ONRSP = 6251,
    ERR_REQUEST_FAILED = 6252,
    ERR_REQUEST_INVALID_REQ = 6253,
    ERR_REQUEST_OVERLOADED = 6254,
    ERR_REQUEST_KICK_OFF = 6255,
    ERR_REQUEST_SERVICE_SUSPEND = 6256,
    ERR_REQUEST_INVALID_SIGN = 6257,
    ERR_REQUEST_INVALID_COOKIE = 6258
}
/**
 * @brief 调用接口的返回值

 * @note
 * 若接口参数中有回调，只有当接口返回TIM_SUCC时，回调才会被调用
 *
 *  |  名称   | 含义   | 值    |
 *  |  ----  | ----  | ----  |
 *  | TIM_SUCC  | 接口调用成功 |  0 |
 *  | TIM_ERR_SDKUNINIT  | 失败，IM SDK未初始化 | -1 |
 *  | TIM_ERR_NOTLOGIN  | 失败，IM SDK未初始化 | -2 |
 *  | TIM_ERR_JSON  | 接口调用失败，错误的Json格式或Json Key | -3 |
 *  | TIM_ERR_PARAM  | 接口调用失败，参数错误 | -4 |
 *  | TIM_ERR_CONV  | 接口调用失败，无效的会话 | -5 |
 *  | TIM_ERR_GROUP  | 接口调用失败，无效的群组 | -6 |
 */
declare enum TIMResult {
    TIM_SUCC = 0,
    TIM_ERR_SDKUNINIT = -1,
    TIM_ERR_NOTLOGIN = -2,
    TIM_ERR_JSON = -3,
    TIM_ERR_PARAM = -4,
    TIM_ERR_CONV = -5,
    TIM_ERR_GROUP = -6
}
/**
 * @brief 日志级别
 *
 *  |  名称   | 含义   | 值（number）    |
 *  |  ----  | ----  | ----  |
 *  | kTIMLog_Off  | 关闭日志输出 | 0 |
 *  | kTIMLog_Test  | 失败，IM SDK未初始化 | 1 |
 *  | kTIMLog_Verbose  | 失败，IM SDK未初始化 | 2 |
 *  | kTIMLog_Debug  | 接口调用失败，错误的Json格式或Json Key | 3 |
 *  | kTIMLog_Info  | 接口调用失败，参数错误 | 4 |
 *  | kTIMLog_Warn  | 接口调用失败，无效的会话 | 5 |
 *  | kTIMLog_Error  | 接口调用失败，无效的群组 | 6 |
 *  | kTIMLog_Assert  | 断言日志| 7 |
 */
declare enum TIMLogLevel {
    kTIMLog_Off = 0,
    kTIMLog_Test = 1,
    kTIMLog_Verbose = 2,
    kTIMLog_Debug = 3,
    kTIMLog_Info = 4,
    kTIMLog_Warn = 5,
    kTIMLog_Error = 6,
    kTIMLog_Assert = 7
}
/**
 * @brief 登陆状态
 *
 *  |  名称   | 含义   | 值（number）    |
 *  |  ----  | ----  | ----  |
 *  | kTIMLoginStatus_Logined  | 已登陆 | 1 |
 *  | kTIMLoginStatus_Logining  | 登陆中 | 2 |
 *  | kTIMLoginStatus_UnLogined  | 未登陆 | 3 |
 *  | kTIMLoginStatus_Logouting  | 登出中 | 4 |
 */
declare enum TIMLoginStatus {
    kTIMLoginStatus_Logined = 1,
    kTIMLoginStatus_Logining = 2,
    kTIMLoginStatus_UnLogined = 3,
    kTIMLoginStatus_Logouting = 4
}
/**
 * @brief 会话类型
 *
 *  |  名称   | 含义   | 值（enum）    |
 *  |  ----  | ----  | ----  |
 *  | kTIMConv_Invalid  | 无效会话 | kTIMConv_Invalid |
 *  | kTIMConv_C2C  | 个人会话 | kTIMConv_C2C |
 *  | kTIMConv_Group  | 群组会话 | kTIMConv_Group |
 *  | kTIMConv_System  | 系统会话 | kTIMConv_System |
 */
declare enum TIMConvType {
    kTIMConv_Invalid = 0,
    kTIMConv_C2C = 1,
    kTIMConv_Group = 2,
    kTIMConv_System = 3
}
/**
 * @brief 平台信息
 *
 *  |  名称   | 含义   | 值（enum/number）    |
 *  |  ----  | ----  | ----  |
 *  | kTIMPlatform_Other  | 未知平台 | 0（number） |
 *  | kTIMPlatform_Windows  | Windows平台 | kTIMPlatform_Windows |
 *  | kTIMPlatform_Android  | Android平台 | kTIMPlatform_Android |
 *  | kTIMPlatform_IOS  | iOS平台 | kTIMPlatform_IOS |
 *  | kTIMPlatform_Mac  | MacOS平台 | kTIMPlatform_Mac |
 *  | kTIMPlatform_Simulator  | iOS模拟器平台 | kTIMPlatform_Simulator |
 */
declare enum TIMPlatform {
    kTIMPlatform_Other = 0,
    kTIMPlatform_Windows = 1,
    kTIMPlatform_Android = 2,
    kTIMPlatform_IOS = 3,
    kTIMPlatform_Mac = 4,
    kTIMPlatform_Simulator = 5
}
/**
 * @brief 群组成员信息标识
 *
 *  |  名称   | 含义   | 值（number）    |
 *  |  ----  | ----  | ----  |
 *  | kTIMGroupInfoFlag_None  | 无 | 0x00 |
 *  | kTIMGroupInfoFlag_Name  | 群组名称 | 0x01 |
 *  | kTIMGroupInfoFlag_CreateTime  | 群组创建时间 | 0x01 << 1 |
 *  | kTIMGroupInfoFlag_OwnerUin  | 群组创建者帐号 | 0x01 << 2 |
 *  | kTIMGroupInfoFlag_Seq  | seq | 0x01 << 3 |
 *  | kTIMGroupInfoFlag_LastTime  | 群组信息最后修改时间 | 0x01 << 4 |
 *  | kTIMGroupInfoFlag_NextMsgSeq  | 下一个消息的seq | 0x01 << 5 |
 *  | kTIMGroupInfoFlag_LastMsgTime  | 最新群组消息时间 | 0x01 << 6 |
 *  | kTIMGroupInfoFlag_AppId  | AppId | 0x01 << 7 |
 *  | kTIMGroupInfoFlag_MemberNum  | 群组成员数量 | 0x01 << 8 |
 *  | kTIMGroupInfoFlag_MaxMemberNum  | 群组成员最大数量 | 0x01 << 9 |
 *  | kTIMGroupInfoFlag_Notification  | 群公告内容 | 0x01 << 10 |
 *  | kTIMGroupInfoFlag_Introduction  | 群简介内容 | 0x01 << 11|
 *  | kTIMGroupInfoFlag_FaceUrl  | 群头像URL | 0x01 << 12 |
 *  | kTIMGroupInfoFlag_AddOption  | 加群选项 | 0x01 << 13 |
 *  | kTIMGroupInfoFlag_GroupType  | 群类型 | 0x01 << 14 |
 *  | kTIMGroupInfoFlag_LastMsg  | 群组内最新一条消息 | 0x01 << 15 |
 *  | kTIMGroupInfoFlag_OnlineNum  | 群组在线成员数 | 0x01 << 16 |
 *  | kTIMGroupInfoFlag_Visible  | 群组是否可见 | 0x01 << 17 |
 *  | kTIMGroupInfoFlag_Searchable  | 群组是否可以搜索 | 0x01 << 18 |
 *  | kTIMGroupInfoFlag_ShutupAll  | 群组是否全禁言 | 0x01 << 19 |
 */
declare enum TIMGroupGetInfoFlag {
    kTIMGroupInfoFlag_None = 0,
    kTIMGroupInfoFlag_Name = 1,
    kTIMGroupInfoFlag_CreateTime = 2,
    kTIMGroupInfoFlag_OwnerUin = 4,
    kTIMGroupInfoFlag_Seq = 8,
    kTIMGroupInfoFlag_LastTime = 16,
    kTIMGroupInfoFlag_NextMsgSeq = 32,
    kTIMGroupInfoFlag_LastMsgTime = 64,
    kTIMGroupInfoFlag_AppId = 128,
    kTIMGroupInfoFlag_MemberNum = 256,
    kTIMGroupInfoFlag_MaxMemberNum = 512,
    kTIMGroupInfoFlag_Notification = 1024,
    kTIMGroupInfoFlag_Introduction = 2048,
    kTIMGroupInfoFlag_FaceUrl = 4096,
    kTIMGroupInfoFlag_AddOption = 8192,
    kTIMGroupInfoFlag_GroupType = 16384,
    kTIMGroupInfoFlag_LastMsg = 32768,
    kTIMGroupInfoFlag_OnlineNum = 65536,
    kTIMGroupInfoFlag_Visible = 131072,
    kTIMGroupInfoFlag_Searchable = 262144,
    kTIMGroupInfoFlag_ShutupAll = 524288
}
/**
 * @brief Android离线推送模式
 *
 *  |  名称   | 含义   | 值（enum）    |
 *  |  ----  | ----  | ----  |
 *  | kTIMAndroidOfflinePushNotifyMode_Normal  | 普通通知栏消息模式，离线消息下发后，点击通知栏消息直接启动应用，不会给应用进行回调 | kTIMAndroidOfflinePushNotifyMode_Normal |
 *  | kTIMAndroidOfflinePushNotifyMode_Custom  | 自定义消息模式，离线消息下发后，点击通知栏消息会给应用进行回调 | kTIMAndroidOfflinePushNotifyMode_Custom |
 */
declare enum TIMAndroidOfflinePushNotifyMode {
    kTIMAndroidOfflinePushNotifyMode_Normal = 0,
    kTIMAndroidOfflinePushNotifyMode_Custom = 1
}
/**
 * @brief 推送规则
 *
 *  |  名称   | 含义   | 值（enum）    |
 *  |  ----  | ----  | ----  |
 *  | kTIMOfflinePushFlag_Default  | 按照默认规则进行推送 | kTIMOfflinePushFlag_Default |
 *  | kTIMOfflinePushFlag_NoPush  | 不进行推送 | kTIMOfflinePushFlag_NoPush |
 */
declare enum TIMOfflinePushFlag {
    kTIMOfflinePushFlag_Default = 0,
    kTIMOfflinePushFlag_NoPush = 1
}
/**
 * @brief 消息当前状态定义
 *
 *  |  名称   | 含义   | 值（number）    |
 *  |  ----  | ----  | ----  |
 *  | kTIMMsg_Sending  | 消息正在发送 | 1 |
 *  | kTIMMsg_SendSucc  | 消息发送成功 | 2 |
 *  | kTIMMsg_SendFail  | 消息发送失败 | 3 |
 *  | kTIMMsg_Deleted  | 消息已删除 | 4 |
 *  | kTIMMsg_LocalImported  | 消息导入状态 | 5 |
 *  | kTIMMsg_Revoked  | 消息撤回状态 | 6 |
 *  | kTIMMsg_Cancel  | 消息取消 | 7 |
 */
declare enum TIMMsgStatus {
    kTIMMsg_Sending = 1,
    kTIMMsg_SendSucc = 2,
    kTIMMsg_SendFail = 3,
    kTIMMsg_Deleted = 4,
    kTIMMsg_LocalImported = 5,
    kTIMMsg_Revoked = 6,
    kTIMMsg_Cancel = 7
}
/**
 * @brief 元素的类型
 *
 *  |  名称   | 含义   | 值（enum/number）    |
 *  |  ----  | ----  | ----  |
 *  | kTIMElem_Text  | 文本元素 | kTIMElem_Text |
 *  | kTIMElem_Image  | 图片元素 | kTIMElem_Image |
 *  | kTIMElem_Sound  | 声音元素 | kTIMElem_Sound |
 *  | kTIMElem_Custom  | 自定义元素 | kTIMElem_Custom |
 *  | kTIMElem_File  | 文件元素 | kTIMElem_File |
 *  | kTIMElem_GroupTips  | 群组系统消息元素 | kTIMElem_GroupTips |
 *  | kTIMElem_Face  | 表情元素 | kTIMElem_Face |
 *  | kTIMElem_Location  | 位置元素 | kTIMElem_Location |
 *  | kTIMElem_GroupReport  | 群组系统通知元素 | kTIMElem_GroupReport |
 *  | kTIMElem_Video  | 视频元素 | kTIMElem_Video |
 *  | kTIMElem_FriendChange  | 关系链变更消息元素 | kTIMElem_FriendChange |
 *  | kTIMElem_ProfileChange  | 资料变更消息元素 | kTIMElem_ProfileChange |
 *  | kTIMElem_Merge  | 合并消息素 | kTIMElem_Merge |
 *  | kTIMElem_Invalid  | 未知元素类型 | -1 |
 */
declare enum TIMElemType {
    kTIMElem_Text = 0,
    kTIMElem_Image = 1,
    kTIMElem_Sound = 2,
    kTIMElem_Custom = 3,
    kTIMElem_File = 4,
    kTIMElem_GroupTips = 5,
    kTIMElem_Face = 6,
    kTIMElem_Location = 7,
    kTIMElem_GroupReport = 8,
    kTIMElem_Video = 9,
    kTIMElem_FriendChange = 10,
    kTIMElem_ProfileChange = 11,
    kTIMElem_Merge = 12,
    kTIMElem_Invalid = -1
}
/**
 * @brief 群组信息修改的类型
 *
 *  |  名称   | 含义   | 值（enum）    |
 *  |  ----  | ----  | ----  |
 *  | kTIMGroupTipChangeFlag_Unknown  | 未知的修改 | kTIMGroupTipChangeFlag_Unknown |
 *  | kTIMGroupTipChangeFlag_Name  | 修改群组名称 | kTIMGroupTipChangeFlag_Name |
 *  | kTIMGroupTipChangeFlag_Introduction  | 修改群简介 | kTIMGroupTipChangeFlag_Introduction |
 *  | kTIMGroupTipChangeFlag_Notification  | 修改群公告 | kTIMGroupTipChangeFlag_Notification |
 *  | kTIMGroupTipChangeFlag_FaceUrl  | 修改群头像URL | kTIMGroupTipChangeFlag_FaceUrl |
 *  | kTIMGroupTipChangeFlag_Owner  | 修改群所有者 | kTIMGroupTipChangeFlag_Owner |
 *  | kTIMGroupTipChangeFlag_Custom  | 修改群自定义信息 | kTIMGroupTipChangeFlag_Custom |
 *  | kTIMGroupTipChangeFlag_Attribute  | 群属性变更 (新增) | kTIMGroupTipChangeFlag_Attribute |
 */
declare enum TIMGroupTipGroupChangeFlag {
    kTIMGroupTipChangeFlag_Unknown = 0,
    kTIMGroupTipChangeFlag_Name = 1,
    kTIMGroupTipChangeFlag_Introduction = 2,
    kTIMGroupTipChangeFlag_Notification = 3,
    kTIMGroupTipChangeFlag_FaceUrl = 4,
    kTIMGroupTipChangeFlag_Owner = 5,
    kTIMGroupTipChangeFlag_Custom = 6,
    kTIMGroupTipChangeFlag_Attribute = 7,
    kTIMGroupTipChangeFlag_ShutupAll = 8,
    kTIMGroupTipChangeFlag_MessageReceiveOpt = 10,
    kTIMGroupTipChangeFlag_GroupAddOpt = 11,
    kTIMGroupTipChangeFlag_GroupApproveOpt = 12
}
/**
 * @brief 消息接收选项
 *
 *  |  名称   | 含义   | 值（enum）    |
 *  |  ----  | ----  | ----  |
 *  | kTIMRecvMsgOpt_Receive  | 在线正常接收消息，离线时会进行 APNs 推送 | kTIMRecvMsgOpt_Receive |
 *  | kTIMRecvMsgOpt_Not_Receive  | 不会接收到消息，离线不会有推送通知 | kTIMRecvMsgOpt_Not_Receive |
 *  | kTIMRecvMsgOpt_Not_Notify  | 在线正常接收消息，离线不会有推送通知 | kTIMRecvMsgOpt_Not_Notify |
 */
declare enum TIMReceiveMessageOpt {
    kTIMRecvMsgOpt_Receive = 0,
    kTIMRecvMsgOpt_Not_Receive = 1,
    kTIMRecvMsgOpt_Not_Notify = 2
}
/**
 * @brief UUID类型
 *
 *  |  名称   | 含义   | 值（enum/number）    |
 *  |  ----  | ----  | ----  |
 *  | kTIMDownload_VideoThumb  | 视频缩略图 | 0 |
 *  | kTIMDownload_File  | 文件 | kTIMDownload_File |
 *  | kTIMDownload_Video  | 视频 | kTIMDownload_Video |
 *  | kTIMDownload_Sound  | 声音 | kTIMDownload_Sound |
 */
declare enum TIMDownloadType {
    kTIMDownload_VideoThumb = 0,
    kTIMDownload_File = 1,
    kTIMDownload_Video = 2,
    kTIMDownload_Sound = 3
}
/**
 * @brief  @ 类型
 *
 *  |  名称   | 含义   | 值（enum/number）    |
 *  |  ----  | ----  | ----  |
 *  | kTIMGroup_At_Me  | @ 我 | 1 |
 *  | kTIMGroup_At_All  | @ 群里所有人 | kTIMGroup_At_All |
 *  | kTIMGroup_At_All_At_ME  | @ 群里所有人并且单独 @ 我 | kTIMGroup_At_All_At_ME |
 */
declare enum TIMGroupAtType {
    kTIMGroup_At_Me = 1,
    kTIMGroup_At_All = 2,
    kTIMGroup_At_All_At_ME = 3
}
declare enum TIMConversationMarkType {
    kTIMConversationMarkTypeStar = 1,
    kTIMConversationMarkTypeUnread = 2,
    kTIMConversationMarkTypeFold = 4,
    kTIMConversationMarkTypeHide = 8
}
/**
 * @brief 群组加群选项
 *
 *  |  名称   | 含义   | 值（number）    |
 *  |  ----  | ----  | ----  |
 *  | kTIMGroupAddOpt_Forbid  | 禁止加群 | 0 |
 *  | kTIMGroupAddOpt_Auth  | 需要管理员审批 | 1 |
 *  | kTIMGroupAddOpt_Any  |  任何人都可以加群 | 2 |
 */
declare enum TIMGroupAddOption {
    kTIMGroupAddOpt_Forbid = 0,
    kTIMGroupAddOpt_Auth = 1,
    kTIMGroupAddOpt_Any = 2
}
/**
 * @brief 群组类型
 *
 *  |  名称   | 含义   | 值（enum）    |
 *  |  ----  | ----  | ----  |
 *  | kTIMGroup_Public  | 公开群 | kTIMGroup_Public |
 *  | kTIMGroup_Private  | 私有群 | kTIMGroup_Private |
 *  | kTIMGroup_ChatRoom  |  聊天室 | kTIMGroup_ChatRoom |
 *  | kTIMGroup_BChatRoom  |  在线成员广播大群 | kTIMGroup_BChatRoom |
 *  | kTIMGroup_AVChatRoom  |  互动直播聊天室 | kTIMGroup_AVChatRoom |
 */
declare enum TIMGroupType {
    kTIMGroup_Public = 0,
    kTIMGroup_Private = 1,
    kTIMGroup_ChatRoom = 2,
    kTIMGroup_BChatRoom = 3,
    kTIMGroup_AVChatRoom = 4,
    kTIMGroup_Community = 5
}
/**
 * @brief 群组成员角色类型
 *
 *  |  名称   | 含义   | 值（enum）    |
 *  |  ----  | ----  | ----  |
 *  | kTIMMemberRole_None  | 未定义 | kTIMMemberRole_None |
 *  | kTIMMemberRole_Normal  | 群成员 | kTIMMemberRole_Normal |
 *  | kTIMMemberRole_Admin  |  管理员 | kTIMMemberRole_Admin |
 *  | kTIMMemberRole_Owner  |  超级管理员(群主） | kTIMMemberRole_Owner |
 */
declare enum TIMGroupMemberRole {
    kTIMMemberRole_None = 0,
    kTIMMemberRole_Normal = 1,
    kTIMMemberRole_Admin = 2,
    kTIMMemberRole_Owner = 3
}
/**
 * @brief 群组基础信息
 *
 *  |  名称   | 含义   | 值（enum）    |
 *  |  ----  | ----  | ----  |
 *  | kTIMGroupMember_HandledErr  | 失败 | kTIMGroupMember_HandledErr |
 *  | kTIMGroupMember_HandledSuc  | 成功 | kTIMGroupMember_HandledSuc |
 *  | kTIMGroupMember_Included  |  已是群成员 | kTIMGroupMember_Included |
 *  | kTIMGroupMember_Invited  |  已发送邀请 | kTIMGroupMember_Invited |
 */
declare enum HandleGroupMemberResult {
    kTIMGroupMember_HandledErr = 0,
    kTIMGroupMember_HandledSuc = 1,
    kTIMGroupMember_Included = 2,
    kTIMGroupMember_Invited = 3
}
/**
 * @brief 设置(修改)群组信息的类型
 *
 *  |  名称   | 含义   | 值（number）    |
 *  |  ----  | ----  | ----  |
 *  | kTIMGroupModifyInfoFlag_None  | 无 | 0x00 |
 *  | kTIMGroupModifyInfoFlag_Name  | 修改群组名称 | 0x01 |
 *  | kTIMGroupModifyInfoFlag_Notification  |  修改群公告 | 0x01 << 1 |
 *  | kTIMGroupModifyInfoFlag_Introduction  |  修改群简介 | 0x01 << 2 |
 *  | kTIMGroupModifyInfoFlag_FaceUrl  |  修改群头像URL | 0x01 << 3 |
 *  | kTIMGroupModifyInfoFlag_AddOption  |  修改群组添加选项 | 0x01 << 4 |
 *  | kTIMGroupModifyInfoFlag_MaxMmeberNum  |  修改群最大成员数 | 0x01 << 5 |
 *  | kTIMGroupModifyInfoFlag_Visible  |  修改群是否可见 | 0x01 << 6 |
 *  | kTIMGroupModifyInfoFlag_Searchable  |  修改群是否被搜索 | 0x01 << 7 |
 *  | kTIMGroupModifyInfoFlag_ShutupAll  |  修改群是否全体禁言 | 0x01 << 8 |
 *  | kTIMGroupModifyInfoFlag_Custom  |  修改群自定义信息 | 0x01 << 9 |
 *  | kTIMGroupModifyInfoFlag_Owner  |  修改群主 | 0x01 << 31 |
 */
declare enum TIMGroupModifyInfoFlag {
    kTIMGroupModifyInfoFlag_None = 0,
    kTIMGroupModifyInfoFlag_Name = 1,
    kTIMGroupModifyInfoFlag_Notification = 2,
    kTIMGroupModifyInfoFlag_Introduction = 4,
    kTIMGroupModifyInfoFlag_FaceUrl = 8,
    kTIMGroupModifyInfoFlag_AddOption = 16,
    kTIMGroupModifyInfoFlag_MaxMemberNum = 32,
    kTIMGroupModifyInfoFlag_Visible = 64,
    kTIMGroupModifyInfoFlag_Searchable = 128,
    kTIMGroupModifyInfoFlag_ShutupAll = 256,
    kTIMGroupModifyInfoFlag_Custom = 512,
    kTIMGroupTopicModifyInfoFlag_CustomString = 2048,
    kTIMGroupModifyInfoFlag_ApproveOption = 4096,
    kTIMGroupModifyInfoFlag_Owner = -2147483648
}
/**
 * @brief 用户性别类型
 *
 *  |  名称   | 含义   | 值（enum）    |
 *  |  ----  | ----  | ----  |
 *  | kTIMGenderType_Unkown  | 未知性别 | kTIMGenderType_Unkown |
 *  | kTIMGenderType_Male  | 性别男 |  kTIMGenderType_Male |
 *  | kTIMGenderType_Female  | 性别女 |   kTIMGenderType_Female |
 */
declare enum TIMGenderType {
    kTIMGenderType_Unknown = 0,
    kTIMGenderType_Male = 1,
    kTIMGenderType_Female = 2
}
/**
 * @brief 用户加好友的选项
 *
 *  |  名称   | 含义   | 值（enum）    |
 *  |  ----  | ----  | ----  |
 *  | kTIMProfileAddPermission_Unknown  | 未知 | kTIMProfileAddPermission_Unknown |
 *  | kTIMProfileAddPermission_AllowAny  | 允许任何人添加好友 |  kTIMProfileAddPermission_AllowAny |
 *  | kTIMProfileAddPermission_NeedConfirm  | 添加好友需要验证 |   kTIMProfileAddPermission_NeedConfirm |
 *  | kTIMProfileAddPermission_DenyAny  | 拒绝任何人添加好友 |   kTIMProfileAddPermission_DenyAny |
 */
declare enum TIMProfileAddPermission {
    kTIMProfileAddPermission_Unknown = 0,
    kTIMProfileAddPermission_AllowAny = 1,
    kTIMProfileAddPermission_NeedConfirm = 2,
    kTIMProfileAddPermission_DenyAny = 3
}
/**
 * @brief 好友类型
 *
 *  |  名称   | 含义   | 值（enum）    |
 *  |  ----  | ----  | ----  |
 *  | FriendTypeSignle  | 单向好友：用户A的好友表中有用户B，但B的好友表中却没有A | FriendTypeSignle |
 *  | FriendTypeBoth  | 双向好友：用户A的好友表中有用户B，B的好友表中也有A |  FriendTypeBoth |
 */
declare enum TIMFriendType {
    FriendTypeSingle = 0,
    FriendTypeBoth = 1
}
/**
 * @brief 好友添加请求未决类型
 *
 *  |  名称   | 含义   | 值（enum）    |
 *  |  ----  | ----  | ----  |
 *  | FriendPendencyTypeComeIn  | 别人发给我的 | FriendPendencyTypeComeIn |
 *  | FriendPendencyTypeSendOut  | 我发给别人的 |  FriendPendencyTypeSendOut |
 *  | FriendPendencyTypeBoth  | 双向的 |  FriendPendencyTypeBoth |
 */
declare enum TIMFriendPendencyType {
    FriendPendencyTypeComeIn = 0,
    FriendPendencyTypeSendOut = 1,
    FriendPendencyTypeBoth = 2
}
/**
 * @brief 好友添加请求响应的动作类型
 *
 *  |  名称   | 含义   | 值（enum）    |
 *  |  ----  | ----  | ----  |
 *  | ResponseActionAgree  | 同意 | ResponseActionAgree |
 *  | ResponseActionAgreeAndAdd  | 同意并添加 |  ResponseActionAgreeAndAdd |
 *  | ResponseActionReject  | 拒绝 |  ResponseActionReject |
 */
declare enum TIMFriendResponseAction {
    ResponseActionAgree = 0,
    ResponseActionAgreeAndAdd = 1,
    ResponseActionReject = 2
}
/**
 * @brief 二者之间的关系
 *
 *  |  名称   | 含义   | 值（enum）    |
 *  |  ----  | ----  | ----  |
 *  | FriendCheckNoRelation  | 无关系 | FriendCheckNoRelation |
 *  | FriendCheckAWithB  | 仅A中有B |  FriendCheckAWithB |
 *  | FriendCheckBWithA  | 仅B中有A |  FriendCheckBWithA |
 *  | FriendCheckBothWay  | 双向的 |  FriendCheckBothWay |
 */
declare enum TIMFriendCheckRelation {
    FriendCheckNoRelation = 0,
    FriendCheckAWithB = 1,
    FriendCheckBWithA = 2,
    FriendCheckBothWay = 3
}
/**
 * @brief 二者之间的关系
 *
 *  |  名称   | 含义   | 值（number）    |
 *  |  ----  | ----  | ----  |
 *  | kTIMFriendshipRelationType_None  | 未知关系 |  0 |
 *  | kTIMFriendshipRelationType_InMyFriendList  | 向好友：对方是我的好友，我不是对方的好友 |  0x01 << 1 |
 *  | kTIMFriendshipRelationType_InOtherFriendList  | 单向好友：对方不是我的好友，我是对方的好友 |  0x01 << 2 |
 *  | kTIMFriendshipRelationType_BothFriend  | 双向好友 |  0x01 <<2 TODO 值感觉不对  |
 */
declare enum TIMFriendshipRelationType {
    kTIMFriendshipRelationType_None = 0,
    kTIMFriendshipRelationType_InMyFriendList = 2,
    kTIMFriendshipRelationType_InOtherFriendList = 4,
    kTIMFriendshipRelationType_BothFriend = 4
}
/**
 * @brief ios 离线推送的类型
 */
declare enum TIMIOSOfflinePushType {
    TIMIOSOfflinePushType_APNS = 0,
    TIMIOSOfflinePushType_VOIP = 1
}
/**
 * @brief 离线推送注册的token类型
 */
declare enum TIMOfflinePushTokenType {
    TIMOfflinePushTokenType_Default = 0,
    TIMOfflinePushTokenType_TPNS = 1,
    TIMOfflinePushTokenType_VOIP = 2
}
declare enum TIMSignalingActionType {
    TIMSignalingActionType_Unknown = 0,
    TIMSignalingActionType_Invite = 1,
    TIMSignalingActionType_CancelInvite = 2,
    TIMSignalingActionType_AcceptInvite = 3,
    TIMSignalingActionType_RejectInvite = 4,
    TIMSignalingActionType_InviteTimeout = 5
}

declare type userProfileCustom = {
    user_profile_custom_string_info_key: string;
    user_profile_custom_string_info_value: string;
};
interface userProfile {
    user_profile_add_permission: number;
    user_profile_birthday: number;
    user_profile_custom_string_array: Array<userProfileCustom>;
    user_profile_face_url: string;
    user_profile_gender: number;
    user_profile_identifier: string;
    user_profile_language: number;
    user_profile_level: number;
    user_profile_location: string;
    user_profile_nick_name: string;
    user_profile_role: number;
    user_profile_self_signature: string;
}
/**
 *  @param conv_id  conv_id 会话的ID
 * @param conv_type  conv_type会话类型，请参考[TIMConvType](../enums/enum.timconvtype.html)
 * @param params  params:paramsLjson_msg_param 消息json字符串
 * @param message_id  message_id 消息 ID ，调用接口后，可以读取到以 '\0' 结尾的字符串，分配内存大小不能低于 128 字节，如果不需要，可传入 null
 * @param user_data  user_data 用户自定义数据，ImSDK只负责传回给回调函数 result_cb，不做任何处理
 */
declare interface MsgSendMessageParams {
    conv_id: string;
    conv_type: number;
    params: Json_value_msg;
    user_data?: string;
    messageId?: string;
}
/**
  @param conv_id   conv_id 会话的ID
* @param conv_type  conv_type 会话类型，请参考[TIMConvType](../enums/enum.timconvtype.html)
* @param params  params：json_msg_param 消息json字符串
* @param messageId  message_id 消息 ID ，调用接口后，可以读取到以 '\0' 结尾的字符串，分配内存大小不能低于 128 字节，如果不需要，可传入 null
* @param callback  callback 发送新消息成功与否的回调。
* @param user_data  user_data 用户自定义数据，ImSDK只负责传回给回调函数 result_cb，不做任何处理
 */
interface MsgSendMessageParamsV2 {
    conv_id: string;
    conv_type: number;
    params: Json_value_msg;
    user_data?: string;
    messageId?: string;
    callback: Function;
}
/**
 * @param {string} text_elem_content text_elem_content:文本内容
 */
interface TextElem {
    text_elem_content: string;
}
/**
 * @param {number} face_elem_index face_elem_index:读写(必填), 表情索引
 * @param {string} face_elem_buf face_elem_buf: 读写(选填), 其他额外数据,可由用户自定义填写。若要传输二进制，麻烦先转码成字符串。JSON只支持字符串
 */
interface FaceElem {
    face_elem_index: number;
    face_elem_buf: string;
}
/**
 * @brief 位置元素
 * @param location_elem_desc location_elem_desc:位置描述
 * @param location_elem_longitude location_elem_longitude:经度
 * @param location_elem_latitude location_elem_latitude:经度
 */
interface LocationElem {
    location_elem_desc: string;
    location_elem_longitude: number;
    location_elem_latitude: number;
}
/**
 * @brief 图片元素
 * @param image_elem_orig_path image_elem_orig_path: 读写，必填写 发送图片的路径
 * @param image_elem_level image_elem_level: 读写(必填), 发送图片的质量级别，参考[TIMImageLevel](../enums/enum.timimagelevel.html)
 * @param image_elem_format image_elem_format: 读写,发送图片格式:，0xff:未知格式, 1：JPG, 2:GIF, 3:PNG, 4:BMP
 * @param image_elem_orig_id image_elem_orig_id: 只读,原图的uuid
 * @param image_elem_orig_pic_height image_elem_orig_pic_height: 只读,原图的图片高度
 * @param image_elem_orig_pic_width image_elem_orig_pic_width:只读, 原图的图片宽度
 * @param image_elem_orig_pic_size image_elem_orig_pic_size:只读,原图的图片大小
 * @param image_elem_thumb_id image_elem_thumb_id:只读,略缩图uuid
 * @param image_elem_thumb_pic_height image_elem_thumb_pic_height:只读,略缩图的图片高度
 * @param image_elem_thumb_pic_width image_elem_thumb_pic_width:只读,略缩图的图片宽度
 * @param image_elem_thumb_pic_size image_elem_thumb_pic_size: 只读,略缩图的图片大小
 * @param image_elem_large_id image_elem_large_id: 只读,大图片uuid
 * @param image_elem_large_pic_height image_elem_large_pic_height: 只读,大图片的图片高度
 * @param image_elem_large_pic_width image_elem_large_pic_width:  只读,大图片的图片宽度
 * @param image_elem_large_pic_size image_elem_large_pic_size: 只读,大图片的图片大小
 * @param image_elem_orig_url image_elem_orig_url: 只读,原图URL
 * @param image_elem_thumb_url image_elem_thumb_url: 只读,略缩图URL
 *  @param image_elem_large_url image_elem_large_url: 只读,大图片URL
 *  @param image_elem_task_id image_elem_task_id: 只读,任务ID，废弃
 * >  图片规格说明：每幅图片有三种规格，分别是Original（原图）、Large（大图）、Thumb（缩略图）。
 * > 原图：指用户发送的原始图片，尺寸和大小都保持不变。
 * > 大图：是将原图等比压缩，压缩后宽、高中较小的一个等于720像素。
 * > 缩略图：是将原图等比压缩，压缩后宽、高中较小的一个等于198像素
 * >  如果原图尺寸就小于198像素，则三种规格都保持原始尺寸，不需压缩。
 * >  如果原图尺寸在198-720之间，则大图和原图一样，不需压缩。
 * >  在手机上展示图片时，建议优先展示缩略图，用户单击缩略图时再下载大图，单击大图时再下载原图。当然开发者也可以选择跳过大图，单击缩略图时直接下载原图。
 * >  在Pad或PC上展示图片时，由于分辨率较大，且基本都是Wi-Fi或有线网络，建议直接显示大图，用户单击大图时再下载原图。
 */
interface ImageElem {
    image_elem_orig_path: string;
    image_elem_level: number;
    image_elem_format: number;
    image_elem_orig_id: string;
    image_elem_orig_pic_height: number;
    image_elem_orig_pic_width: number;
    image_elem_orig_pic_size: number;
    image_elem_thumb_id: string;
    image_elem_thumb_pic_height: number;
    image_elem_thumb_pic_width: number;
    image_elem_thumb_pic_size: number;
    image_elem_large_id: string;
    image_elem_large_pic_height: number;
    image_elem_large_pic_width: number;
    image_elem_large_pic_size: number;
    image_elem_orig_url: string;
    image_elem_thumb_url: string;
    image_elem_large_url: string;
    image_elem_task_id: number;
}
/**
 * @brief 声音元素
 * @param sound_elem_file_path sound_elem_file_path： 读写(必填), 语音文件路径,需要开发者自己先保存语言然后指定路径
 * @param sound_elem_file_size sound_elem_file_size： 读写(必填), 语言数据文件大小，以秒为单位
 * @param sound_elem_file_time sound_elem_file_time: 读写(必填), 语音时长
 * @param sound_elem_file_id sound_elem_file_id:  只读,下载声音文件时的ID
 * @param sound_elem_business_id sound_elem_business_id: 只读，下载时用到的businessID
 * @param sound_elem_download_flag sound_elem_download_flag: 只读，是否需要申请下载地址(0:需要申请，1:到cos申请，2:不需要申请,直接拿url下载)
 * @param sound_elem_url sound_elem_url: 只读，下载的URL
 * @param sound_elem_task_id sound_elem_task_id: 只读，任务ID，废弃
 * @note 注意：
 * > 语音是否已经播放，可使用 消息自定义字段 实现，如定义一个字段值0表示未播放，1表示播放，当用户单击播放后可设置改字段的值为1
 * > 一条消息只能添加一个声音元素，添加多个声音元素时，发送消息可能失败。
 */
interface SoundElem {
    sound_elem_file_path: string;
    sound_elem_file_size: number;
    sound_elem_file_time: number;
    sound_elem_file_id: string;
    sound_elem_business_id: number;
    sound_elem_download_flag: number;
    sound_elem_url: string;
    sound_elem_task_id: number;
}
/**
 * @brief 自定义元素
 * @param custom_elem_data  custom_elem_data:读写, 数据,支持二进制数据
 * @param custom_elem_desc  custom_elem_desc: 读写, 自定义描述
 * @param custom_elem_ext  custom_elem_ext: 读写, 后台推送对应的ext字段
 * @param custom_elem_sound  custom_elem_sound: 读写, 自定义声音
 * @note
 * 自定义消息是指当内置的消息类型无法满足特殊需求，开发者可以自定义消息格式，内容全部由开发者定义，ImSDK只负责透传。
 */
interface CustomElem {
    custom_elem_data: string;
    custom_elem_desc: string;
    custom_elem_ext: string;
    custom_elem_sound: string;
}
/**
 * @brief 群组系统通知元素
 * @param group_report_elem_report_type 只读, 类型 [TIMGroupReportType]
 * @param group_report_elem_group_id 只读, 群组ID
 * @param group_report_elem_op_user 只读, 操作者ID
 * @param group_report_elem_msg 只读, 操作理由
 * @param group_report_elem_user_data 只读, 操作者填的自定义数据
 * @param group_report_elem_op_user_info 只读, 操作者个人资料
 * @param group_report_elem_op_group_memberinfo 只读, 操作者群内资料
 * @param group_report_elem_platform 只读, 操作方平台信息
 * @param group_report_elem_shut_up_time 读, 被操作者的禁言时间(禁言某些用户时，被禁言的用户会收到该信息)
 * @param group_report_elem_group_message_receive_option 只读，消息接收选项, 用户修改群消息接收选项时会收到该信息[TIMReceiveMessageOpt]
 */
interface GroupReportElem {
    group_report_elem_report_type: number;
    group_report_elem_group_id: string;
    group_report_elem_op_user: string;
    group_report_elem_msg: string;
    group_report_elem_user_data: string;
    group_report_elem_op_user_info: userProfile;
    group_report_elem_op_group_memberinfo: GroupMemberInfo;
    group_report_elem_platform: string;
    group_report_elem_shut_up_time: number;
    group_report_elem_group_message_receive_option: TIMReceiveMessageOpt;
}
/**
 * @param group_tips_elem_tip_type [TIMGroupTipType](), 只读, 群消息类型
 * @param group_tips_elem_op_user 只读, 操作者ID
 * @param group_tips_elem_group_id 只读, 群组ID
 * @param group_tips_elem_user_array 只读, 被操作的账号列表
 * @param group_tips_elem_group_change_info_array  只读, 只读, 群资料变更信息列表,仅当 kTIMGroupTipsElemTipType 值为 kTIMGroupTip_GroupInfoChange 时有效
 * @param group_tips_elem_member_change_info_array  只读, 群成员变更信息列表,仅当 kTIMGroupTipsElemTipType 值为 kTIMGroupTip_MemberInfoChange 时有效
 * @param group_tips_elem_op_user_info  只读, 操作者个人资料
 * @param group_tips_elem_op_group_memberinfo  只读, 群成员信息
 * @param group_tips_elem_changed_user_info_array  只读, 被操作的用户资料列表
 * @param group_tips_elem_member_num  只读, 只读, 当前群成员数,只有当事件消息类型为 kTIMGroupTip_Invite 、 kTIMGroupTip_Quit 、 kTIMGroupTip_Kick 时有效
 * @param group_tips_elem_platform  只读, 操作方平台信息
 * @param group_tips_elem_member_mark_info_array  只读, 群成员标记信息列表,仅当 kTIMGroupTipsElemTipType 值为 kTIMGroupTip_MemberMarkChange 时有效
 */
interface GroupTipsElem {
    group_tips_elem_tip_type: number;
    group_tips_elem_op_user: string;
    group_tips_elem_group_id: string;
    group_tips_elem_user_array: string[];
    group_tips_elem_group_change_info_array: GroupTipGroupChangeInfo[];
    group_tips_elem_member_change_info_array: GroupTipMemberChangeInfo[];
    group_tips_elem_op_user_info: userProfile;
    group_tips_elem_op_group_memberinfo: GroupMemberInfo;
    group_tips_elem_changed_user_info_array: userProfile[];
    group_tips_elem_changed_group_memberinfo_array: GroupMemberInfo[];
    group_tips_elem_member_num: number;
    group_tips_elem_platform: string;
    group_tips_elem_member_mark_info_array: GroupTipMemberChangeInfo[];
}
/**
  @param conv_id   conv_id 会话的ID
* @param conv_type  conv_type 会话类型，请参考[TIMConvType](../enums/enum.timconvtype.html)
* @param params  params：json_msg_param 消息json字符串
* @param messageId  message_id 消息 ID ，调用接口后，可以读取到以 '\0' 结尾的字符串，分配内存大小不能低于 128 字节，如果不需要，可传入 null
* @param callback  callback 发送新消息成功与否的回调。
* @param user_data  user_data 用户自定义数据，ImSDK只负责传回给回调函数 result_cb，不做任何处理
* @param replyMsg  replyMsg 为被回复的消息
 */
interface MsgSendReplyMessage {
    conv_id: string;
    conv_type: number;
    params: Json_value_msg;
    user_data?: string;
    messageId?: string;
    callback: Function;
    replyMsg: Json_value_msg;
}
/**
 * @brief 文件元素
 * @param file_elem_file_path file_elem_file_path: 读写(必填), 文件所在路径（包含文件名）
 * @param file_elem_file_name file_elem_file_name 读写(必填), 文件名，显示的名称。不设置该参数时，eName默认为FileElemFilePath指定的文件路径中的文件名
 * @param file_elem_file_size file_elem_file_size: 读写(必填), 文件大小
 * @param file_elem_file_id file_elem_file_id:  只读, 下载视频时的uuid
 * @param file_elem_business_id file_elem_business_id: 只读, 下载时用到的businessID
 * @param file_elem_download_flag file_elem_download_flag: 只读, 文件下载flag
 * @param file_elem_url file_elem_url: 只读，下载的URL
 * @param file_elem_task_id file_elem_task_id: 只读，任务ID，废弃
 * @note 注意
 * > 语音是否已经播放，可使用 消息自定义字段 实现，如定义一个字段值0表示未播放，1表示播放，当用户单击播放后可设置改字段的值为1
 * > 一条消息只能添加一个声音元素，添加多个声音元素时，发送消息可能失败。
 */
interface FileElem {
    file_elem_file_path: string;
    file_elem_file_name: string;
    file_elem_file_size: number;
    file_elem_file_id: string;
    file_elem_business_id: number;
    file_elem_download_flag: number;
    file_elem_url: string;
    file_elem_task_id: number;
}
/**
 * @brief 视频元素
 * @param video_elem_video_type video_elem_video_type: 读写(必填), 视频文件类型，发送消息时进行设置
 * @param video_elem_video_size video_elem_video_size: 读写(必填), 视频文件大小
 * @param video_elem_video_duration video_elem_video_duration: 读写(必填), 视频时长，发送消息时进行设置
 * @param video_elem_video_path video_elem_video_path: 读写(必填), 适配文件路径
 * @param video_elem_video_id video_elem_video_id: 只读, 下载视频时的uuid
 * @param video_elem_business_id video_elem_business_id://  只读, 下载时用到的businessID
 * @param video_elem_video_download_flag video_elem_video_download_flag: 只读, 视频文件下载flag
 * @param video_elem_video_url video_elem_video_url:只读, 视频文件下载的URL
 * @param video_elem_image_type video_elem_image_type:读写(必填), 截图文件类型，发送消息时进行设置
 * @param video_elem_image_size video_elem_image_size:读写(必填), 截图文件大小
 * @param video_elem_image_width video_elem_image_width:读写(必填), 截图高度，发送消息时进行设置
 * @param video_elem_image_height video_elem_image_height: 读写(必填), 截图宽度，发送消息时进行设置
 * @param video_elem_image_path video_elem_image_path: 读写(必填), 保存截图的路径
 * @param video_elem_image_id video_elem_image_id: 只读, 下载视频截图时的ID
 * @param video_elem_image_download_flag video_elem_image_download_flag: 只读, 截图文件下载flag
 * @param video_elem_image_url video_elem_image_url: 只读,原图URL
 * @param video_elem_task_id video_elem_task_id: 只读,略缩图URL
 */
interface VideoElem {
    video_elem_video_type: string;
    video_elem_video_size: number;
    video_elem_video_duration: number;
    video_elem_video_path: string;
    video_elem_video_id: number;
    video_elem_business_id: number;
    video_elem_video_download_flag: number;
    video_elem_video_url: string;
    video_elem_image_type: number;
    video_elem_image_size: number;
    video_elem_image_width: number;
    video_elem_image_height: string;
    video_elem_image_path: number;
    video_elem_image_id: number;
    video_elem_image_download_flag: number;
    video_elem_image_url: string;
    video_elem_task_id: string;
}
/**
 * @brief 合并消息元素
 * @param merge_elem_title merge_elem_title: 读写(必填), 合并消息 title
 * @param merge_elem_abstract_array merge_elem_abstract_array array string, 读写(必填), 合并消息摘要列表
 * @param merge_elem_compatible_text merge_elem_compatible_text: 读写(必填), 合并消息兼容文本，低版本 SDK 如果不支持合并消息，默认会收到一条文本消息，文本消息的内容为 compatibleText，该参数不能为空。
 * @param merge_elem_message_array merge_elem_message_array:  array [Message](), 读写(必填), 消息列表（最大支持 300 条，消息对象必须是 kTIMMsg_SendSucc 状态，消息类型不能为 GroupTipsElem 或 GroupReportElem）
 * @param merge_elem_layer_over_limit merge_elem_layer_over_limit: 读, 合并消息里面又包含合并消息我们称之为合并嵌套，合并嵌套层数不能超过 100 层，如果超过限制，layersOverLimit 会返回 YES，kTIMMergerElemTitle 和 kTIMMergerElemAbstractArray 为空，DownloadMergerMessage 会返回 ERR_MERGER_MSG_LAYERS_OVER_LIMIT 错误码。
 * @param merge_elem_relay_pb_key merge_elem_relay_pb_key: 只读, native 端消息列表下载 key
 * @param merge_elem_relay_json_key merge_elem_relay_json_key: 只读, web 端消息列表下载 key
 * @param merge_elem_relay_buffer merge_elem_relay_buffer: 只读, 转发消息的 buffer
 * @note
 * > 语音是否已经播放，可使用 消息自定义字段 实现，如定义一个字段值0表示未播放，1表示播放，当用户单击播放后可设置改字段的值为1
 * > 一条消息只能添加一个声音元素，添加多个声音元素时，发送消息可能失败。
 */
interface MergerElem {
    merge_elem_title: string;
    merge_elem_abstract_array: Array<String>;
    merge_elem_compatible_text: string;
    merge_elem_message_array: Array<Json_value_msg>;
    merge_elem_layer_over_limit: boolean;
    merge_elem_relay_pb_key: string;
    merge_elem_relay_json_key: string;
    merge_elem_relay_buffer: number;
}
/**
 * @param {string} conv_id      conv_id 会话ID
 * @param {number} conv_type    conv_type 会话类型[TIMConvType](../enums/enum.timconvtype.html)
 * @param {string} message_id   message_id 消息 ID
 * @param {string} [user_data]  user_data 户自定义数据，ImSDK只负责传回给回调函数，不做任何处理(可选)
 */
interface MsgCancelSendParams {
    conv_id: string;
    conv_type: number;
    message_id: string;
    user_data?: string;
}
/**
 * @param {array} json_message_id_array  json_message_id_array 消息ID列表
 * @param {string} user_data  user_data 户自定义数据，ImSDK只负责传回给回调函数，不做任何处理(可选)
 *  */
interface MsgFindMessagesParams {
    json_message_id_array: string[];
    user_data?: string;
}
/**
 * @param conv_id   conv_id 会话的ID
 * @param conv_type conv_type  会话类型，请参考[TIMConvType](../enums/enum.timconvtype.html)
 * @param json_msg_param   消息
 * @param user_data user_data 用户自定义数据，ImSDK只负责传回给回调函数cb，不做任何处理
 *  */
interface MsgReportReadedParams {
    conv_id: string;
    conv_type: number;
    json_msg_param: Json_value_msg;
    user_data?: string;
}
/**
 * @param conv_id   conv_id 会话的ID
 * @param conv_type  conv_type 会话类型，请参考[TIMConvType](../enums/enum.timconvtype.html)
 * @param message_id   message_id 消息ID
 * @param user_data  user_data 用户自定义数据，ImSDK只负责传回给回调函数cb，不做任何处理（可选）
 */
interface MsgRevokeParams {
    conv_id: string;
    conv_type: number;
    json_msg_param: Json_value_msg;
    user_data?: string;
}
/**
 * @param conv_id   conv_id 会话的ID
 * @param conv_type  conv_type 会话类型，请参考[TIMConvType](../enums/enum.timconvtype.html)
 * @param params  params：json_msg_Locator_array 消息定位符数组
 * @param user_data  user_data 用户自定义数据，ImSDK只负责传回给回调函数cb，不做任何处理
 */
interface MsgFindByMsgLocatorListParams {
    conv_id: string;
    conv_type: number;
    params: Json_msg_locator[];
    user_data?: string;
}
/**
* @param conv_id  conv_id 会话的ID
* @param conv_type conv_type 会话类型，请参考[TIMConvType](../enums/enum.timconvtype.html)
* @param json_msg_array params 消息数组 item为Json_value_msg
* @param user_data user_data 用户自定义数据，ImSDK只负责传回给回调函数cb，不做任何处理
 
*/
interface MsgImportMsgListParams {
    conv_id: string;
    conv_type: number;
    params: Json_value_msg[];
    user_data?: string;
}
/**
 * @param conv_id  conv_id 会话的ID
 * @param conv_type conv_type 会话类型，请参考[TIMConvType](../enums/enum.timconvtype.html)
 * @param params  params： 消息获取参数 params为json_get_msg_param
 * @param user_data user_data 用户自定义数据，ImSDK只负责传回给回调函数cb，不做任何处理（可选）
 */
interface MsgSaveMsgParams {
    conv_id: string;
    conv_type: number;
    params: Json_value_msg;
    user_data?: string;
}
/**
 *    获取指定会话的消息列表
 * @param conv_id  conv_id  会话的ID
 * @param conv_type conv_type 会话类型，请参考[TIMConvType](../enums/enum.timconvtype.html)
 * @param params  params  消息获取参数 item为json_get_msg_param
 * @param user_data  user_data 用户自定义数据，ImSDK只负责传回给回调函数cb，不做任何处理
 *
 */
interface MsgGetMsgListParams {
    conv_id: string;
    conv_type: number;
    params: Json_get_msg_param;
    user_data?: string;
}
/**
 删除指定会话的本地消息
* @param conv_id  conv_id 会话的ID
* @param conv_type conv_type 会话类型，请参考[TIMConvType](../enums/enum.timconvtype.html)
* @param params params： 消息获取参数（json_msgdel_param）
* @param user_data user_data 用户自定义数据，ImSDK只负责传回给回调函数cb，不做任何处理
*/
interface MsgDeleteParams {
    conv_id: string;
    conv_type: number;
    params: Json_value_msgdelete;
    user_data?: string;
}
/**
 * @param conv_id  conv_id 会话的ID
 * @param conv_type conv_type 会话类型，请参考[TIMConvType](../enums/enum.timconvtype.html)
 * @param params  params 消息数组
 * @param user_data user_data 用户自定义数据，ImSDK只负责传回给回调函数cb，不做任何处理
 */
interface MsgListDeleteParams {
    conv_id: string;
    conv_type: number;
    params: Json_value_msg[];
    user_data?: string;
}
/**
 * @param conv_id conv_id 会话的ID
 * @param conv_type conv_type 会话类型，请参考[TIMConvType](../enums/enum.timconvtype.html)
 * @param user_data user_data 用户自定义数据，ImSDK只负责传回给回调函数cb，不做任何处理
 */
interface MsgClearHistoryMessageParams {
    conv_id: string;
    conv_type: number;
    user_data?: string;
}
/**
 * @param params  json_identifier_array 用户 ID 列表
 * @param opt opt 消息接收选项，请参考[TIMReceiveMessageOpt](../enums/enum.timreceivemessageopt.html)
 * @param user_data user_data 用户自定义数据，ImSDK只负责传回给回调函数cb，不做任何处理
 */
interface MsgSetC2CReceiveMessageOptParams {
    params: string[];
    opt: number;
    user_data?: string;
}
/**
 * @param params params:json_identifier_array 用户 ID 列表
 * @param user_data user_data 用户自定义数据，ImSDK只负责传回给回调函数cb，不做任何处理
 * @return int 返回TIM_SUCC表示接口调用成功（接口只有返回TIM_SUCC，回调cb才会被调用），其他值表示接口调用失败。每个返回值的定义请参考 [TIMResult](../enums/timresult.html)
 *
 */
interface MsgGetC2CReceiveMessageOptParams {
    params: string[];
    user_data?: string;
}
/**
 * @param group_id group_id 群 ID
 * @param opt opt 消息接收选项，请参考[TIMReceiveMessageOpt](../enums/enum.timreceivemessageopt.html)
 * @param user_data user_data 用户自定义数据，ImSDK只负责传回给回调函数cb，不做任何处理
 *
 * @note
 * > 查询群消息的接收选项：您可以在群资料（GroupBaseInfo）中获得这个信息
 */
interface MsgSetGroupReceiveMessageOptParams {
    group_id: string;
    opt: TIMReceiveMessageOpt;
    user_data?: string;
}
/**
 * @param params  params：json_download_elem_param下载的参数Json字符串
 * @param path path 下载文件保存路径
 * @param user_data user_data 用户自定义数据，ImSDK只负责传回给回调函数cb，不做任何处理.不同的下载需要设置不同的user_data
 *
 */
interface MsgDownloadElemToPathParams {
    params: Json_download_elem_param;
    path: string;
    callback: TIMMsgDownloadElemToPathFunc;
    user_data: string;
}
/**
 * @param params  params： 单条消息的 JSON 字符串，接收消息、查找消息或查询历史消息时获取到的消息
 * @param user_data user_data 用户自定义数据，ImSDK只负责传回给回调函数cb，不做任何处理
 *
 */
interface MsgDownloadMergerMessageParams {
    params: Json_value_msg;
    user_data?: string;
}
/**
 * @param params params  群发消息json字符串
 *      msg_batch_send_param_identifier_array 只写(必填), 群发的ID列表
 *      msg_batch_send_param_msg 只写(必填), 群发的消息
 * @param user_data user_data 用户自定义数据，ImSDK只负责传回给回调函数cb，不做任何处理
 */
interface MsgBatchSendParams {
    params: {
        msg_batch_send_param_identifier_array: string[];
        msg_batch_send_param_msg: Json_value_msg;
    };
    user_data?: string;
}
/**
 * @param params params：json_search_message_param 消息搜索参数
 * @param user_data user_data 用户自定义数据，ImSDK只负责传回给回调函数cb，不做任何处理
 *
 */
interface MsgSearchLocalMessagesParams {
    params: Json_search_message_param;
    user_data?: string;
}
/**
 * @param params params: json_value_msg 消息修改参数
 * @param user_data user_data 用户自定义数据，ImSDK只负责传回给回调函数cb，不做任何处理
 */
interface MsgModifyMessageParams {
    params: Json_value_msg;
    user_data?: string;
}
/**
 * @brief 消息Json Keys、
 * @param message_elem_array message_elem_array：array [Elem](), 读写(必填), 消息内元素列表
 * @param message_conv_id message_conv_id 读写(选填),       消息所属会话ID
 * @param message_conv_type message_conv_type [TIMConvType](../enums/enum.timconvtype.html), 读写(选填), 消息所属会话类型
 * @param message_sender message_sender  读写(选填),       消息的发送者
 * @param message_priority message_priority [TIMMsgPriority](), 读写(选填), 消息优先级
 * @param message_client_time message_client_time 读写(选填),       客户端时间
 * @param message_server_time message_server_time 读写(选填),       服务端时间
 * @param message_is_from_self message_is_from_self 读写(选填),       消息是否来自自己
 * @param message_platform message_platform  读写(选填), 发送消息的平台
 * @param message_is_read message_is_read  读写(选填),       消息是否已读
 * @param message_is_online_msg message_is_online_msg 读写(选填),       消息是否是在线消息，false表示普通消息,true表示阅后即焚消息，默认为false
 * @param message_is_peer_read message_is_peer_read  只读,            消息是否被会话对方已读
 * @param message_status message_status [TIMMsgStatus](), 读写(选填), 消息当前状态
 * @param message_msg_id message_msg_id 只读,       消息的唯一标识，推荐使用 kTIMMsgMsgId
 * @param message_rand message_rand 只读,       消息的随机码
 * @param message_seq message_seq 只读,       消息序列
 * @param message_custom_int 读写(选填), 自定义整数值字段（本地保存，不会发送到对端，程序卸载重装后失效）
 * @param message_custom_str 读写(选填), 自定义数据字段（本地保存，不会发送到对端，程序卸载重装后失效）
 * @param message_cloud_custom_str message_cloud_custom_str 读写(选填), 消息自定义数据（云端保存，会发送到对端，程序卸载重装后还能拉取到）
 * @param message_is_excluded_from_unread_count 读写(选填),  消息是否不计入未读计数：默认为 NO，表明需要计入未读计数，设置为 YES，表明不需要计入未读计数
 * @param message_group_at_user_array message_group_at_user_array 读写(选填), 群消息中被 @ 的用户 UserID 列表（即该消息都 @ 了哪些人），如果需要 @ ALL ，请传入 kImSDK_MesssageAtALL 字段
 * @param message_is_forward_message message_is_forward_message 只写(选填), 如果需要转发一条消息，不能直接调用 sendMessage 接口发送原消息，原消息 kTIMMsgIsForwardMessage 设置为 true 再发送。
 * @param message_sender_profile message_sender_profile 读写(选填), 消息的发送者的用户资料
 * @param message_sender_group_member_info message_sender_group_member_info 读写(选填), 消息发送者在群里面的信息，只有在群会话有效。目前仅能获取字段 kTIMGroupMemberInfoIdentifier、kTIMGroupMemberInfoNameCard 其他的字段建议通过 TIMGroupGetMemberInfoList 接口获取
 * @param message_offlie_push_config message_offlie_push_config [OfflinePushConfig](), 读写(选填), 消息的离线推送设置
 * @param message_excluded_from_content_moderation 是否不过内容审核（包含【本地审核】和【云端审核】），只有在开通【本地审核】或【云端审核】功能后，该字段设置才有效，设置为 true，表明不过内容审核，设置为 false：表明过内容审核。【本地审核】开通流程请参考 [本地审核功能](https://cloud.tencent.com/document/product/269/83795#.E6.9C.AC.E5.9C.B0.E5.AE.A1.E6.A0.B8.E5.8A.9F.E8.83.BD)。 【云端审核】开通流程请参考 [云端审核功能](https://cloud.tencent.com/document/product/269/83795#.E4.BA.91.E7.AB.AF.E5.AE.A1.E6.A0.B8.E5.8A.9F.E8.83.BD)
 *
 * @note 注意
 * > 关于对应Elem的顺序
 * + 目前文件和语音Elem不一定会按照添加顺序传输，其他Elem按照顺序，不过建议不要过于依赖Elem顺序进行处理，应该逐个按照Elem类型处理，防止异常情况下进程Crash。
 * > 针对群组的红包和点赞消息
 * + 对于直播场景，会有点赞和发红包功能，点赞相对优先级较低，红包消息优先级较高，具体消息内容可以使用自定义消息[CustomElem]()进行定义，发送消息时，可通过 kTIMMsgPriority 定义消息优先级。
 * > 阅后即焚消息
 * + 开发者通过设置 TIMMsgIsOnlineMsg 字段为true时，表示发送阅后即焚消息,该消息有如下特性
 * >C2C会话,当此消息发送时，只有对方在线，对方才会收到。如果当时离线，后续再登录也收不到此消息。
 * >群会话,当此消息发送时，只有群里在线的成员才会收到。如果当时离线，后续再登录也收不到此消息。
 * >此消息服务器不会保存
 * >此消息不计入未读计数
 * >此消息在本地不会存储
 * > 消息自定义字段
 * + 开发者可以对消息增加自定义字段，如自定义整数(通过 kTIMMsgCustomInt 指定)、自定义二进制数据(通过 kTIMMsgCustomStr 指定，必须转换成String，Json不支持二进制传输)，可以根据这两个字段做出各种不同效果，例如语音消息是否已经播放等等。另外需要注意，此自定义字段仅存储于本地，不会同步到Server，更换终端获取不到。
 *
 */
interface Json_value_msg {
    message_elem_array?: (ElemTextElem | ElemImageElem | ElemSoundElem | ElemCustomElem | ElemFileElem | ElemVideoElem | ElemMergerElem | ElemFaceElem | ElemLocationElem | ElemGroupTipsElem | ElemGroupReportElem)[];
    message_conv_id?: string;
    message_conv_type?: number;
    message_sender?: string;
    message_priority?: number;
    message_client_time?: number;
    message_server_time?: number;
    message_is_from_self?: boolean;
    message_platform?: TIMPlatform;
    message_is_read?: boolean;
    message_is_online_msg?: boolean;
    message_is_peer_read?: boolean;
    message_status?: TIMMsgStatus;
    message_unique_id?: number;
    message_msg_id?: string;
    message_rand?: number;
    message_seq?: number;
    message_custom_int?: number;
    message_custom_str?: string;
    message_cloud_custom_str?: string;
    message_is_excluded_from_unread_count?: boolean;
    message_group_at_user_array?: string[];
    message_is_forward_message?: boolean;
    message_sender_profile?: userProfile;
    message_sender_group_member_info?: GroupMemberInfo;
    message_support_message_extension?: boolean;
    message_offline_push_config?: OfflinePushConfig;
    message_need_read_receipt?: boolean;
    message_receipt_peer_read?: boolean;
    message_is_broadcast_message?: boolean;
    message_has_sent_receipt?: boolean;
    message_group_receipt_read_count?: number;
    message_group_receipt_unread_count?: number;
    message_version?: number;
    message_excluded_from_last_message?: boolean;
    message_excluded_from_content_moderation?: boolean;
    message_target_group_member_array?: string[];
    message_revoker_user_id?: string;
}
/**
 * @brief 离线消息推送配置
 * @param offline_push_config_desc 读写, 当前消息在对方收到离线推送时候展示内容
 * @param offline_push_config_ext  读写, 当前消息离线推送时的扩展字段
 * @param offline_push_config_flag  读写, 当前消息是否允许推送，默认允许推送 kTIMOfflinePushFlag_Default
 * @param offline_push_config_ios_config 读写, iOS离线推送配置
 * @param offline_push_config_android_config    读写, Android离线推送配置
 */
interface OfflinePushConfig {
    offline_push_config_desc: string;
    offline_push_config_ext: string;
    offline_push_config_flag: TIMOfflinePushFlag;
    offline_push_config_ios_config?: IOSOfflinePushConfig;
    offline_push_config_android_config?: AndroidOfflinePushConfig;
}
/**
 * @brief 消息在iOS系统上的离线推送配置
 * @param ios_offline_push_config_title 读写, 通知标题
 * @param ios_offline_push_config_sound 读写, 离线推送声音设置（仅对 iOS 生效）。当 iOSSound = kIOSOfflinePushNoSound，表示接收时不会播放声音；当 iOSSound = kIOSOfflinePushDefaultSound，表示接收时播放系统声音；如果要自定义 iOSSound，需要先把语音文件链接进 Xcode 工程，然后把语音文件名（带后缀）设置给 iOSSound。
 * @param ios_offline_push_config_ignore_badge  读写, 是否忽略badge计数。若为true，在iOS接收端，这条消息不会使App的应用图标未读计数增加
 * @param ios_offline_push_config_push_type [TIMIOSOfflinePushType]()，读写，iOS 离线推送的类型（仅对 iOS 生效），默认值是 TIMIOSOfflinePushType_APNS
 */
interface IOSOfflinePushConfig {
    ios_offline_push_config_title: string;
    ios_offline_push_config_sound: string;
    ios_offline_push_config_ignore_badge: boolean;
    ios_offline_push_config_push_type: TIMIOSOfflinePushType;
}
/**
 * @brief 消息在Android系统上的离线推送配置
 * @param android_offline_push_config_title 读写, 通知标题
 * @param android_offline_push_config_sound 读写, 离线推送声音设置（仅对 Android 生效）。只有华为和谷歌手机支持设置声音提示，小米手机设置声音提示，请您参照：https://dev.mi.com/console/doc/detail?pId=1278%23_3_0。AndroidSound: Android 工程里 raw 目录中的铃声文件名，不需要后缀名。
 * @param android_offline_push_config_notify_mode   [TIMAndroidOfflinePushNotifyMode](), 读写, 当前消息的通知模式
 * @param android_offline_push_config_vivo_classification   读写，离线推送设置 VIVO 推送消息分类 (待废弃接口，VIVO 推送服务于 2023 年 4 月 3 日优化消息分类规则，推荐使用 kTIMAndroidOfflinePushConfigVIVOCategory 设置消息类别) ，VIVO 手机离线推送消息分类，0：运营消息，1：系统消息。默认取值为 1 。
 * @param android_offline_push_config_vivo_category 读写, 离线推送设置 VIVO 推送消息类别，详见：https://dev.vivo.com.cn/documentCenter/doc/359。(VIVO 推送服务于 2023 年 4 月 3 日优化消息分类规则，推荐使用 kTIMAndroidOfflinePushConfigVIVOCategory 设置消息类别，不需要再关注和设置 kTIMAndroidOfflinePushConfigVIVOClassification)
 * @param android_offline_push_config_oppo_channel_id   读写, 离线推送设置 OPPO 手机 8.0 系统及以上的渠道 ID（仅对 Android 生效）。
 */
interface AndroidOfflinePushConfig {
    android_offline_push_config_title: string;
    android_offline_push_config_sound: string;
    android_offline_push_config_notify_mode: TIMAndroidOfflinePushNotifyMode;
    android_offline_push_config_vivo_classification?: number;
    android_offline_push_config_vivo_category?: string;
    android_offline_push_config_oppo_channel_id?: string;
}
/**
 * @brief 消息定位符
 * @param message_locator_is_revoked message_locator_is_revoked：读写(必填), 要查找的消息是否是被撤回。true表示被撤回的，false表示未撤回的。默认为false
 * @param message_locator_time message_locator_time 读写(必填), 要查找的消息的时间戳
 * @param message_locator_seq message_locator_seq 读写(必填), 要查找的消息的序列号
 * @param message_locator_is_self message_locator_is_self 读写(必填), 要查找的消息的发送者是否是自己。true表示发送者是自己，false表示发送者不是自己。默认为false
 * @param message_locator_rand message_locator_rand 读写(必填), 要查找的消息随机码
 * @param message_locator_unique_id message_locator_unique_id 读写(必填), 要查找的消息的唯一标识
 */
interface Json_msg_locator {
    message_locator_is_revoked?: boolean;
    message_locator_time?: number;
    message_locator_seq?: number;
    message_locator_is_self?: boolean;
    message_locator_rand?: number;
    message_locator_unique_id?: number;
}
/**
 * @brief 下载元素接口的参数
 * @param msg_download_elem_param_flag msg_download_elem_param_flag 只写, 从消息元素里面取出来,元素的下载类型
 * @param msg_download_elem_param_type msg_download_elem_param_type [TIMDownloadType](), 只写, 从消息元素里面取出来,元素的类型
 * @param msg_download_elem_param_id msg_download_elem_param_id 只写, 从消息元素里面取出来,元素的ID
 * @param msg_download_elem_param_business_id msg_download_elem_param_business_id 只写, 从消息元素里面取出来,元素的BusinessID
 * @param msg_download_elem_param_url msg_download_elem_param_url 只写, 从消息元素里面取出来,元素URL
 */
interface Json_download_elem_param {
    msg_download_elem_param_flag?: number;
    msg_download_elem_param_type?: TIMDownloadType;
    msg_download_elem_param_id: string;
    msg_download_elem_param_business_id?: number;
    msg_download_elem_param_url: string;
}
/**
 *  @brief  消息删除接口的参数
 *  @param msg_delete_param_msg msg_delete_param_msg： object [Message](), 只写(选填), 指定在会话中要删除的消息
 *  @param  msg_delete_param_is_ramble msg_delete_param_is_ramble bool, 只写(选填), 是否删除本地/漫游所有消息。true删除漫游消息，false删除本地消息，默认值false
 */
interface Json_value_msgdelete {
    msg_delete_param_msg: Json_value_msg;
    msg_delete_param_is_ramble?: boolean;
}
/**
 * @brief 消息搜索参数
 * @param msg_search_param_keyword_array msg_search_param_keyword_array： 只写(必填)，搜索关键字列表，最多支持5个。
 * @param msg_search_param_message_type_array msg_search_param_message_type_array：只写(选填), 指定搜索的消息类型集合，传入空数组，表示搜索支持的全部类型消息（FaceElem 和 GroupTipsElem 暂不支持）取值详见 TIMElemType。
 * @param msg_search_param_conv_id msg_search_param_conv_id 只写(选填)，会话 ID
 * @param msg_search_param_conv_type msg_search_param_conv_type 只写(选填), 会话类型，如果设置 kTIMConv_Invalid，代表搜索全部会话。否则，代表搜索指定会话。
 * @param msg_search_param_search_time_position msg_search_param_search_time_position：只写(选填), 搜索的起始时间点。默认为0即代表从现在开始搜索。UTC 时间戳，单位：秒
 * @param msg_search_param_search_time_period msg_search_param_search_time_period： 只写(选填), 从起始时间点开始的过去时间范围，单位秒。默认为0即代表不限制时间范围，传24x60x60代表过去一天。
 * @param msg_search_param_page_index msg_search_param_page_index： 只写(选填), 分页的页号：用于分页展示查找结果，从零开始起步。首次调用：通过参数 pageSize = 10, pageIndex = 0 调用 searchLocalMessage，从结果回调中的 totalCount 可以获知总共有多少条结果。计算页数：可以获知总页数：totalPage = (totalCount % loadCount == 0) ? (totalCount / pageIndex) : (totalCount / pageIndex + 1) 。再次调用：可以通过指定参数 pageIndex （pageIndex < totalPage）返回后续页号的结果。
 * @param msg_search_param_page_size msg_search_param_page_size：只写(选填), 每页结果数量：用于分页展示查找结果，如不希望分页可将其设置成 0，但如果结果太多，可能会带来性能问题。
 * @param msg_search_param_keyword_list_match_type msg_search_param_keyword_list_match_type：关键字进行 Or 或者 And 进行搜索
 * @param msg_search_param_send_indentifier_array msg_search_param_send_indentifier_array: 按照发送者的 userid 进行搜索
 *
 */
interface Json_search_message_param {
    msg_search_param_keyword_array?: string[];
    msg_search_param_message_type_array?: TIMElemType[];
    msg_search_param_conv_id?: string;
    msg_search_param_conv_type?: number;
    msg_search_param_search_time_position?: number;
    msg_search_param_search_time_period?: number;
    msg_search_param_page_index?: number;
    msg_search_param_page_size?: number;
    msg_search_param_keyword_list_match_type?: number;
    msg_search_param_send_identifier_array?: string[];
}
/**
 * @brief 消息获取接口的参数
 * @param msg_getmsglist_param_last_msg msg_getmsglist_param_last_msg:[Message](), 只写(选填), 指定的消息，不允许为null
 * @param msg_getmsglist_param_count msg_getmsglist_param_count: 只写(选填), 从指定消息往后的消息数
 * @param msg_getmsglist_param_is_ramble msg_getmsglist_param_is_ramble:只写(选填), 是否漫游消息
 * @param msg_getmsglist_param_is_forward msg_getmsglist_param_is_forward:只写(选填), 是否向前排序
 * @param msg_getmsglist_param_last_msg_seq msg_getmsglist_param_last_msg_seq:只写(选填), 指定的消息的 seq
 * @param msg_getmsglist_param_time_begin msg_getmsglist_param_time_begin:只写(选填), 开始时间；UTC 时间戳， 单位：秒
 * @param msg_getmsglist_param_time_period msg_getmsglist_param_time_period:只写(选填), 持续时间；单位：秒
 */
interface Json_get_msg_param {
    msg_getmsglist_param_last_msg?: Json_value_msg;
    msg_getmsglist_param_count?: number;
    msg_getmsglist_param_is_ramble?: boolean;
    msg_getmsglist_param_is_forward?: boolean;
    msg_getmsglist_param_last_msg_seq?: number;
    msg_getmsglist_param_time_begin?: number;
    msg_getmsglist_param_time_period?: number;
}
/**
 * @param user_data  user_data 用户自定义数据，ImSDK只负责传回给回调函数cb，不做任何处理
 * @param callback TIMRecvNewMsgCallbackFunc
 */
interface TIMRecvNewMsgCallbackParams {
    callback: TIMRecvNewMsgCallbackFunc;
    user_data?: string;
}
/**
 * @param TIMMsgReadedReceiptCallbackFunc  TIMMsgReadedReceiptCallbackFunc
 * @param user_data user_data 用户自定义数据，ImSDK只负责传回给回调函数cb，不做任何处理
 */
interface TIMMsgReadedReceiptCallbackParams {
    callback: TIMMsgReadedReceiptCallbackFunc;
    user_data?: string;
}
interface TIMSetMsgExtensionsChangedCallbackParam {
    callback: TIMSetMsgExtensionsChangedCallbackFun;
    user_data?: string;
}
/**
 * @param callback  TIMMsgRevokeCallbackFunc（泛型）
 * @param user_data user_data 用户自定义数据，ImSDK只负责传回给回调函数cb，不做任何处理
 */
interface TIMMsgRevokeCallbackParams {
    callback: TIMMsgRevokeCallbackFunc;
    user_data?: string;
}
/**
 * @param callback TIMMsgElemUploadProgressCallbackFunc
 * @param user_data user_data 用户自定义数据，ImSDK只负责传回给回调函数cb，不做任何处理
 */
interface TIMMsgElemUploadProgressCallbackParams {
    callback: TIMMsgElemUploadProgressCallbackFunc;
    user_data?: string;
}
/**
 * @param callback TIMMsgUpdateCallbackFunc
 * @param user_data user_data 用户自定义数据，ImSDK只负责传回给回调函数cb，不做任何处理
 */
interface TIMMsgUpdateCallbackParams {
    callback: TIMMsgUpdateCallbackFunc;
    user_data?: string;
}
/**
 * @param json_msg_array json_msg_array：消息数组 // TODO这里message的内容有问题，是Array[String] 么？ 还是纯字符串过去
 * @param user_data user_data：用户自定义数据
 */
interface TIMRecvNewMsgCallbackFunc {
    (json_msg_array: string, user_data: string): void;
}
/**
 * 多媒体消息下载回调
 */
interface TIMMsgDownloadElemToPathFunc {
    (code: number, desc: string, json_param: string, user_data: string): void;
}
/**
 * @param json_msg_readed_receipt_array json_msg_readed_receipt_array：消息已读回执数组
 * @param user_data user_data：用户自定义数据
 */
interface TIMMsgReadedReceiptCallbackFunc {
    (json_msg_readed_receipt_array: string, user_data: string): void;
}
/**
 * @param json_msg_locator_array json_msg_locator_array：消息定位符数组
 * @param user_data user_data：用户自定义数据
 * @note 请以下方数据结构为准
 */
interface TIMMsgRevokeCallbackFunc {
    (json_msg_locator_array: string, user_data: string): void;
}
/**
 * @param json_msg json_msg：新消息
 * @param index index：上传 Elem 元素在 json_msg 消息的下标
 * @param cur_size cur_size：上传当前大小
 * @param local_size local_size：上传总大小
 * @param user_data user_data：ImSDK负责透传的用户自定义数据，未做任何处理
 * @note 请以下方数据结构为准
 */
interface TIMMsgElemUploadProgressCallbackFunc {
    (json_msg: string, index: number, cur_size: number, local_size: number, // TODO 这里似乎拼错了，应该是tototal
    user_data: string): void;
}
/**
 * @param json_msg_array json_msg_array：消息数组
 * @param user_data user_data：用户自定义数据
 */
interface TIMMsgUpdateCallbackFunc {
    (json_msg_array: string, user_data: string): void;
}
interface ElemImageElem extends ImageElem {
    elem_type: number;
}
interface ElemTextElem extends TextElem {
    elem_type: number;
}
interface ElemSoundElem extends SoundElem {
    elem_type: number;
}
interface ElemCustomElem extends CustomElem {
    elem_type: number;
}
interface ElemFileElem extends FileElem {
    elem_type: number;
}
interface ElemVideoElem extends VideoElem {
    elem_type: number;
}
interface ElemMergerElem extends MergerElem {
    elem_type: number;
}
interface ElemFaceElem extends FaceElem {
    elem_type: number;
}
interface ElemLocationElem extends LocationElem {
    elem_type: number;
}
interface ElemGroupReportElem extends GroupReportElem {
    elem_type: number;
}
interface ElemGroupTipsElem extends GroupTipsElem {
    elem_type: number;
}
interface C2CRecvMsgOptResult {
    msg_recv_msg_opt_result_identifier: string;
    msg_recv_msg_opt_result_opt: TIMReceiveMessageOpt;
}
interface BatchSendResult {
    msg_batch_send_result_identifier: string;
    msg_batch_send_result_code: number;
    msg_batch_send_result_desc: string;
    msg_batch_send_result_msg: Json_value_msg;
}
interface MessageSearchResultItem {
    msg_search_result_item_conv_id: string;
    msg_search_result_item_conv_type: TIMConvType;
    msg_search_result_item_total_message_count: number;
    msg_search_result_item_message_array: Json_value_msg[];
}
interface MessageSearchResult {
    msg_search_result_total_count: number;
    msg_search_result_item_array: Array<MessageSearchResultItem>;
}
interface TIMSetMsgExtensionsChangedCallbackFun {
    (message_id: String, message_extension_array: MessageExtension[], user_data: string): void;
}
interface TIMSetMsgExtensionsDeletedCallbackFun {
    (message_id: String, message_extension_key_array: MessageExtension[], user_data: string): void;
}
interface TIMSetMsgExtensionsDeletedCallbackParam {
    callback: TIMSetMsgExtensionsDeletedCallbackFun;
    user_data?: string;
}
interface TIMMsgSetMessageExtensionsParam {
    json_msg: Json_value_msg;
    json_extension_array: MessageExtension[];
    user_data: string;
}
interface TIMMsgGetMessageExtensionsParam {
    json_msg: Json_value_msg;
    user_data: string;
}
interface TIMMsgDeleteMessageExtensionsParam {
    json_msg: Json_value_msg;
    json_extension_key_array: MessageExtension[];
    user_data: string;
}
interface MessageExtension {
    message_extension_key: string;
    message_extension_value?: string;
}
interface MessageExtensionResult {
    message_extension_result_code: number;
    message_extension_result_info: string;
    message_extension_item: object;
}
/**
 * @brief 设置离线推送配置信息
 * @param offline_push_token_token 只写（选填）, 注册应用到厂商平台的 token。注意：填写为设备 Token 的 hex 字符串（即 base16 编码）。
 * @param offline_push_token_business_id 只写（选填），IM 控制台证书 ID
 * @param offline_push_token_type [TIMOfflinePushTokenType]()，厂商 token 类型。默认为 TIMOfflinePushTokenType_Default。其中 TIMOfflinePushTokenType_TPNS 为待废弃状态，如果您之前通过 TPNS 接入离线推送，并且在 TPNS 控制台配置推送信息，可以继续按照该方式接入推送功能。如果您从未接入 TPNS，从未在 TPNS 控制台配置推送信息，IM 将不在支持 TPNS 方式接入离线推送功能, 推荐参照如下方式接入：https://cloud.tencent.com/document/product/269/74284
 */
interface OfflinePushToken {
    param: {
        offline_push_token_token?: string;
        offline_push_token_business_id?: number;
        offline_push_token_type: TIMOfflinePushTokenType;
    };
    user_data: string;
}
interface TranslateTextParam {
    json_source_text_array: string[];
    source_language: string;
    target_language: string;
    user_data?: string;
}
interface MessageTranslateTextResult {
    msg_translate_text_source_text: string;
    msg_translate_text_target_text: string;
}
interface ConvertVoiceToTextParam {
    url: string;
    language: string;
    user_data?: string;
}
/**
 * @param json_msg_param 消息json
 * @param user_data 用户自定义数据，ImSDK只负责传回给回调函数cb，不做任何处理
 */
interface SetLocalCustomDataParam {
    json_msg_param: Json_value_msg;
    user_data: string;
}

/**
 * @brief 群组基础信息
 * @param group_base_info_group_id group_base_info_group_id: 群组ID
 * @param group_base_info_group_name group_base_info_group_name: 群组名称
 * @param group_base_info_group_type group_base_info_group_type: 群组类型
 * @param group_base_info_face_url group_base_info_face_url: 群组头像URL
 * @param group_base_info_info_seq group_base_info_info_seq: 群资料的Seq，群资料的每次变更都会增加这个字段的值
 * @param group_base_info_lastest_seq group_base_info_lastest_seq: 群最新消息的Seq。群组内每一条消息都有一条唯一的消息Seq，且该Seq是按照发消息顺序而连续的。从1开始，群内每增加一条消息，LastestSeq就会增加1
 * @param group_base_info_readed_seq group_base_info_readed_seq: 用户所在群已读的消息Seq
 * @param group_base_info_msg_flag group_base_info_msg_flag: 消息接收选项
 * @param group_base_info_is_shutup_all group_base_info_is_shutup_all: 当前群组是否设置了全员禁言
 * @param group_base_info_self_info group_base_info_self_info: 用户所在群的个人信息,请参考[GroupSelfInfo]
 */
interface GroupBaseInfo {
    group_base_info_group_id: string;
    group_base_info_group_name: string;
    group_base_info_group_type: TIMGroupType;
    group_base_info_face_url: string;
    group_base_info_info_seq: number;
    group_base_info_latest_seq: number;
    group_base_info_readed_seq: number;
    group_base_info_msg_flag: number;
    group_base_info_is_shutup_all: boolean;
    group_base_info_self_info: GroupSelfInfo;
}
/**
 * @brief 群组内本人的信息
 * @param group_self_info_join_time group_self_info_join_time: 加入群组时间
 * @param group_self_info_role group_self_info_role: 用户在群组中的角色
 * @param group_self_info_unread_num group_self_info_unread_num: 消息未读计数
 * @param group_self_info_msg_flag group_self_info_msg_flag: 消息接收选项
 */
interface GroupSelfInfo {
    group_self_info_join_time: number;
    group_self_info_role: number;
    group_self_info_unread_num: number;
    group_self_info_msg_flag: TIMReceiveMessageOpt;
}
/**
 * @brief 群组详细信息
 * @param group_detial_info_group_id group_detial_info_group_id: 群组ID
 * @param group_detial_info_group_type group_detial_info_group_type: 群组类型
 * @param group_detial_info_group_name group_detial_info_group_name: 群组名称
 * @param group_detial_info_notification group_detial_info_notification: 群组公告
 * @param group_detial_info_introduction group_detial_info_introduction: 群组简介
 * @param group_detial_info_face_url group_detial_info_face_url: 群组头像URL
 * @param group_detial_info_create_time group_detial_info_create_time: 群组创建时间
 * @param group_detial_info_info_seq group_detial_info_info_seq: 群资料的Seq，群资料的每次变更都会增加这个字段的值
 * @param group_detial_info_last_info_time group_detial_info_last_info_time: 群组信息最后修改时间
 * @param group_detial_info_next_msg_seq group_detial_info_next_msg_seq: 群最新消息的Seq
 * @param group_detial_info_last_msg_time group_detial_info_last_msg_time: 最新群组消息时间
 * @param group_detial_info_member_num group_detial_info_member_num: 群组当前成员数量
 * @param group_detial_info_max_member_num group_detial_info_max_member_num: 群组最大成员数量
 * @param group_detial_info_add_option group_detial_info_add_option: 群组加群选项
 * @param group_detial_info_online_member_num group_detial_info_online_member_num: 群组在线成员数量
 * @param group_detial_info_visible group_detial_info_visible: 群组成员是否对外可见
 * @param group_detial_info_searchable group_detial_info_searchable: 群组是否能被搜索
 * @param group_detial_info_is_shutup_all group_detial_info_is_shutup_all: 群组是否被设置了全员禁言
 * @param group_detial_info_owener_identifier group_detial_info_owener_identifier: 群组所有者ID
 * @param group_detial_info_custom_info group_detial_info_custom_info: 请参考[GroupInfoCustomString]
 * @param group_detial_info_approve_option [TIMGroupAddOption](), 只读, 群组邀请进群审批选项
 */
interface GroupDetailInfo {
    group_detail_info_group_id: string;
    group_detail_info_group_type: TIMGroupType;
    group_detail_info_group_name: string;
    group_detail_info_notification: string;
    group_detail_info_introduction: string;
    group_detail_info_face_url: string;
    group_detail_info_create_time: number;
    group_detail_info_info_seq: number;
    group_detail_info_last_info_time: number;
    group_detail_info_next_msg_seq: number;
    group_detail_info_last_msg_time: number;
    group_detail_info_member_num: number;
    group_detail_info_max_member_num: number;
    group_detail_info_add_option: TIMGroupAddOption;
    group_detail_info_online_member_num: number;
    group_detail_info_visible: number;
    group_detail_info_searchable: number;
    group_detail_info_is_shutup_all: boolean;
    group_detail_info_owener_identifier: string;
    group_detail_info_is_support_topic: boolean;
    group_detail_info_custom_info: Array<GroupInfoCustomString>;
    group_detail_info_approve_option: number;
}
interface GroupInfo extends GroupBaseInfo, GroupDetailInfo {
}
/**
 * @brief 获取群组信息列表接口的返回
 * @param get_groups_info_result_code get_groups_info_result_code: 错误码
 * @param get_groups_info_result_desc get_groups_info_result_desc: 获取群组详细失败的描述信息
 * @param get_groups_info_result_info get_groups_info_result_info: 群组详细信息
 */
interface GroupInfoResult {
    get_groups_info_result_code: number;
    get_groups_info_result_desc: string;
    get_groups_info_result_info: GroupInfo;
}
/**
 * @brief 群组成员信息自定义字段
 * @param group_info_custom_string_info_key group_info_custom_string_info_key: 自定义字段的key
 * @param group_info_custom_string_info_value group_info_custom_string_info_value: 自定义字段的value
 */
interface GroupInfoCustomString {
    group_info_custom_string_info_key: string;
    group_info_custom_string_info_value: string;
}
/**
 * @brief 群组成员信息自定义字段
 * @param group_member_info_custom_string_info_key group_member_info_custom_string_info_key：自定义字段的key
 * @param group_member_info_custom_string_info_key group_member_info_custom_string_info_key： 自定义字段的value
 */
interface GroupMemberInfoCustemString {
    group_member_info_custom_string_info_key: string;
    group_member_info_custom_string_info_value: string;
}
/**
 * @brief 群组成员信息
 * @param group_member_info_identifier group_member_info_identifier 群组成员ID
 * @param group_member_info_join_time group_member_info_join_time 群组成员加入时间
 * @param group_member_info_member_role group_member_info_member_role 群组成员角色
 * @param group_member_info_msg_flag group_member_info_msg_flag 成员接收消息的选项
 * @param group_member_info_msg_seq group_member_info_msg_seq 消息序列号
 * @param group_member_info_shutup_time group_member_info_shutup_time 成员禁言时间
 * @param group_member_info_name_card group_member_info_name_card 成员群名片
 * @param group_member_info_custom_info group_member_info_custom_info 请参考[自定义字段](https://cloud.tencent.com/document/product/269/1502#.E8.87.AA.E5.AE.9A.E4.B9.89.E5.AD.97.E6.AE.B5)
 * @param group_member_info_group_id 只读, 群组 ID
 * @param group_member_info_nick_name 只读, 好友昵称
 * @param group_member_info_friend_remark 只读, 好友备注
 * @param group_member_info_face_url 只读, 好友头像
 * @param group_member_info_is_online 只读，群成员是否在线
 */
interface GroupMemberInfo {
    group_member_info_identifier: string;
    group_member_info_join_time?: number;
    group_member_info_member_role?: TIMGroupMemberRole;
    group_member_info_msg_flag?: number;
    group_member_info_msg_seq?: number;
    group_member_info_shutup_time?: number;
    group_member_info_name_card?: string;
    group_member_info_custom_info?: Array<GroupMemberInfoCustemString>;
    group_member_info_group_id?: string;
    group_member_info_nick_name?: string;
    group_member_info_friend_remark?: string;
    group_member_info_face_url?: string;
    group_member_info_is_online?: boolean;
}
/**
 * @param create_group_param_group_name create_group_param_group_name： 群组名称（必填）
 * @param create_group_param_group_id create_group_param_group_id： 群组ID,不填时创建成功回调会返回一个后台分配的群ID
 * @param create_group_param_group_type create_group_param_group_type 群组类型,默认为Public
 * @param create_group_param_group_member_array create_group_param_group_member_array 群组初始成员数组,成员个数不能超过20
 * @param create_group_param_notification create_group_param_notification 群组公告
 * @param create_group_param_introduction create_group_param_introduction 群组简介
 * @param create_group_param_face_url create_group_param_face_url 群组头像URL
 * @param create_group_param_add_option create_group_param_add_option 加群选项，默认为Any
 * @param create_group_param_approve_option [TIMGroupAddOption](), 只写（选填），邀请进群审批选项，默认为Any
 * @param create_group_param_max_member_num create_group_param_max_member_num 群组最大成员数
 * @param create_group_param_custom_info create_group_param_custom_info 请参考[自定义字段](https://cloud.tencent.com/document/product/269/1502#.E8.87.AA.E5.AE.9A.E4.B9.89.E5.AD.97.E6.AE.B5)
 * @param create_group_param_is_support_topic 社群是否支持创建话题，只在群类型为 Community 时有效
 */
interface GroupParams {
    create_group_param_group_name: string;
    create_group_param_group_id?: string;
    create_group_param_group_type?: number;
    create_group_param_is_support_topic?: boolean;
    create_group_param_group_member_array?: Array<GroupMemberInfo>;
    create_group_param_notification?: string;
    create_group_param_introduction?: string;
    create_group_param_face_url?: string;
    create_group_param_add_option?: number;
    create_group_param_max_member_num?: number;
    create_group_param_approve_option?: number;
    create_group_param_custom_info?: Array<GroupInfoCustomString>;
}
/**
 * @param {groupId} groupId groupId 要删除的群组ID
 * @param {string} data data  用户自定义数据，ImSDK只负责传回给回调函数cb，不做任何处理
 */
interface DeleteGroupParams {
    groupId: string;
    data?: string;
}
/**
 * @param GroupParams params:创建组接口参数
 * @param data data: 用户自定义数据
 */
interface CreateGroupParams {
    params: GroupParams;
    data?: string;
}
/**
 * @param {groupId} groupId groupId 要删除的群组ID
 * @param {string} data data  用户自定义数据，ImSDK只负责传回给回调函数cb，不做任何处理
 */
interface QuitGroupParams extends DeleteGroupParams {
}
interface GetMemberInfoResult {
    group_get_member_info_list_result_next_seq: number;
    group_get_member_info_list_result_info_array: Array<GroupMemberInfo>;
}
/**
    @param data  data：用户自定义数据
    @param params params：邀请加入群组的Json

    @note params 的interface如下
 * ```
 *  params {
 *      group_invite_member_param_group_id: string; // 群组ID
 *      group_invite_member_param_identifier_array: Array<string>; //被邀请加入群组用户ID数组
 *       group_invite_member_param_user_data?: string; //用于自定义数据
 *      };
        ```
*/
interface InviteMemberParams {
    params: {
        group_invite_member_param_group_id: string;
        group_invite_member_param_identifier_array: Array<string>;
        group_invite_member_param_user_data?: string;
    };
    data?: string;
}
/**
 * @brief 群计数器
 * @param group_counter_key 群计数器的 key 值
 * @param group_counter_value 群计数器的 value 值
 */
interface GroupCounter {
    group_counter_key: string;
    group_counter_value: number;
}
interface GroupCounterParams {
    params: {
        group_id: string;
        json_group_counter_array: GroupCounter[];
    };
    user_data?: string;
}
interface GetGroupCounterParams {
    group_id: string;
    json_group_counter_key_array: string[];
    user_data?: string;
}
/**
 * @brief 增减群计数器入参
 * @param group_id 群 ID
 * @param group_counter_key 群计数器的 key
 * @param group_counter_value 群计数器的递增递减变化量 value
 */
interface IncreaseGroupCounterParam {
    group_id: string;
    group_counter_key: string;
    group_counter_value: number;
    user_data?: string;
}
/**
    @param data  data：用户自定义数据
    @param params 删除群组成员的Json

    @note params 的interface如下
 * ```
 *  params {
 *      group_delete_member_param_group_id: string; // 群组ID
        group_delete_member_param_identifier_array: Array<string>; // 被删除群组成员数组
        group_delete_member_param_user_data?: string; // 用于自定义数据
        group_delete_member_param_duration?:number; //自被踢出群组开始算起，禁止被踢用户重新申请加群的时间间隔，单位：秒。7.2 版本开始支持
 *      };
        ```
*/
interface DeleteMemberParams {
    params: {
        group_delete_member_param_group_id: string;
        group_delete_member_param_identifier_array: Array<string>;
        group_delete_member_param_user_data?: string;
        group_delete_member_param_duration?: number;
    };
    data?: string;
}
/**
 * @param group_delete_member_result_identifier group_delete_member_result_identifier: 删除的成员ID
 * @param group_delete_member_result_result group_delete_member_result_result:删除结果，请参考[HandleGroupMemberResult]
 */
interface DeleteMemberResult {
    group_delete_member_result_identifier: string;
    group_delete_member_result_result: HandleGroupMemberResult;
}
interface GetGroupListParams {
    groupIds: Array<string>;
    data?: string;
}
/**
 * @note 下方都是params中的字段，参数格式请参考最下方
 * @param group_modify_info_param_group_id group_modify_info_param_group_id: 群组ID
 * @param group_modify_info_param_modify_flag group_modify_info_param_modify_flag: 修改标识,可设置多个值按位
 * @param group_modify_info_param_group_name group_modify_info_param_group_name: 修改群组名称
 * @param group_modify_info_param_notification group_modify_info_param_notification: 修改群公告
 * @param group_modify_info_param_introduction group_modify_info_param_introduction: 修改群简介
 * @param group_modify_info_param_face_url group_modify_info_param_face_url: 修改群头像URL
 * @param group_modify_info_param_add_option group_modify_info_param_add_option 修改群组添加选项
 * @param group_modify_info_param_max_member_num group_modify_info_param_max_member_num 修改群最大成员数
 * @param group_modify_info_param_visible group_modify_info_param_visible 修改群是否可见
 * @param group_modify_info_param_searchable group_modify_info_param_searchable 修改群是否被搜索
 * @param group_modify_info_param_is_shutup_all group_modify_info_param_is_shutup_all 修改群组名称
 * @param group_modify_info_param_owner group_modify_info_param_owner 修改群主所有者
 * @param group_modify_info_param_custom_info group_modify_info_param_custom_info:请参考[自定义字段](https://cloud.tencent.com/document/product/269/1502#.E8.87.AA.E5.AE.9A.E4.B9.89.E5.AD.97.E6.AE.B5)
 * @param group_modify_info_param_approve_option 邀请进群审批选项,    当 modify_flag 包含 kTIMGroupModifyInfoFlag_ApproveOption 时必填,其他情况不用填
 *
 * @param data 用户自定以字段
 */
interface ModifyGroupParams {
    params: {
        group_modify_info_param_group_id: string;
        group_modify_info_param_modify_flag: number;
        group_modify_info_param_group_name?: string;
        group_modify_info_param_notification?: string;
        group_modify_info_param_introduction?: string;
        group_modify_info_param_face_url?: string;
        group_modify_info_param_add_option?: number;
        group_modify_info_param_max_member_num?: number;
        group_modify_info_param_visible?: number;
        group_modify_info_param_searchable?: number;
        group_modify_info_param_is_shutup_all?: boolean;
        group_modify_info_param_owner?: string;
        group_modify_info_param_custom_info?: Array<GroupInfoCustomString>;
        group_modify_info_param_approve_option?: number;
    };
    data?: string;
}
/**
 * @param group_get_members_info_list_param_group_id group_get_members_info_list_param_group_id:群组ID
 * @param group_get_members_info_list_param_identifier_array group_get_members_info_list_param_identifier_array: 群成员ID列表
 * @param group_get_members_info_list_param_next_seq group_get_members_info_list_param_next_seq:分页拉取标志,第一次拉取填0,回调成功如果不为零,需要分页,调用接口传入再次拉取,直至为0
 * @param data data: 用户自定义参数
 *
 * `group_get_members_info_list_param_option参数如下
 * ```
 * @param group_get_members_info_list_param_option
 * {
 *     group_member_get_info_option_info_flag?: number; // 根据想要获取的信息过滤，默认值为0xffffffff(获取全部信息)
 *     group_member_get_info_option_role_flag?: number; //根据成员角色过滤，默认值为kTIMGroupMemberRoleFlag_All，获取所有角色
 *     group_member_get_info_option_custom_array?: Array<string>; // 请参考[自定义字段](https://cloud.tencent.com/document/product/269/1502#.E8.87.AA.E5.AE.9A.E4.B9.89.E5.AD.97.E6.AE.B5)
 *  };
 * ```
 */
interface GetGroupMemberInfoParams {
    params: {
        group_get_members_info_list_param_group_id: string;
        group_get_members_info_list_param_identifier_array?: Array<string>;
        group_get_members_info_list_param_option?: {
            group_member_get_info_option_info_flag?: number;
            group_member_get_info_option_role_flag?: number;
            group_member_get_info_option_custom_array?: Array<string>;
        };
        group_get_members_info_list_param_next_seq?: number;
    };
    data?: string;
}
/**
 * @note 注意是以下字段是params，具体参数格式请参考最下方
 * @param group_modify_member_info_group_id group_modify_member_info_group_id:群组ID
 * @param group_modify_member_info_identifier group_modify_member_info_identifier: 被设置信息的成员ID
 * @param group_modify_member_info_modify_flag group_modify_member_info_modify_flag:修改类型,可设置多个值按位或
 * @param group_modify_member_info_msg_flag group_modify_member_info_msg_flag:修改消息接收选项
 * @param group_modify_member_info_member_role group_modify_member_info_member_role:修改成员角色, 当 modify_flag 包含 kTIMGroupMemberModifyFlag_MemberRole 时必填,其他情况不用填
 * @param group_modify_member_info_shutup_time group_modify_member_info_shutup_time:修改禁言时间
 * @param group_modify_member_info_name_card group_modify_member_info_name_card:修改群名片
 * @param group_modify_member_info_custom_info group_modify_member_info_custom_info:请参考[自定义字段](https://cloud.tencent.com/document/product/269/1502#.E8.87.AA.E5.AE.9A.E4.B9.89.E5.AD.97.E6.AE.B5)
 *
 * @param data data：用户自定参数（与params同级别）
 */
interface ModifyMemberInfoParams {
    params: {
        group_modify_member_info_group_id: string;
        group_modify_member_info_identifier: string;
        group_modify_member_info_modify_flag?: number;
        group_modify_member_info_msg_flag?: number;
        group_modify_member_info_member_role?: number;
        group_modify_member_info_shutup_time?: number;
        group_modify_member_info_name_card?: string;
        group_modify_member_info_custom_info?: Array<GroupMemberInfoCustemString>;
    };
    data?: string;
}
/**
 * @param data data(可选)：用户自定义数据
 *
 * @param params params参数如下：
 * ```
 *  params {
        group_pendency_option_start_time: number; //设置拉取时间戳,第一次请求填0,后边根据server返回的[GroupPendencyResult]()键kTIMGroupPendencyResultNextStartTime指定的时间戳进行填写
        group_pendency_option_max_limited: number; // 拉取的建议数量,server可根据需要返回或多或少,不能作为完成与否的标志
    }
    ```
 */
interface GetPendencyListParams {
    params: {
        group_pendency_option_start_time: number;
        group_pendency_option_max_limited: number;
    };
    data?: string;
}
/**
 * @brief 获取群未决信息列表的返回
 * @param group_pendency_result_next_start_time group_pendency_result_next_start_time:下一次拉取的起始时戳,server返回0表示没有更多的数据,否则在下次获取数据时以这个时间戳作为开始时间戳
 * @param group_pendency_result_read_time_seq group_pendency_result_read_time_seq:已读上报的时间戳
 * @param group_pendency_result_unread_num group_pendency_result_unread_num:未决请求的未读数
 * @param group_pendency_result_pendency_array group_pendency_result_pendency_array:群未决信息列表
 */
interface GroupPendencyResult {
    group_pendency_result_next_start_time: number;
    group_pendency_result_read_time_seq: number;
    group_pendency_result_unread_num: number;
    group_pendency_result_pendency_array: Array<GroupPendency>;
}
/**
 * @param {number} timeStamp timeStamp:已读时间戳(单位秒)。与GroupPendency键 kTIMGroupPendencyAddTime 指定的时间比较
 * @param {string} data data: 用户自定义消息
 */
interface ReportParams {
    timeStamp: number;
    data?: string;
}
interface GroupPendency {
    group_pendency_group_id: string;
    group_pendency_form_identifier: string;
    group_pendency_add_time: number;
    group_pendency_to_identifier: string;
    group_pendency_pendency_type: number;
    group_pendency_handled: number;
    group_pendency_handle_result: number;
    group_pendency_apply_invite_msg: string;
    group_pendency_form_user_defined_data: string;
    group_pendency_approval_msg: string;
    group_pendency_to_user_defined_data: string;
    group_pendency_authentication: string;
    group_pendency_self_identifier: string;
    group_pendency_key: string;
}
/**
 * @brief 群未决消息
 * @param data data(可选)
 *
 * params参数如下
 * ```
 * @param params: {
        group_handle_pendency_param_is_accept?: boolean; // 选填, true表示接受，false表示拒绝。默认为false
        group_handle_pendency_param_handle_msg?: string; // 选填，同意或拒绝信息,默认为空字符串
        group_handle_pendency_param_pendency: {
            group_pendency_group_id: string; // 群组ID
            group_pendency_form_identifier: string; // 请求者的ID,例如：请求加群:请求者,邀请加群:邀请人
            group_pendency_add_time: number; // 未决信息添加时间
            group_pendency_to_identifier: string; // 判决者的ID,请求加群:"",邀请加群:被邀请人
            group_pendency_pendency_type: number; // 未决请求类型
            group_pendency_handled: number; // 群未决处理状态
            group_pendency_handle_result: number; // 群未决处理操作类型
            group_pendency_apply_invite_msg: string; // 申请或邀请附加信息
            group_pendency_form_user_defined_data: string; //  申请或邀请者自定义字段
            group_pendency_approval_msg: string; // 审批信息：同意或拒绝信息
            group_pendency_to_user_defined_data: string; // 审批者自定义字段
            group_pendency_authentication: string; // 签名信息，客户不用关心
            group_pendency_self_identifier: string; // 自己的ID
            group_pendency_key: string; // 签名信息，客户不用关心
        };
    };
        ```
 */
interface HandlePendencyParams {
    params: {
        group_handle_pendency_param_is_accept?: boolean;
        group_handle_pendency_param_handle_msg?: string;
        group_handle_pendency_param_pendency: GroupPendency;
    };
    data?: string;
}
/**
 * @param {string} groupId groupId:要查询的groupId
 * @param {string} data data: 用户自定义数据
 */
interface GetOnlineMemberCountParams {
    groupId: string;
    data?: string;
}
interface GetOnlineMemberCountResult {
    group_get_online_member_count_result: number;
}
/**
 * @brief  群搜索参数
 * @param  group_search_params_keyword_list group_search_params_keyword_list： 搜索关键字列表，最多支持5个
 * @param group_search_params_field_list group_search_params_field_list：搜索域列表表
 */
interface GroupSearchParams {
    group_search_params_keyword_list: Array<string>;
    group_search_params_field_list: Array<number>;
}
/**
 * @param  group_search_member_params_groupid_list group_search_member_params_groupid_list 列表，若为不填则搜索全部群中的群成员
 * @param group_search_member_params_keyword_list group_search_member_params_keyword_list：搜索关键字列表，最多支持5个
 * @param group_search_member_params_field_list group_search_member_params_field_list： 搜索域列表
 */
interface MemberSearchParams {
    group_search_member_params_groupid_list: Array<string>;
    group_search_member_params_keyword_list: Array<string>;
    group_search_member_params_field_list: Array<number>;
}
/**
 * @brief  群搜索参数
 * @param  group_attribute_key group_attribute_key 群属性 map 的 key
 * @param group_attribute_value group_attribute_value 群属性 map 的 value
 */
interface GroupAttributes {
    group_attribute_key: string;
    group_attribute_value: string;
}
interface SearchGroupParams {
    searchParams: GroupSearchParams;
    data?: string;
}
interface SearchMemberParams {
    searchParams: MemberSearchParams;
    data?: string;
}
interface SearchMemberResult {
    group_search_member_result_groupid: Array<String>;
    group_search_member_result_member_info_list: Array<GroupMemberInfo>;
}
/**
 * @param {string} groupId groupId:群组ID
 * @param attributes attributes： 群属性列表的参数
 * @param data data:用户自定义字段
 */
interface InitGroupAttributeParams {
    groupId: string;
    attributes: Array<GroupAttributes>;
    data?: string;
}
interface DeleteAttributeParams {
    groupId: string;
    attributesKey: Array<string>;
    data?: string;
}
/**
*@param conv_group_at_info_seq conv_group_at_info_seq:  @ 消息序列号，即带有 “@我” 或者 “@所有人” 标记的消息的序列号
 @param conv_group_at_info_at_type conv_group_at_info_at_type:@ 提醒类型,请参考[TIMGroupAtType]
*/
interface GroupAtInfo {
    conv_group_at_info_seq: number;
    conv_group_at_info_at_type: TIMGroupAtType;
}
interface MessageReceipt {
    msg_receipt_conv_id: string;
    msg_receipt_conv_type: TIMConvType;
    msg_receipt_msg_id: string;
    msg_receipt_time_stamp: number;
    msg_receipt_is_peer_read: boolean;
    msg_receipt_read_count: number;
    msg_receipt_unread_count: number;
}
/**
 @param callback callback：回调
 @param data data：用户自定义数据
*/
interface GroupTipsCallbackParams {
    callback: GroupTipCallBackFun;
    data?: string;
}
/**
 @param json_group_tip_array json_group_tip_array：群提示列表
 @param user_data user_data： ImSDK负责透传的用户自定义数据，未做任何处理
*/
interface GroupTipCallBackFun {
    (json_group_tip_array: string, user_data: string): void;
}
/**
 @param callback callback：回调
 @param data data：用户自定义数据
*/
interface GroupAttributeCallbackParams {
    callback: GroupAttributeCallbackFun;
    data?: string;
}
/**
*@param group_id group_id:  群组ID
 @param json_group_attibute_array json_group_attibute_array:变更的群属性列表
 @param user_data user_data:用于自定义数据
*/
interface GroupAttributeCallbackFun {
    (group_id: string, json_group_attibute_array: string, user_data: string): void;
}
interface TIMGroupCounterChangedCallback {
    (group_id: string, group_counter_key: string, group_counter_new_value: number, user_data: string): void;
}
interface GroupCounterChangedParam {
    callback: TIMGroupCounterChangedCallback;
    user_data?: string;
}
interface TIMGroupTopicCreatedCallback {
    (group_id: string, topic_id: string, user_data: string): void;
}
interface TopicCreatedParam {
    callback: TIMGroupTopicCreatedCallback;
    user_data?: string;
}
interface TIMGroupTopicDeletedCallback {
    (group_id: string, topic_id_array: string, user_data: string): void;
}
interface TopicDeletedParam {
    callback: TIMGroupTopicDeletedCallback;
    user_data?: string;
}
interface TIMGroupTopicChangedCallback {
    (group_id: string, topic_info: string, user_data: string): void;
}
interface TopicChangedParam {
    callback: TIMGroupTopicChangedCallback;
    user_data?: string;
}
interface CommunityReceiveTopicRESTCustomDataCallback {
    (topic_id: string, custom_data: string, user_data: string): void;
}
interface CommunityReceiveTopicRESTCustomDataCallbackParam {
    callback: CommunityReceiveTopicRESTCustomDataCallback;
    user_data?: string;
}
interface MsgSendGroupMessageReceiptsParam {
    json_msg_array: string;
    user_data: string;
}
interface MsgGetGroupMessageReceiptsParam {
    json_msg_array: string;
    user_data: string;
}
interface MsgGetGroupMessageReadMembersParam {
    json_msg: string;
    filter: number;
    next_seq: string;
    count: number;
    user_data: string;
}
interface CreateGroupResult {
    create_group_result_groupid: string;
}
interface GetCommunityListParam {
    user_data?: string;
}
/**
 * @param group_topic_info_topic_id 读写, 话题 ID，话题的ID为固定格式（群名+@TOPIC#_话题ID，如：@TGS#_123@TOPIC#_topicname）
 * @param group_topic_info_topic_name 读写, 话题名称
 * @param group_topic_info_introduction 读写, 话题介绍
 * @param group_topic_info_notification 读写, 话题公告
 * @param group_topic_info_topic_face_url 读写, 话题头像
 * @param group_topic_info_is_all_muted 读写, 话题全员禁言
 * @param group_topic_info_self_mute_time 读写, 当前用户在话题中的禁言时间
 * @param group_topic_info_custom_string 读写, 话题自定义字段
 * @param group_topic_info_recv_opt 只读，话题消息接收选项，修改话题消息接收选项请调用 setGroupReceiveMessageOpt 接口
 * @param group_topic_info_draft_text 读写, 话题草稿
 * @param group_topic_info_unread_count 只读, 话题消息未读数量
 * @param group_topic_info_last_message 只读, 话题 lastMessage
 * @param group_topic_info_group_at_info_array 只读, 话题 at 信息列表
 * @param group_modify_info_param_modify_flag 只写(必填), 修改标识,可设置多个值按位或
 */
interface GroupTopicInfo {
    group_topic_info_topic_id: string;
    group_topic_info_topic_name: string;
    group_topic_info_introduction?: string;
    group_topic_info_notification?: string;
    group_topic_info_topic_face_url?: string;
    group_topic_info_is_all_muted?: boolean;
    group_topic_info_self_mute_time?: number;
    group_topic_info_custom_string?: string;
    group_topic_info_recv_opt?: TIMReceiveMessageOpt;
    group_topic_info_draft_text?: string;
    group_topic_info_unread_count?: number;
    group_topic_info_last_message?: Json_value_msg;
    group_topic_info_group_at_info_array?: GroupAtInfo[];
    group_modify_info_param_modify_flag?: TIMGroupModifyInfoFlag;
}
/**
 * @param group_id 社群 ID，必须以 @TGS#_ 开头。
 * @param json_topic_info 话题信息，具体参考GroupTopicInfo
 */
interface CreateTopicParam {
    group_id: string;
    json_topic_info: GroupTopicInfo;
    user_data?: string;
}
/**
 * @param json_topic_info 话题信息，具体参考GroupTopicInfo
 */
interface SetTopicInfoParam {
    json_topic_info: GroupTopicInfo;
    user_data?: string;
}
/**
 * @param group_topic_operation_result_error_code 只读, 结果 0：成功；非0：失败
 * @param group_topic_operation_result_error_message 只读, 如果删除失败，会返回错误信息
 * @param group_topic_operation_result_topic_id 只读, 如果删除成功，会返回对应的 topicID
 */
interface TopicOperationResult {
    group_topic_operation_result_error_code: number;
    group_topic_operation_result_error_message: string;
    group_topic_operation_result_topic_id: string;
}
/**
 * @param group_id 群 ID
 * @param json_topic_id_array 话题 ID 列表
 */
interface DeleteTopicParam {
    group_id: string;
    json_topic_id_array: string[];
    user_data?: string;
}
/**
 * @param group_topic_info_result_error_code 只读, 结果 0：成功；非0：失败
 * @param group_topic_info_result_error_message 只读, 如果删除失败，会返回错误信息
 * @param group_topic_info_result_topic_info 只读, 如果获取成功，会返回对应的 info
 */
interface GroupTopicInfoResult {
    group_topic_info_result_error_code: number;
    group_topic_info_result_error_message: string;
    group_topic_info_result_topic_info: GroupTopicInfo;
}
/**
 * @brief 群组系统消息-群组信息修改
 * @param group_tips_group_change_info_flag 只读, 群消息修改群信息标志 [TIMGroupTipGroupChangeFlag]
 * @param group_tips_group_change_info_value  只读, 修改的后值,不同的 info_flag 字段,具有不同的含义
 * @param group_tips_group_change_info_key 只读, 自定义信息对应的 key 值，只有 info_flag 为 kTIMGroupTipChangeFlag_Custom 时有效
 * @param group_tips_group_change_info_bool_value 只读, 根据变更类型表示不同的值，当前只有 info_flag 为 kTIMGroupTipChangeFlag_ShutupAll 时有效
 * @param group_tips_group_change_info_int_value 只读，根据变更类型表示不同的值
 * note 仅针对以下类型有效：
//  - 从 6.5 版本开始，当 info_flag 为 kTIMGroupTipChangeFlag_MessageReceiveOpt 时，该字段标识了群消息接收选项发生了变化，其取值详见 [TIMReceiveMessageOpt](TIMCloudComm.h)
//  - 从 6.5 版本开始，当 info_flag 为 kTIMGroupTipChangeFlag_GroupAddOpt 时，该字段标识了申请加群审批选项发生了变化，其取值详见 [TIMGroupAddOption]()
//  - 从 7.1 版本开始，当 info_flag 为 kTIMGroupTipChangeFlag_GroupApproveOpt 时，该字段标识了邀请进群审批选项发生了变化，取值类型详见 [TIMGroupAddOption]()
 */
interface GroupTipGroupChangeInfo {
    group_tips_group_change_info_flag: TIMGroupTipGroupChangeFlag;
    group_tips_group_change_info_value: string;
    group_tips_group_change_info_key: string;
    group_tips_group_change_info_bool_value: boolean;
    group_tips_group_change_info_int_value: number;
}
/**
 * @param group_tips_member_mark_change_info_enableMark 只读, 群成员被标记或取消标记
 * @param group_tips_member_mark_change_info_markType 只读, 标记类型
 * @param group_tips_member_mark_change_info_userIDList 只读, 群成员 userID 列表
 */
interface GroupTipMemberChangeInfo {
    group_tips_member_mark_change_info_enableMark: boolean;
    group_tips_member_mark_change_info_markType: number;
    group_tips_member_mark_change_info_userIDList: string;
}
interface TIMCommunityCreatePermissionGroupCallback {
    (group_id: string, permission_group_info: string, user_data: string): void;
}
interface CommunityCreatePermissionGroupCallbackParam {
    callback: TIMCommunityCreatePermissionGroupCallback;
    user_data?: string;
}
interface TIMCommunityDeletePermissionGroupCallback {
    (group_id: string, permission_group_id_array: string, user_data: string): void;
}
interface CommunityDeletePermissionGroupCallbackParam {
    callback: TIMCommunityDeletePermissionGroupCallback;
    user_data?: string;
}
interface TIMCommunityChangePermissionGroupInfoCallback {
    (group_id: string, permission_group_info: string, user_data: string): void;
}
interface CommunityChangePermissionGroupInfoCallbackParam {
    callback: TIMCommunityChangePermissionGroupInfoCallback;
    user_data?: string;
}
/**
 * @breif 权限组信息
 * @param community_group_id 社群ID
 * @param permission_group_id 权限组ID, 只能在创建话题或者修改话题信息的时候设置。
 * @param permission_group_name 权限组名称
 * @param permission_custom_data 权限组自定义数据
 * @param group_permission 权限组权限,V2TIMCommunityPermissionValue
 * @param permission_group_member_count 只读,权限组成员数量
 * @param permission_group_modify_info_flag 权限组信息修改标识,TIMPermissionGroupModifyInfoFlag
 */
interface PermissionGroupInfo {
    community_group_id: string;
    permission_group_id?: string;
    permission_group_name?: string;
    permission_custom_data?: string;
    group_permission?: number;
    permission_group_member_count?: number;
    permission_group_modify_info_flag?: number;
}
interface CreatePermissionGroupInCommunityParam {
    json_permission_group_info: PermissionGroupInfo;
    user_data?: string;
}
/**
 * @param group_id 群组ID
 * @param json_permission_group_info 权限组ID列表
 */
interface DeletePermissionGroupFromCommunity {
    group_id: string;
    json_permission_group_id_array: string[];
    user_data?: string;
}
interface GetJoinedPermissionGroupListInCommunityParam {
    group_id: string;
    user_data?: string;
}
interface GetPermissionGroupListInCommunityParam {
    group_id: string;
    json_permission_group_id_array: string[];
    user_data?: string;
}
interface AddCommunityMembersToPermissionGroupParam {
    group_id: string;
    permission_group_id: string;
    json_member_id_array: string[];
    user_data?: string;
}
interface GetCommunityMemberListInPermissionGroupParam {
    group_id: string;
    permission_group_id: string;
    next_cursor: string;
    user_data?: string;
}
/**
 * @param topic_permission_key topic ID
 * @param topic_permission_value V2TIMTopicPermissionValue
 */
interface TopicPermissionMap {
    topic_permission_key: string;
    topic_permission_value: number;
}
interface AddTopicPermissionToPermissionGroupParam {
    group_id: string;
    permission_group_id: string;
    json_topic_permission_map: TopicPermissionMap[];
    user_data?: string;
}
interface DeleteTopicPermissionFromPermissionGroupParam {
    group_id: string;
    permission_group_id: string;
    json_topic_id_array: string[];
    user_data?: string;
}
/**
 * @brief 获取指定群话题信息结果
 * @param group_topic_info_topic_id 读写, 话题 ID, 只能在创建话题或者修改话题信息的时候设置。组成方式为：社群 ID + @TOPIC#_xxx，例如社群 ID 为 @TGS#_123，则话题 ID 为 @TGS#_123@TOPIC#_xxx
 * @param group_topic_info_topic_name 读写, 话题名称。
 * @param group_topic_info_introduction 读写, 话题介绍。
 * @param group_topic_info_notification 读写, 话题公告
 * @param group_topic_info_topic_face_url 读写, 话题头像
 * @param group_topic_info_is_all_muted 读写, 话题全员禁言
 * @param group_topic_info_self_mute_time 读写, 当前用户在话题中的禁言时间
 * @param group_topic_info_custom_string 读写, 自定义数据
 * @param group_topic_info_recv_opt 只读，话题消息接收选项，修改话题消息接收选项请调用 setGroupReceiveMessageOpt 接口
 * @param group_topic_info_draft_text 读写，话题草稿
 * @param group_topic_info_unread_count 只读，话题未读消息数量
 * @param group_topic_info_last_message 只读，话题最后一条消息
 * @param group_topic_info_group_at_info_array 只读，话题 at 信息列表
 * @param group_modify_info_param_modify_flag TIMGroupModifyInfoFlag, 只写(必填), 修改标识,可设置多个值按位或
 */
interface TIMGroupTopicInfo {
    group_topic_info_topic_id: string;
    group_topic_info_topic_name: string;
    group_topic_info_introduction: string;
    group_topic_info_notification: string;
    group_topic_info_topic_face_url: string;
    group_topic_info_is_all_muted: boolean;
    group_topic_info_self_mute_time: number;
    group_topic_info_custom_string: string;
    group_topic_info_recv_opt: TIMReceiveMessageOpt;
    group_topic_info_draft_text: boolean;
    group_topic_info_unread_count: number;
    group_topic_info_last_message: Json_value_msg;
    group_topic_info_group_at_info_array: GroupAtInfo[];
    group_modify_info_param_modify_flag: number;
}
/**
 * @brief 获取权限组信息的结果
 * @param permission_group_info_result_error_code 只读, 结果 0：成功；非0：失败
 * @param permission_group_info_result_error_message 只读, 如果删除失败，会返回错误信息
 * @param permission_group_info_result 只读, 如果获取成功，会返回对应的TIMGroupTopicInfo 信息
 */
interface PermissionGroupInfoResult {
    permission_group_info_result_error_code: number;
    permission_group_info_result_error_message: string;
    permission_group_info_result: TIMGroupTopicInfo;
}
/**
 * @brief 权限组操作结果
 * @param permission_group_operation_result_error_code 只读, 结果 0：成功；非0：失败
 * @param permission_group_operation_result_error_message 只读, 如果删除失败，会返回错误信息
 * @param permission_group_operation_result_id 只读, 如果删除成功，会返回对应的 permissionGroupID
 */
interface PermissionGroupOperationResult {
    permission_group_operation_result_error_code: number;
    permission_group_operation_result_error_message: string;
    permission_group_operation_result_id: string;
}
/**
 * @brief 权限组成员处理结果
 * @param permission_group_member_operation_result_identifier 只读, 被邀请加入权限组的用户 ID
 * @param permission_group_member_operation_result_error_code 只读,  TIMPermissionGroupMemberOperationResult, 处理结果
 */
interface PermissionGroupMemberOperationResult {
    permission_group_member_operation_result_identifier: string;
    permission_group_member_operation_result_error_code: number;
}
/**
 * @brief 获取权限组成员列表接口的返回
 * @param permission_group_member_info_result_next_cursor 只读, 下一次拉取的标志, server返回空表示没有更多的数据,否则在下次获取数据时填入这个标志
 * @param permission_group_member_info_result_array 只读, 成员信息列表
 */
interface PermissionGroupMemberInfoResult {
    permission_group_member_info_result_next_cursor: string;
    permission_group_member_info_result_array: GroupMemberInfo[];
}
/**
 * @brief 获取话题权限列表接口的返回
 * @param topic_permission_result_error_code 只读, 结果 0：成功；非0：失败
 * @param topic_permission_result_error_message 只读, 如果获取失败，会返回错误信息
 * @param topic_permission_result_topic_id 只读, 话题id
 * @param topic_permission_result_topic_permission 只读, 权限
 * @param topic_permission_result_group_id 只读, 群id
 * @param topic_permission_result_permission_group_id 只读, 权限组id
 */
interface TopicPermissionResult {
    topic_permission_result_error_code: number;
    topic_permission_result_error_message: string;
    topic_permission_result_topic_id: string;
    topic_permission_result_topic_permission: number;
    topic_permission_result_group_id: string;
    topic_permission_result_permission_group_id: string;
}
interface TIMCommunityAddMembersToPermissionGroupCallback {
    (group_id: string, json_result: string, user_data: string): void;
}
interface AddMembersToPermissionGroupCallbackParam {
    callback: TIMCommunityAddMembersToPermissionGroupCallback;
    user_data?: string;
}
interface TIMCommunityRemoveMembersFromPermissionGroupCallback {
    (group_id: string, json_result: string, user_data: string): void;
}
interface RemoveMembersFromPermissionGroupCallbackParam {
    callback: TIMCommunityRemoveMembersFromPermissionGroupCallback;
    user_data?: string;
}
interface TIMCommunityAddTopicPermissionCallback {
    (group_id: string, json_result: string, user_data: string): void;
}
interface AddTopicPermissionCallbackParam {
    callback: TIMCommunityAddTopicPermissionCallback;
    user_data?: string;
}
interface TIMCommunityDeleteTopicPermissionCallback {
    (group_id: string, json_result: string, user_data: string): void;
}
interface DeleteTopicPermissionCallbackParam {
    callback: TIMCommunityDeleteTopicPermissionCallback;
    user_data?: string;
}
interface TIMCommunityModifyTopicPermissionCallback {
    (group_id: string, json_result: string, user_data: string): void;
}
interface ModifyTopicPermissionCallbackParam {
    callback: TIMCommunityModifyTopicPermissionCallback;
    user_data?: string;
}

interface CommonCallbackFun {
    (code: number, desc: string, json_param: string, user_data?: any): void;
}
interface commonResult<T> {
    code: TIMResult | TIMErrCode;
    desc?: string | undefined;
    json_param?: T | undefined;
    json_params?: T | undefined;
    user_data?: string | undefined;
}
/**
 * @param {number} status 网络状态，请参考[TIMNetworkStatus](TIMCloudDef.h)
 * @param {code} code 值为ERR_SUCC表示成功，其他值表示失败。详情请参考 [错误码](https://cloud.tencent.com/document/product/269/1671)
 * @param {string} desc 错误描述字符串
 * @param {string} user_data ImSDK负责透传的用户自定义数据，未做任何处理
 */
interface TIMSetNetworkStatusListenerCallback {
    (status: number, code: number, desc: string, user_data?: any): void;
}
/**
 * @param {string} user_data ImSDK负责透传的用户自定义数据，未做任何处理
 * @return {void}
 *
 */
interface TIMSetKickedOfflineCallback {
    (user_data: string): void;
}
interface TIMSetUserSigExpiredCallback {
    (user_data: string): void;
}
/**
 * @param json_user_profile 当前用户的资料，请参考[TIMUserStatus]
 */
interface TIMSelfInfoUpdatedCallback {
    (json_user_profile: string, user_data?: string): void;
}
interface TIMSetSelfInfoUpdatedCallbackParam {
    callback: TIMSelfInfoUpdatedCallback;
    user_data?: string;
}
interface TIMUserStatusChangedCallback {
    (json_user_status_array: string, user_data?: string): void;
}
interface TIMSetUserStatusChangedCallbackParam {
    callback: TIMUserStatusChangedCallback;
    user_data?: string;
}
/**
 * @param {TIMSetNetworkStatusListenerCallback} callback callback
 * @param {string} user_data user_data户自定义数据，ImSDK只负责传回给回调函数cb，不做任何处理
 */
interface TIMSetNetworkStatusListenerCallbackParam {
    callback: TIMSetNetworkStatusListenerCallback;
    userData: string;
}
/**
 * @brief 设置被踢下线通知回调
 * @param {TIMSetKickedOfflineCallback} callback callback 踢下线回调
 * @param {string} userData userData用户自定义数据，ImSDK只负责传回给回调函数cb，不做任何处理
 *
 */
interface TIMSetKickedOfflineCallbackParam {
    callback: TIMSetKickedOfflineCallback;
    userData: string;
}
interface TIMSetUserSigExpiredCallbackParam {
    callback: TIMSetUserSigExpiredCallback;
    userData: string;
}
/**
 * @param {number} level 日志级别
 * @param {string} log 日志字符串
 * @param {string} user_data ImSDK负责透传的用户自定义数据，未做任何处理
 */
interface TIMLogCallbackFun {
    (level: number, log: string, user_data: string): void;
}
/**
 * @prop {string} user_data  user_data(可选参数)
 * @param {TIMLogCallbackFun} callback callback
 */
interface TIMSetLogCallbackParam {
    callback: TIMLogCallbackFun;
    user_data?: string;
}
interface GroupGetInfoConfig {
    group_get_info_option_info_flag?: TIMGroupGetInfoFlag;
    group_get_info_option_custom_array?: Array<string>;
}
/**
 * @prop {number} group_member_get_info_option_info_flag  group_member_get_info_option_info_flag:根据想要获取的信息过滤，默认值为0xffffffff(获取全部信息)
 * @param {number} group_member_get_info_option_role_flag group_member_get_info_option_role_flag:根据成员角色过滤，默认值为kTIMGroupMemberRoleFlag_All，获取所有角色
 * @param {Array<string>} group_member_get_info_option_custom_array 请参考[自定义字段](https://cloud.tencent.com/document/product/269/1502#.E8.87.AA.E5.AE.9A.E4.B9.89.E5.AD.97.E6.AE.B5)
 */
interface GroupMemberInfoOption {
    group_member_get_info_option_info_flag?: number;
    group_member_get_info_option_role_flag?: number;
    group_member_get_info_option_custom_array?: Array<string>;
}
/**
 * @brief 用于配置信息
 * @param {boolean} user_config_is_read_receipt user_config_is_read_receipt：true表示要收已读回执事件
 * @param {boolean} user_config_is_sync_report user_config_is_sync_report：true表示服务端要删掉已读状态
 * @param {boolean} user_config_is_ignore_grouptips_unread user_config_is_ingore_grouptips_unread：true表示群tips不计入群消息已读计数
 * @param {boolean} user_config_is_is_disable_storage user_config_is_is_disable_storage：是否禁用本地数据库，true表示禁用，false表示不禁用。默认是false
 * @param {boolean} user_config_group_getinfo_option user_config_group_getinfo_option：获取群组信息默认选项
 * @param {boolean} user_config_group_member_getinfo_option user_config_group_member_getinfo_option：获取群组成员信息默认选项
 */
interface UserConfig {
    user_config_is_read_receipt?: boolean;
    user_config_is_sync_report?: boolean;
    user_config_is_ignore_grouptips_unread?: boolean;
    user_config_is_is_disable_storage?: boolean;
    user_config_group_getinfo_option?: GroupGetInfoConfig;
    user_config_group_member_getinfo_option?: GroupMemberInfoOption;
}
/**
 * @param {string} http_proxy_info_ip http_proxy_info_ip：代理的IP
 * @param {number} http_proxy_info_port http_proxy_info_port:代理的端口
 * @param {string} http_proxy_info_username http_proxy_info_username:认证的用户名
 * @param {string} http_proxy_info_password   http_proxy_info_password: 认证的密码
 */
interface HttpProxyInfo {
    http_proxy_info_ip?: string;
    http_proxy_info_port?: number;
    http_proxy_info_username?: string;
    http_proxy_info_password?: string;
}
/**
 * @param {string} socks5_proxy_info_ip socks5_proxy_info_ip：代理的IP
 * @param {number} socks5_proxy_info_port socks5_proxy_info_port:代理的端口
 * @param {string} socks5_proxy_info_username socks5_proxy_info_username:认证的用户名
 * @param {string} socks5_proxy_info_password socks5_proxy_info_password:认证的密码
 */
interface Socks5ProxyInfo {
    socks5_proxy_info_ip?: string;
    socks5_proxy_info_port?: number;
    socks5_proxy_info_username?: string;
    socks5_proxy_info_password?: string;
}
/**
 * @param {TIMLogLevel} set_config_log_level set_config_log_level：日志级别
 * @param {set_config_callback_log_level} set_config_callback_log_level set_config_callback_log_level:日志回调的日志级别
 * @param {boolean} set_config_is_log_output_console set_config_is_log_output_console:是否输出到控制台，默认为 true
 * @param {UserConfig} set_config_user_config   set_config_user_config: 用户配置
 * @param {string} set_config_user_define_data set_config_user_define_data: 自定义数据，如果需要，初始化前设置
 * @param {HttpProxyInfo} set_config_http_proxy_info set_config_http_proxy_info: 设置HTTP代理，如果需要，在发送图片、文件、语音、视频前设置
 * @param {Socks5ProxyInfo} set_config_socks5_proxy_info set_config_socks5_proxy_info:  设置SOCKS5代理，如果需要，初始化前设置
 * @param {boolean} set_config_is_only_local_dns_source set_config_is_only_local_dns_source: 如果为true，SDK内部会在选择最优IP时只使用LocalDNS
 */
interface JSONCongfig {
    set_config_log_level?: TIMLogLevel;
    set_config_callback_log_level?: TIMLogLevel;
    set_config_is_log_output_console?: boolean;
    set_config_user_config?: UserConfig;
    set_config_user_define_data?: string;
    set_config_http_proxy_info?: HttpProxyInfo;
    set_config_socks5_proxy_info?: Socks5ProxyInfo;
    set_config_is_only_local_dns_source?: boolean;
}
/**
 * @brief 服务器地址
 * @param {string} server_address_ip server_address_ip：服务器 IP
 * @param {number} server_address_port server_address_port：服务器端口
 */
interface ServerAddress {
    server_address_ip: string;
    server_address_port: number;
}
/**
 * @brief 自定义服务器信息
 * @param {Array<ServerAddress>} longconnection_address_array longconnection_address_array：array [ServerAddress](), 长连接服务器地址列表
 * @param {Array<ServerAddress>} shortconnection_address_array shortconnection_address_array：array [ServerAddress](), 只读, 短连接服务器地址列表
 * @param {string} server_public_key server_public_key：string, 只写(必填), 服务器公钥
 */
interface PrivatizationInfo {
    longconnection_address_array?: Array<ServerAddress>;
    shortconnection_address_array?: Array<ServerAddress>;
    server_public_key: string;
}
/**
 * @param {PrivatizationInfo} request_internal_operation request_internal_operation: 内部接口的操作类型
 *  @param {PrivatizationInfo} request_set_custom_server_info_param request_set_custom_server_info_param:自定义服务器信息, 当 kTIMRequestInternalOperation 为 kTIMInternalOperationSetCustomServerInfo 时需要设置
 */
interface callExperimentalAPIJsonParam {
    request_internal_operation: string;
    request_set_ui_platform_param?: number;
    request_set_custom_server_info_param?: PrivatizationInfo;
}
/**
 * @param {JSONCongfig}  json_config json_config:设置额外的用户配置
 * @param {CommonCallbackFun} callback callback:回调函数
 * @param {string} user_data user_data:用户自定义数据，ImSDK只负责传回给回调函数cb，不做任何处理
 */
interface TIMSetConfigParam {
    json_config: JSONCongfig;
    callback: CommonCallbackFun;
    user_data: string;
}
/**
 * @param {callExperimentalAPIJsonParam} callExperimentalAPIJsonParam callExperimentalAPIJsonParam
 * @param {string} user_data user_data: 用户自定义数据
 */
interface callExperimentalAPIParam {
    json_param: callExperimentalAPIJsonParam;
    user_data?: string;
}
/**
 * @param {Array<string>} friendship_getprofilelist_param_identifier_array friendship_getprofilelist_param_identifier_array:想要获取目标用户资料的UserID列表
 * @param {boolean} friendship_getprofilelist_param_force_update friendship_getprofilelist_param_force_update: 是否强制更新。false表示优先从本地缓存获取，获取不到则去网络上拉取。true表示直接去网络上拉取资料。默认为false
 */
interface jsonGetUserProfileListParam {
    friendship_getprofilelist_param_identifier_array: Array<string>;
    friendship_getprofilelist_param_force_update: boolean;
}
/**
 * @param {jsonGetUserProfileListParam} json_get_user_profile_list_param json_get_user_profile_list_param:获取指定用户列表的用户资料接口参数的Json字符串
 * @param {string} user_data user_data: 用户自定义数据，ImSDK只负责传回给回调函数cb，不做任何处理
 *
 *> jsonGetUserProfileListParam的interface：
 *>```
 *>   jsonGetUserProfileListParam:
 *>  {
 *>   friendship_getprofilelist_param_identifier_array: Array<string>;  //获取指定用户列表的用户资料接口参数的Json字符串
 *>   friendship_getprofilelist_param_force_update: boolean;  //用户自定义数据，ImSDK只负责传回给回调函数cb，不做任何处理
 *>  }
 *>```
 */
interface TIMProfileGetUserProfileListParam {
    json_get_user_profile_list_param: jsonGetUserProfileListParam;
    user_data: string;
}
/**
 * @brief 用户自定义资料字段，字符串
 *
 * @note
 * 字符串长度不得超过500字节
 * @param {string} user_profile_custom_string_info_key user_profile_custom_string_info_key:用户自定义资料字段的key值（包含前缀Tag_Profile_Custom_）
 * @param {string} user_profile_custom_string_info_value user_profile_custom_string_info_value:该字段对应的字符串值
 */
interface UserProfileCustemStringInfo {
    user_profile_custom_string_info_key: string;
    user_profile_custom_string_info_value: string;
}
/**
 * @brief 自身资料可修改的各个项
 * @param {string} user_profile_item_nick_name user_profile_item_nick_name:修改用户昵称
 * @param {string} user_profile_item_gender user_profile_item_gender:修改用户性别
 * @param {string} user_profile_item_face_url user_profile_item_face_url:修改用户头像
 * @param {string} user_profile_item_self_signature user_profile_item_self_signature:修改用户签名
 * @param {string} user_profile_item_add_permission user_profile_item_add_permission:修改用户加好友的选项
 * @param {string} user_profile_item_location user_profile_item_location:修改位置
 * @param {string} user_profile_item_language user_profile_item_language:修改语言
 * @param {string} user_profile_item_birthday user_profile_item_birthday:修改生日
 * @param {string} user_profile_item_level user_profile_item_level:修改等级
 * @param {string} user_profile_item_role user_profile_item_role:修改角色
 * @param {string} user_profile_item_custom_string_array user_profile_item_custom_string_array:修改[自定义资料字段](https://cloud.tencent.com/document/product/269/1500#.E8.87.AA.E5.AE.9A.E4.B9.89.E8.B5.84.E6.96.99.E5.AD.97.E6.AE.B5)
 */
interface UserProfileItem {
    user_profile_item_nick_name?: string;
    user_profile_item_gender?: TIMGenderType;
    user_profile_item_face_url?: string;
    user_profile_item_self_signature?: string;
    user_profile_item_add_permission?: TIMProfileAddPermission;
    user_profile_item_location?: number;
    user_profile_item_language?: number;
    user_profile_item_birthday?: number;
    user_profile_item_level?: number;
    user_profile_item_role?: number;
    user_profile_item_custom_string_array?: Array<UserProfileCustemStringInfo>;
}
/**
 *
 * @param {UserProfileItem} json_modify_self_user_profile_param  json_modify_self_user_profile_param:修改自己的资料接口参数的Json字符串
 * @param {string} user_data user_data:修改自己的资料接口参数的Json字符串
 *
 *> UserProfileItem的interface：
 *>```
interface UserProfileItem {
    user_profile_item_nick_name?: string; //修改用户昵称
    user_profile_item_gender?: TIMGenderType; //修改用户性别
    user_profile_item_face_url?: string; // 修改用户头像
    user_profile_item_self_signature?: string; // 修改用户签名
    user_profile_item_add_permission?: TIMProfileAddPermission; // 修改用户加好友的选项
    user_profile_item_location?: number; // 修改位置
    user_profile_item_language?: number; // 修改语言
    user_profile_item_birthday?: number; // 修改生日
    user_profile_item_level?: number; // 修改等级
    user_profile_item_role?: number; // 修改角色
    user_profile_item_custom_string_array?: Array<UserProfileCustemStringInfo>; // 修改[自定义资料字段](https://cloud.tencent.com/document/product/269/1500#.E8.87.AA.E5.AE.9A.E4.B9.89.E8.B5.84.E6.96.99.E5.AD.97.E6.AE.B5)
}
 *>```
 */
interface TIMProfileModifySelfUserProfileParam {
    json_modify_self_user_profile_param: UserProfileItem;
    user_data: string;
}
interface initParam {
    config_path?: string;
    electron_log?: boolean;
}
interface userStatusParam {
    id_array: string[];
    user_data?: string;
}
/**
 * @brief 用户状态
 * @param user_status_identifier 只读, 用户 ID
 * @param user_status_status_type 用户的状态,请参考TIMUserStatusType
 * @param user_status_custom_status 用户的自定义状态
 */
interface userStatus {
    user_status_identifier: string;
    user_status_status_type: number;
    user_status_custom_status: string;
}
interface setSelfStatusParam {
    status: {
        user_status_custom_status: string;
    };
    user_data?: string;
}
/**
 * @param json_user_id_list 待订阅的用户ID列表
 */
interface SubscribeUserInfoParam {
    json_user_id_list: string[];
    user_data?: string;
}
/**
 * @param json_user_info_array 用户资料更新列表，用户资料请参考[UserProfile]
 */
interface TIMUserInfoChangedCallback {
    (json_user_info_array: string, user_data: string): void;
}
interface UserInfoChangedCallbackParam {
    callback: TIMUserInfoChangedCallback;
    user_data?: string;
}

/**
 *@param userID userID用户的UserID
 * @param userSig userSig用户的UserSig
 * @param userData userData用户自定义数据，ImSDK只负责传回给回调函数cb，不做任何处理(可选参数)
 */
interface loginParam {
    userID: string;
    userSig: string;
    userData?: string;
}
/**
 * @param userData userData用户自定义数据，ImSDK只负责传回给回调函数cb，不做任何处理(可选参数)
 */
interface logoutParam {
    userData?: string;
}

interface GetFriendProfileListParams {
    user_data?: string;
}
/**
* @brief 添加好友接口的参数
* @param params params
* @param user_data user_data: 用户自定义数据
* ```
*    params: {
        friendship_add_friend_param_identifier?: string; // 请求加好友对应的UserID
        friendship_add_friend_param_friend_type?: TIMFriendType; // 请求添加好友的好友类型
        friendship_add_friend_param_remark?: string; // 预备注
        friendship_add_friend_param_group_name?: string; // 预分组名
        friendship_add_friend_param_add_source?: string; // 加好友来源描述
        friendship_add_friend_param_add_wording?: string; // 加好友附言
    };
*
* ```
*/
interface AddFriendParams {
    params: {
        friendship_add_friend_param_identifier?: string;
        friendship_add_friend_param_friend_type?: TIMFriendType;
        friendship_add_friend_param_remark?: string;
        friendship_add_friend_param_group_name?: string;
        friendship_add_friend_param_add_source?: string;
        friendship_add_friend_param_add_wording?: string;
    };
    user_data?: string;
}
/**
* @brief 删除好友接口的参数
* @param user_data user_data: 用户自定义数据
* @param params params参数如下
* ```
*    params: {
        friendship_delete_friend_param_friend_type?: TIMFriendType; // 删除好友，指定删除的好友类型
        friendship_delete_friend_param_identifier_array?: [string]; // 删除好友UserID列表
    };
*
* ```
*/
interface DeleteFriendParams {
    params: {
        friendship_delete_friend_param_friend_type?: TIMFriendType;
        friendship_delete_friend_param_identifier_array?: [string];
    };
    user_data?: string;
}
/**
* @brief 修改好友资料接口的参数
* @param params params
* @param user_data user_data: 用户自定义数据
* ```
*    params: {
        friendship_modify_friend_profile_param_identifier?: string; // 被修改的好友的UserID
        friendship_modify_friend_profile_param_item?: FriendProfileItem; // 修改的好友资料各个选项
    };
*
* ```
*/
interface ModifyFriendProfileParams {
    params: {
        friendship_modify_friend_profile_param_identifier?: string;
        friendship_modify_friend_profile_param_item?: FriendProfileItem;
    };
    user_data?: string;
}
/**
* @brief 检测好友的类型接口的参数
* @param user_data user_data: 用户自定义数据
* @param params params的参数如下
* ```
*    params: {
        friendship_check_friendtype_param_check_type?: TIMFriendType; // 要检测的好友类型
        friendship_check_friendtype_param_identifier_array?: [string]; // 要检测的好友UserID列表
    };
*
* ```
*/
interface CheckFriendTypeParams {
    params: {
        friendship_check_friendtype_param_check_type?: TIMFriendType;
        friendship_check_friendtype_param_identifier_array?: [string];
    };
    user_data?: string;
}
/**
* @brief 好友分组信息
* @param user_data user_data: 用户自定义数据
* @param params params参数如下展示：
* ```
*    params: {
        friendship_create_friend_group_param_name_array?: [string]; // 创建分组的名称列表
        friendship_create_friend_group_param_identifier_array?: [string]; // 要放到创建的分组的好友UserID列表
    };
*
* ```
*/
interface CreateFriendGroupParams {
    params: {
        friendship_create_friend_group_param_name_array?: [string];
        friendship_create_friend_group_param_identifier_array?: [string];
    };
    user_data?: string;
}
/**
 * @param user_data user_data:用户自定义数据
 * @param params params 要删除的分组GroupNameList/黑名单是userIDList/好友也是userIDList
 */
interface FriendshipStringArrayParams {
    params: string[];
    user_data?: string;
}
/**
 * @param user_data user_data:用户自定义数据
 */
interface GetBlackListParams {
    user_data?: string;
}
/**
* @brief 好友添加的响应
* @param params params
* @param user_data user_data: 用户自定义数据
* ```
*    params: {
        friend_response_identifier?: string; // 响应好友添加的UserID
        friend_response_action?: TIMFriendResponseAction; // 响应好友添加的动作
        friend_response_remark?: string; // 好友备注
        friend_response_group_name?: string; // 好友分组列表
    };
*
* ```
*/
interface HandleFriendAddParams {
    params: {
        friend_response_identifier?: string;
        friend_response_action?: TIMFriendResponseAction;
        friend_response_remark?: string;
        friend_response_group_name?: string;
    };
    user_data?: string;
}
/**
* @brief 修改好友分组信息的接口参数
* @param params params
* @param user_data user_data: 用户自定义数据
* ```
*    params: {
        friendship_modify_friend_group_param_name?: string; // 要修改的分组名称
        friendship_modify_friend_group_param_new_name?: string; // 修改后的分组名称
        friendship_modify_friend_group_param_delete_identifier_array?: [string]; // 要从当前分组删除的好友UserID列表
        friendship_modify_friend_group_param_add_identifier_array?: [string]; // 当前分组要新增的好友UserID列表
    };
*
* ```
*/
interface ModifyFriendGroupParams {
    params: {
        friendship_modify_friend_group_param_name?: string;
        friendship_modify_friend_group_param_new_name?: string;
        friendship_modify_friend_group_param_delete_identifier_array?: [string];
        friendship_modify_friend_group_param_add_identifier_array?: [string];
    };
    user_data?: string;
}
/**
* @brief 翻页获取好友添加请求未决信息列表的参数
* @param params params
* @param user_data user_data: 用户自定义数据
* ```
*    params: {
        friendship_get_pendency_list_param_type?: number; // 获取好友添加请求未决类
        friendship_get_pendency_list_param_start_seq?: number; // 获取未决的起始seq 未决列表序列号。建议客户端保存 seq 和未决列表，请求时填入 server 返回的 seq 。如果 seq 是 server 最新的，则不返回数据
        friendship_get_pendency_list_param_start_time?: number; // 获取未决信息的开始时间戳
        friendship_get_pendency_list_param_limited_size?: number; // 获取未决信息列表，每页的数量
    };
*
* ```
*/
interface FriendshipGetPendencyListParams {
    params: {
        friendship_get_pendency_list_param_type?: number;
        friendship_get_pendency_list_param_start_seq?: number;
        friendship_get_pendency_list_param_start_time?: number;
        friendship_get_pendency_list_param_limited_size?: number;
    };
    user_data?: string;
}
/**
* @brief 删除好友添加请求未决信息接口的参数
* @param params params
* @param user_data user_data: 用户自定义数据
* ```
*    params: {
        friendship_delete_pendency_param_type?: TIMFriendPendencyType; // 删除好友添加请求未决的类型
        friendship_delete_pendency_param_identifier_array?: [string]; // 删除好友未决请求的UserID列表
    };
*
* ```
*/
interface DeletePendencyParams {
    params: {
        friendship_delete_pendency_param_type?: TIMFriendPendencyType;
        friendship_delete_pendency_param_identifier_array?: [string];
    };
    user_data?: string;
}
/**
 * @param timestamp timestamp:上报未决信息已读时间戳(单位秒)，填 0 默认会获取当前的时间戳
 * @param user_data user_data:用户自定义数据
 */
interface ReportPendencyReadedParams {
    timestamp?: number;
    user_data?: string;
}
/**
* @brief 搜索好友的参数
* @param params params
* @param user_data user_data: 用户自定义数据
* ```
*    params: {
        friendship_search_param_keyword_list?: [string]; // 关键字列表最多支持 5 个
        friendship_search_param_search_field_list?: [number]; // 好友搜索类型（如下）
        //    kTIMFriendshipSearchFieldKey_Identifier = 0x01,  // userid
        // kTIMFriendshipSearchFieldKey_NikeName = 0x01 << 1, // 昵称
        // kTIMFriendshipSearchFieldKey_Remark = 0x01 << 2, // 备注
    };
*
* ```
*/
interface SearchFriendsParams {
    params: {
        friendship_search_param_keyword_list?: [string];
        friendship_search_param_search_field_list?: number[];
    };
    user_data?: string;
}
/**
 * @brief 好友资料可修改的各个项
 * @param friend_profile_item_remark  friend_profile_item_remark：修改好友备注
 * @param friend_profile_item_group_name_array friend_profile_item_group_name_array： 修改好友分组名称列表
 * @param friend_profile_item_custom_string_array friend_profile_item_custom_string_array：修改[自定义好友字段](https://cloud.tencent.com/document/product/269/1501#.E8.87.AA.E5.AE.9A.E4.B9.89.E5.A5.BD.E5.8F.8B.E5.AD.97.E6.AE.B5)
 */
interface FriendProfileItem {
    friend_profile_item_remark?: string;
    friend_profile_item_group_name_array?: [string];
    friend_profile_item_custom_string_array?: [FriendProfileCustemStringInfo];
}
/**
 * @brief 好友自定义资料字段
 * @param friend_profile_custom_string_info_key friend_profile_custom_string_info_key：好友自定义资料字段key
 * @param friend_profile_custom_string_info_value friend_profile_custom_string_info_value：好友自定义资料字段value
 * @param user_data user_data：用户自定义数据
 */
interface FriendProfileCustemStringInfo {
    user_data?: string;
    friend_profile_custom_string_info_key?: string;
    friend_profile_custom_string_info_value?: string;
}
/**
 * @param callback callback：添加好友回调
 * @param user_data user_data：用户自定义数据
 */
interface TIMOnAddFriendCallbackParams {
    callback: TIMOnAddFriendCallbackFunc;
    user_data?: string;
}
/**
 *  @param callback callback：设置删除好友的回调
 *  @param user_data user_data：用户自定义数据
 */
interface TIMOnDeleteFriendCallbackParams {
    callback: TIMOnDeleteFriendCallbackFunc;
    user_data?: string;
}
/**
 * @param callback callback：更新好友资料回调
 * @param user_data user_data：用户自定义数据
 */
interface TIMUpdateFriendProfileCallbackParams {
    callback: TIMUpdateFriendProfileCallbackFunc;
    user_data?: string;
}
/**
 * @param callback 好友请求回调
 * @param user_data 用户自定义数据
 */
interface TIMFriendAddRequestCallbackParams {
    callback: TIMFriendAddRequestCallbackFunc;
    user_data?: string;
}
/**
 * @param callback 设置好友申请删除的回调
 * @param user_data 用户自定义数据
 */
interface TIMFriendApplicationListDeletedCallbackParams {
    callback: TIMFriendApplicationListDeletedCallbackFunc;
    user_data?: string;
}
/**
 * @param callback 设置好友申请已读的回调
 * @param user_data 用户自定义数据
 */
interface TIMFriendApplicationListReadCallbackParams {
    callback: TIMFriendApplicationListReadCallbackFunc;
    user_data?: string;
}
/**
 * @param callback 黑名单新增的回调
 * @param user_data 用户自定义数据
 */
interface TIMFriendBlackListAddedCallbackParams {
    callback: TIMFriendBlackListAddedCallbackFunc;
    user_data?: string;
}
/**
 * @param callback 黑名单删除的回调
 * @param user_data 用户自定义数据
 */
interface TIMFriendBlackListDeletedCallbackParams {
    callback: TIMFriendBlackListDeletedCallbackFunc;
    user_data?: string;
}
/**
 * @param json_identifier_array json_identifier_array:添加好友列表(item是用户ID)
 * @param user_data user_data:用户自定义数据
 */
interface TIMOnAddFriendCallbackFunc {
    (json_identifier_array: string, user_data: string): void;
}
/**
 * @param json_identifier_array json_identifier_array：删除好友列表（item是用户ID)
 * @param user_data user_data：ImSDK负责透传的用户自定义数据，未做任何处理
 */
interface TIMOnDeleteFriendCallbackFunc {
    (json_identifier_array: string, user_data: string): void;
}
/**
 * @param json_friend_profile_update_array json_friend_profile_update_array:好友资料更新列表（item为[FriendProfileItem](./interface_friendshipinterface.friendprofileitem.html)）
 * @param user_data user_data：ImSDK负责透传的用户自定义数据，未做任何处理
 */
interface TIMUpdateFriendProfileCallbackFunc {
    (json_friend_profile_update_array: string, user_data: string): void;
}
/**
 * @param json_friend_add_request_pendency_array json_friend_add_request_pendency_array:好友添加请求未决信息列表(item参考[FriendAddPendency](./interface_friendshipinterface.friendaddpendency.html))
 * @param user_data user_data：ImSDK负责透传的用户自定义数据，未做任何处理
 */
interface TIMFriendAddRequestCallbackFunc {
    (json_friend_add_request_pendency_array: string, user_data: string): void;
}
/**
 * @param json_identifier_array json_identifier_array：json_identifier_array:删除好友请求的 userid 列表
 * @param user_data user_data：ImSDK负责透传的用户自定义数据，未做任何处理
 */
interface TIMFriendApplicationListDeletedCallbackFunc {
    (json_identifier_array: string, user_data: string): void;
}
/**
 * @param user_data ImSDK负责透传的用户自定义数据，未做任何处理
 */
interface TIMFriendApplicationListReadCallbackFunc {
    (user_data: string): void;
}
/**
 * @param json_friend_black_added_array  json_friend_black_added_array：新增黑名单列表（item参考[FriendProfile](./interface_friendshipinterface.friendprofile.html)）
 * @param user_data user_data：ImSDK负责透传的用户自定义数据，未做任何处理
 *
 */
interface TIMFriendBlackListAddedCallbackFunc {
    (json_friend_black_added_array: string, user_data: string): void;
}
/**
 * @param json_identifier_array  json_identifier_array：用户 ID 列表
 * @param user_data user_data：ImSDK负责透传的用户自定义数据，未做任何处理
 */
interface TIMFriendBlackListDeletedCallbackFunc {
    (json_identifier_array: string, user_data: string): void;
}
/**
 * @param  friend_profile_identifier friend_profile_identifier:好友UserID
 * @param  friend_profile_group_name_array friend_profile_group_name_array:好友分组名称列表
 * @param  friend_profile_remark friend_profile_remark:好友备注，最大96字节，获取自己资料时，该字段为空
 * @param  friend_profile_add_wording friend_profile_add_wording:好友申请时的添加理由
 * @param  friend_profile_add_source friend_profile_add_source:好友申请时的添加来源
 * @param  friend_profile_add_time friend_profile_add_time:好友添加时间
 * @param  friend_profile_user_profile friend_profile_user_profile:好友的个人资料 [UserProfile](./interface_friendshipinterface.UserProfile.html))
 */
interface FriendProfile {
    friend_profile_identifier: string;
    friend_profile_group_name_array: Array<string>;
    friend_profile_remark: string;
    friend_profile_add_wording: string;
    friend_profile_add_source: string;
    friend_profile_add_time: number;
    friend_profile_user_profile: [userProfile];
    friend_profile_custom_string_array: FriendProfileCustemStringInfo[];
}
/**
 * @param friend_result_identifier friend_result_identifier 关系链操作的用户ID
 * @param friend_result_code friend_result_code 错误码
 * @param friend_result_desc friend_result_desc 关系链操作失败的详细描述
 */
interface FriendResult {
    friend_result_identifier: string;
    friend_result_code: number;
    friend_result_desc: string;
}
/**
 * @param friendship_check_friendtype_result_identifier friendship_check_friendtype_result_identifier:被检测的好友UserID
 * @param friendship_check_friendtype_result_relation friendship_check_friendtype_result_relation:[TIMFriendCheckRelation]
 * @param friendship_check_friendtype_result_code friendship_check_friendtype_result_code: 错误码
 * @param friendship_check_friendtype_result_desc friendship_check_friendtype_result_desc: 检测好友失败的描述信息
 */
interface CheckFriendTypeResult {
    friendship_check_friendtype_result_identifier: string;
    friendship_check_friendtype_result_relation: TIMFriendCheckRelation;
    friendship_check_friendtype_result_code: number;
    friendship_check_friendtype_result_desc: string;
}
interface FriendGroupInfo {
    friend_group_info_name: string;
    friend_group_info_count: number;
    friend_group_info_identifier_array: Array<string>;
}
interface FriendAddPendencyInfo {
    friend_add_pendency_info_type: TIMFriendPendencyType;
    friend_add_pendency_info_identifier: string;
    friend_add_pendency_info_nick_name: string;
    friend_add_pendency_info_add_time: number;
    friend_add_pendency_info_add_source: string;
    friend_add_pendency_info_add_wording: string;
}
interface PendencyPage {
    pendency_page_start_time: number;
    pendency_page_unread_num: number;
    pendency_page_current_seq: number;
    pendency_page_pendency_info_array: FriendAddPendencyInfo[];
}
interface FriendInfoGetResult {
    friendship_friend_info_get_result_identifier: string;
    friendship_friend_info_get_result_relation_type: TIMFriendshipRelationType;
    friendship_friend_info_get_result_error_code: number;
    friendship_friend_info_get_result_error_message: string;
    friendship_friend_info_get_result_field_info: Array<FriendProfile>;
}

/**
 * * @brief 会话信息
 * @param conv_id    conv_id 会话的ID
 * @param conv_type  conv_type 会话类型，请参考[TIMConvType](../enums/enum.timconvtype.html)
 * @param conv_owner  conv_owner 会话所有者，已废弃
 * @param conv_unread_num   conv_unread_num 会话未读计数
 * @param conv_active_time    conv_active_time 会话的激活时间
 * @param conv_is_has_lastmsg  conv_is_has_lastmsg 会话是否有最后一条消息
 * @param conv_last_msg  conv_last_msg 会话最后一条消息,请参考[Json_value_msg]
 * @param conv_is_has_draft   conv_is_has_draft 会话是否有草稿
 * @param conv_draft    conv_draft 会话草稿,请参考[draftParams]
 * @param conv_recv_opt  conv_recv_opt 消息接收选项,请参考[TIMReceiveMessageOpt]
 * @param conv_group_at_info_array  conv_group_at_info_array  群会话 @ 信息列表，用于展示 “有人@我” 或 “@所有人” 这两种提醒状态,请参考[GroupAtInfo]
 * @param conv_is_pinned   conv_is_pinned 是否置顶
 * @param conv_show_name    conv_show_name 获取会话展示名称，其展示优先级如下：1、群组，群名称 -> 群 ID;C2C; 2、对方好友备注 -> 对方昵称 -> 对方的 userID
 * @param conv_mark_array  conv_mark_array 会话标记列表,请参考[TIMConversationMarkType]
 * @param conv_custom_data  conv_custom_data  会话自定义数据（从 6.5 版本开始支持）
 * @param conv_conversation_group_array   conv_conversation_group_array 会话所属分组列表（从 6.5 版本开始支持）
 * @param conv_c2c_read_timestamp C2C 会话已读消息时间戳（从 7.1 版本开始支持）
 * @param conv_group_read_sequence 只读, 群消息已读 Sequence（从 7.1 版本开始支持）
 */
interface convInfo {
    conv_id: string;
    conv_type: TIMConvType;
    conv_owner: string;
    conv_unread_num: number;
    conv_active_time: number;
    conv_is_has_lastmsg: boolean;
    conv_last_msg: Json_value_msg;
    conv_is_has_draft: boolean;
    conv_draft: draftParams;
    conv_recv_opt: TIMReceiveMessageOpt;
    conv_group_at_info_array: Array<GroupAtInfo>;
    conv_is_pinned: boolean;
    conv_show_name: string;
    conv_mark_array: Array<TIMConversationMarkType>;
    conv_custom_data: string;
    conv_conversation_group_array: Array<string>;
    conv_c2c_read_timestamp: number;
    conv_group_read_sequence: number;
}
/**
 * * @brief 获取会话未读消息数
 * @param conv_get_total_unread_message_count_result_unread_count    conv_get_total_unread_message_count_result_unread_count 会话未读数
 */
interface totalUnreadCountResult {
    conv_get_total_unread_message_count_result_unread_count: number;
}
/**
 * * @brief 创建会话
 * @param conv_id    conv_id 会话的ID
 * @param conv_type  conv_type 会话类型，请参考[TIMConvType](../enums/enum.timconvtype.html)
 * @param user_data  user_data 用户自定义数据，ImSDK只负责传回给回调函数cb，不做任何处理
 */
interface convCreate {
    convId: string;
    convType: TIMConvType;
    userData?: string;
}
/**
 * @param conv_id    conv_id 会话的ID
 * @param conv_type  conv_type 会话类型，请参考[TIMConvType](../enums/enum.timconvtype.html)
 * @param user_data  user_data 用户自定义数据，ImSDK只负责传回给回调函数cb，不做任何处理
 */
interface convDelete extends convCreate {
}
/**
 * @brief 获取最近联系人的会话列表
 *
 * @param user_data  user_data 用户自定义数据，ImSDK只负责传回给回调函数cb，不做任何处理
 *
 */
interface getConvList {
    userData?: string;
}
/**
 * @param conv_id   conv_id 会话的ID
 * @param convType  convType请参考[TIMConvType](../enums/enum.timconvtype.html)
 * @param draftParams draftParams 草稿参数
 */
interface convSetDrat {
    convId: string;
    convType: TIMConvType;
    draftParam: draftParams;
}
/**
 * @param message_elem_array message_elem_array: 消息内元素列表
 */
interface draftMessage {
    message_elem_array: Array<messageElem>;
}
/**
 * @param draft_edit_time   draft_edit_time: 草稿最新编辑时间
 * @param draft_msg  draft_msg: 草稿内的消息
 * @param draft_user_define draft_user_define: 用户自定义数据
 */
interface draftParams {
    draft_edit_time: number;
    draft_msg: draftMessage;
    draft_user_define: string;
}
/**
 * @param TIMElemType TIMElemType: 元素类型
 * @param text_elem_content text_elem_content: 文本内容
 */
interface messageElem {
    elem_type: TIMElemType;
    text_elem_content: string;
}
/**
 * @param conv_id   conv_id 会话的ID
 * @param convType  convType参考[TIMConvType](../enums/enum.timconvtype.html)
 */
interface convCancelDraft {
    convId: string;
    convType: TIMConvType;
}
/**
 * @param get_conversation_list_param_conv_id get_conversation_list_param_conv_id: 会话ID
 * @param get_conversation_list_param_conv_type get_conversation_list_param_conv_type: 会话类型[TIMConvType](../enums/enum.timconvtype.html)
 */
interface convItem {
    get_conversation_list_param_conv_id: string;
    get_conversation_list_param_conv_type: TIMConvType;
}
/**
 * @param json_get_conv_list_param   json_get_conv_list_param 会话唯一 ID 列表和会话类型的列表
 * @param user_data  user_data 用户自定义数据，ImSDK只负责传回给回调函数cb，不做任何处理
 */
interface convGetConvInfo {
    json_get_conv_list_param: Array<convItem>;
    user_data?: string;
}
/**
 * @param conv_id  conv_id 会话 ID
 * @param conv_type  conv_type 会话类型，请参考[TIMConvType](../enums/enum.timconvtype.html)
 * @param is_pinned is_pinned是否置顶会话
 * @param user_data  user_data 用户自定义数据，ImSDK只负责传回给回调函数cb，不做任何处理
 */
interface convPinConversation {
    convId: string;
    convType: TIMConvType;
    isPinned: boolean;
    user_data?: string;
}
/**
 * @param user_data  user_data 用户自定义数据，ImSDK只负责传回给回调函数cb，不做任何处理
 */
interface convGetTotalUnreadMessageCount {
    user_data?: string;
}
/**
 * @brief 设置会话事件回调
 * @param callback  callback 会话事件回调，请参考convEventCallback
 * @param user_data  user_data用户自定义数据，ImSDK只负责传回给回调函数cb，不做任何处理
 */
interface setConvEventCallback {
    callback: convEventCallback;
    user_data?: string;
}
/**
 * @brief 设置会话未读消息总数变更的回调
 * @param callback  callback：convTotalUnreadMessageCountChangedCallback
 * @param user_data  user_data 用户自定义数据，ImSDK只负责传回给回调函数cb，不做任何处理
 *
 */
interface convTotalUnreadMessageCountChangedCallbackParam {
    callback: convTotalUnreadMessageCountChangedCallback;
    user_data?: string;
}
interface convUnreadMessageCountChangedByFilterCallbackParam {
    callback: convTotalUnreadMessageCountChangedByFilterCallback;
    user_data?: string;
}
/**
 * @breif 获取会话列表高级接口的 filter
 * @param conversation_list_filter_conv_type 只写, 会话类型
 * @param conversation_list_filter_next_seq 只写, 分页拉取的游标
 * @param conversation_list_filter_count 只写, 分页拉取的个数
 * @param conversation_list_filter_mark_type 只写, 标记类型
 * @param conversation_list_filter_group_name 只写, 会话分组名称，注意：不是群组名称
 */
interface TIMConversationListFilter {
    params: {
        conversation_list_filter_conv_type: TIMConvType;
        conversation_list_filter_next_seq?: number;
        conversation_list_filter_count?: number;
        conversation_list_filter_mark_type?: TIMConversationMarkType;
        conversation_list_filter_conversation_group?: string;
    };
    user_data?: string;
}
/**
 * @brief 清理回话未读消息计数的参数
 * @param conversation_id  会话唯一 ID， C2C 单聊组成方式："c2c_" + userID；群聊组成方式为 "group_" + groupID
 * @param clean_timestamp  清理时间戳，仅对单聊会话生效，指定清理哪一个 timestamp 之前的未读消息计数；当传入为 0 时，对应会话所有的未读消息将被清理，会话的未读数会清 0；
 * @param clean_sequence  清理时 sequence，仅对群聊会话生效，指定清理哪一个 sequence 之前的未读消息计数；当传入为 0 时，对应会话所有的未读消息将被清理，会话的未读数会清 0；
 */
interface CleanUnreadMessageCoutParam {
    conversation_id: string;
    clean_timestamp: number;
    clean_sequence: number;
    user_data?: string;
}
/**
 * @brief 删除会话列表参数
 * @param conversation_id_array 会话 ID 列表。需要在会话ID之前加上“c2c_”或“group_”字样
 * @param clearMessage 是否删除会话中的消息；false为保留会话消息，true为本地和服务器的消息会一起删除，并且不可恢复
 */
interface DeleteConvListParam {
    conversation_id_array: string[];
    clearMessage: boolean;
    user_data?: string;
}
/**
 * @breif 获取会话列表的结果
 * @param conversation_list_result_conv_list 只读, 会话列表
 * @param conversation_list_result_next_seq 只读, 分页拉取的游标
 * @param conversation_list_result_is_finished 只读, 分页拉取是否结束
 */
interface TIMConversationListResult {
    conversation_list_result_conv_list: Array<convInfo>;
    conversation_list_result_next_seq: number;
    conversation_list_result_is_finished: boolean;
}
/**
 * @breif 标记会话
 * @param conversation_id_array 会话ID列表，里面的参数需要加上'c2c_'或者'group_'前缀（如conversation_id_array:["group_@xxxxxxx"]）,其他 conversation_id_array同理
 * @param mark_type 会话标记类型
 * @param enable_mark true：设置标记 false：取消标记
 *
 * 如果已有标记不能满足您的需求，您可以自定义扩展标记，扩展标记需要满足以下两个条件：
 * 1、扩展标记值不能和 V2TIMConversationMarkType 已有的标记值冲突
 * 2、扩展标记值必须是 0x1LL << n 的位移值（32 <= n < 64，即 n 必须大于等于 32 并且小于 64），比如扩展标记值 0x1LL << 32 表示 "Windows 在线"
 *
 * @note 扩展标记值不能设置为 0x1 << 32，要设置为 0x1LL << 32，明确告诉编译器是 64 位的整型常量。
 *
 */
interface MarkConversationParam {
    conversation_id_array: Array<string>;
    mark_type: TIMConversationMarkType;
    enable_mark: boolean;
    user_data?: string;
}
/**
 * @breif 会话操作结果
 * @param conversation_operation_result_conversation_id 只读, 会话 ID
 * @param conversation_operation_result_result_code 只读, 返回码
 * @param conversation_operation_result_result_info 只读,返回信息
 */
interface TIMConversationOperationResult {
    conversation_operation_result_conversation_id: string;
    conversation_operation_result_result_code: number;
    conversation_operation_result_result_info: string;
}
/**
 * @breif 用户创建会话分组、将会话加入分组和从会话分组删除会话的入参
 * @param group_name 会话分组名称
 * @param conversation_id_array 会话ID列表，里面的参数需要加上'c2c_'或者'group_'前缀（如 conversation_id_array:["group_@xxxxxxx"]）,其他 conversation_id_array同理
 */
interface createConversationGroupParam {
    group_name: string;
    conversation_id_array: Array<string>;
    user_data?: string;
}
interface getConvGroupList {
    user_data?: string;
}
/**
 * @breif TIMConvGetConversationGroupList的返回值
 * @param conv_group_array 会话分组名称列表
 */
interface convGroupListResult {
    conv_group_array: Array<string>;
}
/**
 * @breif 重命名会话分组入参
 * @param old_name 分组名（必填参数，长度要 > 0，最大支持 32 bytes）
 * @param new_name 分组名（必填参数，长度要 > 0，最大支持 32 bytes）
 */
interface renameConvGroupParam {
    old_name: string;
    new_name: string;
    user_data?: string;
}
/**
 * @breif 删除会话分组入参
 * @param group_name 分组名（必填参数，长度要 > 0，最大支持 32 bytes）
 */
interface deleteConvGroupParam {
    group_name: string;
    user_data?: string;
}
/**
 * @breif 设置会话自定义数据入参
 * @param conversation_id_array 会话ID列表，里面的参数需要加上'c2c_'或者'group_'前缀（如 conversation_id_array:["group_@xxxxxxx"]）,其他 conversation_id_array同理
 * @param custom_data 自定义数据，最大支持 256 bytes
 */
interface setConvCustomDataParam {
    conversation_id_array: Array<string>;
    custom_data: string;
    user_data?: string;
}
/**
 * @param conv_event  conv_event 会话事件类型
 * @param json_conv_array  json_conv_array: 会话信息列表
 * @param user_data user_data: ImSDK负责透传的用户自定义数据，未做任何处理
 *
 */
interface convEventCallback {
    (conv_event: number, json_conv_array: string, user_data: string): void;
}
/**
 * @param total_unread_count total_unread_count：未读的消息总数
 * @param user_data user_data：ImSDK负责透传的用户自定义数据，未做任何处理
 */
interface convTotalUnreadMessageCountChangedCallback {
    (total_unread_count: number, user_data: string): void;
}
/**
 * @brief 按会话 filter 过滤的未读消息总数变化
 * @param filter 获取未读总数的 filter，详见TIMConversationListFilter(param内的参数部分)
 * @param total_unread_count 未读的消息总数
 * @param user_data ImSDK负责透传的用户自定义数据，未做任何处理
 */
interface convTotalUnreadMessageCountChangedByFilterCallback {
    (filter: string, total_unread_count: number, user_data: string): void;
}
interface convGroupCreatedCallbackParam {
    callback: TIMConvConversationGroupCreatedCallback;
    user_data?: string;
}
/**
 * @param group_name 分组名
 * @param conversation_array 会话列表
 */
interface TIMConvConversationGroupCreatedCallback {
    (group_name: string, conversation_array: string, user_data: string): void;
}
interface TIMConvConversationsDeletedFromGroupCallback {
    (group_name: string, conversation_array: string, reason: number, user_data: string): void;
}
interface convGroupDeletedFromGroupCallbackParam {
    callback: TIMConvConversationsDeletedFromGroupCallback;
    user_data?: string;
}
interface convGroupDeletedCallbackParam {
    callback: TIMConvConversationGroupDeletedCallback;
    user_data?: string;
}
interface TIMConvConversationGroupDeletedCallback {
    (group_name: string): void;
}
interface convGroupNameChangedCallback {
    callback: TIMConvConversationGroupNameChangedCallback;
    user_data?: string;
}
interface TIMConvConversationGroupNameChangedCallback {
    (old_name: string, new_name: string, user_data: string): void;
}

/**
 * @param invitee 被邀请人的 userID
 * @param data 自定义数据
 * @param online_user_only 是否只有在线用户才能收到邀请，如果设置为 true，只有在线用户才能收到，并且 invite 操作也不会产生历史消息（针对该次 invite 的后续 cancel、accept、reject、timeout 操作也同样不会产生历史消息）
 * @param json_offline_push_info 离线推送时携带的标题和声音，其中 desc 为必填字段，推送的时候会默认展示 desc 信息，json key 的定义请参考 [OfflinePushConfig](TIMOfflinePushManager.h)
 * @param timeout 超时时间，单位 s，如果设置为 0，SDK 不会做超时检测，也不触发 @ref TIMSignalingInvitationTimeoutCallback 回调
 */
interface inviteParam {
    invitee: string;
    data: string;
    online_user_only: boolean;
    json_offline_push_info: OfflinePushConfig;
    timeout: number;
    user_data?: string;
}
/**
 * @param group_id 发起邀请所在群组
 * @param json_invitee_array 被邀请人列表，且被邀请人必须已经在群组内，否则邀请无效
 * @param data 自定义字段
 * @param online_user_only  是否只有在线用户才能收到邀请，如果设置为 true，只有在线用户才能收到，并且 invite 操作也不会产生历史消息（针对该次 invite 的后续 cancel、accept、reject、timeout 操作也同样不会产生历史消息）
 * @param timeout 超时时间，单位 s，如果设置为 0，SDK 不会做超时检测，也不触发 @ref TIMSignalingInvitationTimeoutCallback 回调
 * @param user_data 用户自定义数据，ImSDK只负责传回给回调函数cb，不做任何处理
 */
interface inviteInGroupParam {
    group_id: string;
    json_invitee_array: string[];
    data: string;
    online_user_only: boolean;
    timeout: number;
    user_data?: string;
}
/**
 * @param invite_id 邀请 ID
 * @param data 自定义字段
 * @param user_data 用户自定义数据，ImSDK只负责传回给回调函数cb，不做任何处理
 */
interface signalingParam {
    invite_id: string;
    data: string;
    user_data?: string;
}
interface getSignalingInfoParam {
    json_msg: Json_value_msg;
    user_data?: string;
}
interface SignalingInfo {
    signaling_info_invite_id: string;
    signaling_info_group_id: string;
    signaling_info_inviter: string;
    signaling_info_invitee_list: string[];
    signaling_info_data: string;
    signaling_info_action_type: TIMSignalingActionType;
    signaling_info_timeout: number;
}
/**
 * 2.1 收到邀请的回调
 *
 * @param invite_id 邀请 ID
 * @param inviter 邀请者 userID
 * @param group_id 群组 ID
 * @param json_invitee_list 被邀请者 userID 列表，json 字符串类型
 * @param data 自定义字段
 * @param user_data ImSDK负责透传的用户自定义数据，未做任何处理
 */
interface TIMSignalingReceiveNewInvitationCallback {
    (invite_id: string, inviter: string, group_id: string, json_invitee_list: string, data: string, user_data: string): void;
}
/**
 * 2.2 被邀请者接受邀请的回调
 *
 * @param invite_id 邀请 ID
 * @param invitee 被邀请者 userID
 * @param data 自定义字段
 * @param user_data ImSDK负责透传的用户自定义数据，未做任何处理
 */
interface TIMSignalingInviteeAcceptedCallback {
    (invite_id: string, invitee: string, data: string, user_data: string): void;
}
/**
 * 2.3 被邀请者拒绝邀请的回调
 *
 * @param invite_id 邀请 ID
 * @param invitee 被邀请者 userID
 * @param data 自定义字段
 * @param user_data ImSDK负责透传的用户自定义数据，未做任何处理
 */
interface TIMSignalingInviteeRejectedCallback {
    (invite_id: string, invitee: string, data: string, user_data: string): void;
}
/**
 * 2.4 邀请被取消的回调
 *
 * @param invite_id 邀请 ID
 * @param inviter 邀请者 userID
 * @param data 自定义字段
 * @param user_data ImSDK负责透传的用户自定义数据，未做任何处理
 */
interface TIMSignalingInvitationCancelledCallback {
    (invite_id: string, inviter: string, data: string, user_data: string): void;
}
/**
 * 2.5 邀请超时的回调
 *
 * @param invite_id 邀请 ID
 * @param json_invitee_list 被邀请者 userID 列表，json 字符串类型
 * @param user_data ImSDK负责透传的用户自定义数据，未做任何处理
 */
interface TIMSignalingInvitationTimeoutCallback {
    (invite_id: string, json_invitee_list: string, user_data: string): void;
}
/**
 * 2.6 邀请被修改的回调（6.7 及其以上版本支持）
 *
 * @param invite_id 邀请 ID
 * @param data 自定义字段
 * @param user_data ImSDK负责透传的用户自定义数据，未做任何处理
 */
interface TIMSignalingInvitationModifiedCallback {
    (invite_id: string, data: string, user_data: string): void;
}
interface SetSignalingReceiveNewInvitationCallbackParam {
    callback: TIMSignalingReceiveNewInvitationCallback;
    user_data?: string;
}
interface SetSignalingInviteeAcceptedCallbackParam {
    callback: TIMSignalingInviteeAcceptedCallback;
    user_data?: string;
}
interface SetSignalingInviteeRejectedCallbackParam {
    callback: TIMSignalingInviteeRejectedCallback;
    user_data?: string;
}
interface SetSignalingInvitationCancelledCallbackParam {
    callback: TIMSignalingInvitationCancelledCallback;
    user_data?: string;
}
interface SetSignalingInvitationTimeoutCallParam {
    callback: TIMSignalingInvitationTimeoutCallback;
    user_data?: string;
}
interface SetSignalingInvitationModifiedCallback {
    callback: TIMSignalingInvitationModifiedCallback;
    user_data?: string;
}

interface JoinGroupParams {
    groupId: string;
    helloMsg?: string;
    data?: string;
}
interface TestInterface {
    a: string;
    b: string;
}
declare class TimRender {
    static runtime: Map<string, Function>;
    static isListened: boolean;
    private _currentWindowID;
    static _recvNewMsgCallbackArray: Array<TIMRecvNewMsgCallbackFunc>;
    static _downloadCallbackArray: Array<TIMMsgDownloadElemToPathFunc>;
    static _downloadCallbacks: Map<string, Function>;
    constructor();
    private _handleMessage;
    private _call;
    private _getCallInfo;
    private _setCallInfo;
    private _deleteCallInfo;
    testDoc(param: TestInterface): void;
    private getAbstractMsgText;
    private _setCallback;
    private _getCallback;
    TIMConvGetTotalUnreadMessageCount(param: convGetTotalUnreadMessageCount): Promise<commonResult<totalUnreadCountResult>>;
    TIMConvGetUnreadMessageCountByFilter(param: TIMConversationListFilter): Promise<commonResult<totalUnreadCountResult>>;
    TIMConvPinConversation(param: convPinConversation): Promise<commonResult<string>>;
    TIMConvGetConvInfo(param: convGetConvInfo): Promise<commonResult<convInfo[]>>;
    TIMConvCancelDraft(param: convCancelDraft): Promise<number>;
    TIMConvSetDraft(param: convSetDrat): Promise<number>;
    TIMConvGetConvList(param: getConvList): Promise<commonResult<convInfo[]>>;
    TIMConvDelete(param: convDelete): Promise<commonResult<string>>;
    TIMConvDeleteConversationList(param: DeleteConvListParam): Promise<commonResult<TIMConversationOperationResult[]>>;
    TIMConvSubscribeUnreadMessageCountByFilter(param: TIMConversationListFilter): Promise<number>;
    TIMConvUnsubscribeUnreadMessageCountByFilter(param: TIMConversationListFilter): Promise<number>;
    TIMConvCleanConversationUnreadMessageCount(param: CleanUnreadMessageCoutParam): Promise<commonResult<TIMConversationOperationResult[]>>;
    TIMConvCreate(param: convCreate): Promise<convInfo>;
    TIMConvGetConversationListByFilter(param: TIMConversationListFilter): Promise<commonResult<TIMConversationListResult>>;
    TIMConvMarkConversation(param: MarkConversationParam): Promise<commonResult<TIMConversationOperationResult[]>>;
    TIMConvCreateConversationGroup(param: createConversationGroupParam): Promise<commonResult<TIMConversationOperationResult[]>>;
    TIMConvGetConversationGroupList(param: getConvGroupList): Promise<commonResult<convGroupListResult>>;
    TIMConvDeleteConversationGroup(param: deleteConvGroupParam): Promise<commonResult<string>>;
    TIMConvRenameConversationGroup(param: renameConvGroupParam): Promise<commonResult<string>>;
    TIMConvAddConversationsToGroup(param: createConversationGroupParam): Promise<commonResult<TIMConversationOperationResult[]>>;
    TIMConvDeleteConversationsFromGroup(param: createConversationGroupParam): Promise<commonResult<TIMConversationOperationResult[]>>;
    TIMConvSetConversationCustomData(param: setConvCustomDataParam): Promise<commonResult<TIMConversationOperationResult[]>>;
    TIMSetConvTotalUnreadMessageCountChangedCallback(param: convTotalUnreadMessageCountChangedCallbackParam): Promise<void>;
    TIMSetConvUnreadMessageCountChangedByFilterCallback(param: convUnreadMessageCountChangedByFilterCallbackParam): Promise<void>;
    TIMSetConvEventCallback(param: setConvEventCallback): Promise<any>;
    TIMSetConvConversationGroupCreatedCallback(param: convGroupCreatedCallbackParam): Promise<any>;
    TIMSetConvConversationGroupDeletedCallback(param: convGroupDeletedCallbackParam): Promise<any>;
    TIMSetConvConversationGroupNameChangedCallback(param: convGroupNameChangedCallback): Promise<any>;
    TIMSetConvConversationsAddedToGroupCallback(param: convGroupCreatedCallbackParam): Promise<any>;
    TIMSetConvConversationsDeletedFromGroupCallback(param: convGroupDeletedFromGroupCallbackParam): Promise<any>;
    TIMSetUserSigExpiredCallback(param: TIMSetUserSigExpiredCallbackParam): Promise<any>;
    TIMSetKickedOfflineCallback(param: TIMSetKickedOfflineCallbackParam): Promise<any>;
    TIMSetNetworkStatusListenerCallback(param: TIMSetNetworkStatusListenerCallbackParam): Promise<any>;
    TIMSetSelfInfoUpdatedCallback(param: TIMSetSelfInfoUpdatedCallbackParam): Promise<any>;
    TIMSubscribeUserInfo(param: SubscribeUserInfoParam): Promise<commonResult<string>>;
    TIMSetUserInfoChangedCallback(param: UserInfoChangedCallbackParam): Promise<any>;
    TIMSetUserStatusChangedCallback(param: TIMSetUserStatusChangedCallbackParam): Promise<any>;
    TIMSetLogCallback(param: TIMSetLogCallbackParam): Promise<any>;
    TIMUninit(): Promise<number>;
    TIMSetConfig(param: TIMSetConfigParam): Promise<any>;
    TIMGetSDKVersion(): Promise<Buffer>;
    TIMGetServerTime(): Promise<number>;
    TIMLogout(param: logoutParam): Promise<commonResult<string>>;
    TIMInit(param?: initParam): Promise<number>;
    TIMGetLoginStatus(): Promise<TIMLoginStatus>;
    TIMGetLoginUserID(): Promise<commonResult<string>>;
    callExperimentalAPI(param: callExperimentalAPIParam): Promise<commonResult<string>>;
    TIMLogin(data: loginParam): Promise<commonResult<string>>;
    TIMProfileGetUserProfileList(param: TIMProfileGetUserProfileListParam): Promise<commonResult<userProfile[]>>;
    TIMProfileModifySelfUserProfile(param: TIMProfileModifySelfUserProfileParam): Promise<commonResult<string>>;
    TIMGetUserStatus(param: userStatusParam): Promise<commonResult<userStatus[]>>;
    TIMSetSelfStatus(param: setSelfStatusParam): Promise<commonResult<string>>;
    TIMSubscribeUserStatus(param: userStatusParam): Promise<commonResult<string>>;
    TIMUnsubscribeUserStatus(param: userStatusParam): Promise<commonResult<string>>;
    /**
     * @param data  Comment for parameter ´text´.
     */
    TIMGroupCreate(data: CreateGroupParams): Promise<commonResult<CreateGroupResult>>;
    TIMGroupInitGroupAttributes(initAttributesParams: InitGroupAttributeParams): Promise<commonResult<string>>;
    TIMGroupSetGroupAttributes(setAttributesParams: InitGroupAttributeParams): Promise<commonResult<string>>;
    TIMGroupDeleteGroupAttributes(deleteAttributesParams: DeleteAttributeParams): Promise<commonResult<string>>;
    TIMGroupGetGroupAttributes(getAttributeParams: DeleteAttributeParams): Promise<commonResult<GroupAttributes[]>>;
    TIMGroupGetJoinedCommunityList(data: GetCommunityListParam): Promise<commonResult<GroupBaseInfo[]>>;
    TIMGroupCreateTopicInCommunity(data: CreateTopicParam): Promise<commonResult<string>>;
    TIMGroupDeleteTopicFromCommunity(data: DeleteTopicParam): Promise<commonResult<TopicOperationResult[]>>;
    TIMGroupSetTopicInfo(data: SetTopicInfoParam): Promise<commonResult<string>>;
    TIMGroupGetTopicInfoList(data: DeleteTopicParam): Promise<commonResult<GroupTopicInfoResult[]>>;
    TIMSetGroupAttributeChangedCallback(data: GroupAttributeCallbackParams): Promise<void>;
    TIMSetGroupCounterChangedCallback(data: GroupCounterChangedParam): Promise<void>;
    TIMSetGroupTopicCreatedCallback(data: TopicCreatedParam): Promise<void>;
    TIMSetGroupTopicDeletedCallback(data: TopicDeletedParam): Promise<void>;
    TIMSetCommunityReceiveTopicRESTCustomDataCallback(data: CommunityReceiveTopicRESTCustomDataCallbackParam): Promise<void>;
    TIMSetGroupTopicChangedCallback(data: TopicChangedParam): Promise<void>;
    TIMSetCommunityCreatePermissionGroupCallback(data: CommunityCreatePermissionGroupCallbackParam): Promise<void>;
    TIMSetCommunityDeletePermissionGroupCallback(data: CommunityDeletePermissionGroupCallbackParam): Promise<void>;
    TIMSetCommunityChangePermissionGroupInfoCallback(data: CommunityChangePermissionGroupInfoCallbackParam): Promise<void>;
    TIMSetCommunityAddMembersToPermissionGroupCallback(data: AddMembersToPermissionGroupCallbackParam): Promise<void>;
    TIMSetCommunityRemoveMembersFromPermissionGroupCallback(data: RemoveMembersFromPermissionGroupCallbackParam): Promise<void>;
    TIMSetCommunityAddTopicPermissionCallback(data: AddTopicPermissionCallbackParam): Promise<void>;
    TIMSetCommunityDeleteTopicPermissionCallback(data: DeleteTopicPermissionCallbackParam): Promise<void>;
    TIMSetCommunityModifyTopicPermissionCallback(data: ModifyTopicPermissionCallbackParam): Promise<void>;
    TIMCommunityCreatePermissionGroupInCommunity(params: CreatePermissionGroupInCommunityParam): Promise<commonResult<string>>;
    TIMCommunityDeletePermissionGroupFromCommunity(params: DeletePermissionGroupFromCommunity): Promise<commonResult<PermissionGroupOperationResult[]>>;
    TIMCommunityModifyPermissionGroupInfoInCommunity(params: CreatePermissionGroupInCommunityParam): Promise<commonResult<string>>;
    TIMCommunityGetJoinedPermissionGroupListInCommunity(params: GetJoinedPermissionGroupListInCommunityParam): Promise<commonResult<PermissionGroupInfoResult[]>>;
    TIMCommunityGetPermissionGroupListInCommunity(params: GetPermissionGroupListInCommunityParam): Promise<commonResult<PermissionGroupInfoResult[]>>;
    TIMCommunityAddCommunityMembersToPermissionGroup(params: AddCommunityMembersToPermissionGroupParam): Promise<commonResult<PermissionGroupMemberOperationResult[]>>;
    TIMCommunityRemoveCommunityMembersFromPermissionGroup(params: AddCommunityMembersToPermissionGroupParam): Promise<commonResult<PermissionGroupMemberOperationResult[]>>;
    TIMCommunityGetCommunityMemberListInPermissionGroup(params: GetCommunityMemberListInPermissionGroupParam): Promise<commonResult<PermissionGroupMemberInfoResult[]>>;
    TIMCommunityAddTopicPermissionToPermissionGroup(params: AddTopicPermissionToPermissionGroupParam): Promise<commonResult<TopicOperationResult[]>>;
    TIMCommunityDeleteTopicPermissionFromPermissionGroup(params: DeleteTopicPermissionFromPermissionGroupParam): Promise<commonResult<TopicOperationResult[]>>;
    TIMCommunityModifyTopicPermissionInPermissionGroup(params: AddTopicPermissionToPermissionGroupParam): Promise<commonResult<TopicOperationResult[]>>;
    TIMCommunityGetTopicPermissionInPermissionGroup(params: DeleteTopicPermissionFromPermissionGroupParam): Promise<commonResult<TopicPermissionResult[]>>;
    TIMSetGroupTipsEventCallback(data: GroupTipsCallbackParams): Promise<void>;
    TIMGroupDelete(data: DeleteGroupParams): Promise<commonResult<string>>;
    TIMGroupJoin(joinGroupParams: JoinGroupParams): Promise<commonResult<string>>;
    TIMGroupQuit(quitGroupParams: QuitGroupParams): Promise<commonResult<string>>;
    TIMGroupInviteMember(inviteMemberParams: InviteMemberParams): Promise<commonResult<string>>;
    TIMGroupDeleteMember(deleteMemberParams: DeleteMemberParams): Promise<commonResult<DeleteMemberResult>>;
    TIMGroupGetJoinedGroupList(data?: string): Promise<commonResult<GroupInfo[]>>;
    TIMGroupGetGroupInfoList(getGroupListParams: GetGroupListParams): Promise<commonResult<GroupInfoResult[]>>;
    TIMMsgSendMessageReadReceipts(msgSendGroupMessageReceipts: MsgSendGroupMessageReceiptsParam): Promise<commonResult<string>>;
    TIMMsgGetMessageReadReceipts(msgGetGroupMessageReceipts: MsgGetGroupMessageReceiptsParam): Promise<commonResult<MessageReceipt[]>>;
    TIMMsgGetGroupMessageReadMemberList(msgGetGroupMessageReadMembers: MsgGetGroupMessageReadMembersParam): Promise<commonResult<GroupMemberInfo[]>>;
    TIMGroupModifyGroupInfo(modifyGroupParams: ModifyGroupParams): Promise<commonResult<string>>;
    TIMGroupGetMemberInfoList(getGroupMemberInfoParams: GetGroupMemberInfoParams): Promise<commonResult<GetMemberInfoResult>>;
    TIMGroupModifyMemberInfo(modifyMemberInfoParams: ModifyMemberInfoParams): Promise<commonResult<string>>;
    TIMGroupGetPendencyList(getPendencyListParams: GetPendencyListParams): Promise<commonResult<GroupPendencyResult>>;
    TIMGroupReportPendencyReaded(reportParams: ReportParams): Promise<commonResult<string>>;
    TIMGroupHandlePendency(handlePendencyParams: HandlePendencyParams): Promise<string>;
    TIMGroupGetOnlineMemberCount(params: GetOnlineMemberCountParams): Promise<commonResult<GetOnlineMemberCountResult>>;
    TIMGroupSetGroupCounters(params: GroupCounterParams): Promise<commonResult<GroupCounter[]>>;
    TIMGroupGetGroupCounters(params: GetGroupCounterParams): Promise<commonResult<GroupCounter[]>>;
    TIMGroupIncreaseGroupCounter(params: IncreaseGroupCounterParam): Promise<commonResult<GroupCounter[]>>;
    TIMGroupDecreaseGroupCounter(params: IncreaseGroupCounterParam): Promise<commonResult<GroupCounter[]>>;
    TIMGroupSearchGroups(searchGroupsParams: SearchGroupParams): Promise<commonResult<GroupInfo[]>>;
    TIMGroupSearchGroupMembers(searchMemberParams: SearchMemberParams): Promise<commonResult<SearchMemberResult[]>>;
    TIMFriendshipGetFriendProfileList(getFriendProfileListParams: GetFriendProfileListParams): Promise<commonResult<FriendProfile[]>>;
    TIMFriendshipAddFriend(addFriendParams: AddFriendParams): Promise<commonResult<FriendResult>>;
    TIMFriendshipHandleFriendAddRequest(handleFriendAddParams: HandleFriendAddParams): Promise<commonResult<FriendResult>>;
    TIMFriendshipModifyFriendProfile(modifyFriendProfileParams: ModifyFriendProfileParams): Promise<commonResult<string>>;
    TIMFriendshipDeleteFriend(deleteFriendParams: DeleteFriendParams): Promise<commonResult<FriendResult[]>>;
    TIMFriendshipCheckFriendType(checkFriendTypeParams: CheckFriendTypeParams): Promise<commonResult<CheckFriendTypeResult[]>>;
    TIMFriendshipCreateFriendGroup(createFriendGroupParams: CreateFriendGroupParams): Promise<commonResult<FriendResult[]>>;
    TIMFriendshipGetFriendGroupList(friendshipStringArrayParams: FriendshipStringArrayParams): Promise<commonResult<FriendGroupInfo[]>>;
    TIMFriendshipModifyFriendGroup(modifyFriendGroupParams: ModifyFriendGroupParams): Promise<commonResult<FriendResult[]>>;
    TIMFriendshipDeleteFriendGroup(friendshipStringArrayParams: FriendshipStringArrayParams): Promise<commonResult<string>>;
    TIMFriendshipAddToBlackList(friendshipStringArrayParams: FriendshipStringArrayParams): Promise<commonResult<FriendResult[]>>;
    TIMFriendshipGetBlackList(getBlackListParams: GetBlackListParams): Promise<commonResult<FriendProfile[]>>;
    TIMFriendshipDeleteFromBlackList(friendshipStringArrayParams: FriendshipStringArrayParams): Promise<commonResult<FriendResult[]>>;
    TIMFriendshipGetPendencyList(friendshipGetPendencyListParams: FriendshipGetPendencyListParams): Promise<commonResult<PendencyPage>>;
    TIMFriendshipDeletePendency(deletePendencyParams: DeletePendencyParams): Promise<commonResult<FriendResult[]>>;
    TIMFriendshipReportPendencyReaded(reportPendencyReadedParams: ReportPendencyReadedParams): Promise<commonResult<string>>;
    TIMFriendshipSearchFriends(searchFriendsParams: SearchFriendsParams): Promise<commonResult<FriendInfoGetResult[]>>;
    TIMFriendshipGetFriendsInfo(friendshipStringArrayParams: FriendshipStringArrayParams): Promise<commonResult<FriendInfoGetResult[]>>;
    TIMSetOnAddFriendCallback(params: TIMOnAddFriendCallbackParams): Promise<void>;
    TIMSetOnDeleteFriendCallback(params: TIMOnDeleteFriendCallbackParams): Promise<void>;
    TIMSetUpdateFriendProfileCallback(params: TIMUpdateFriendProfileCallbackParams): Promise<void>;
    TIMSetFriendAddRequestCallback(params: TIMFriendAddRequestCallbackParams): Promise<void>;
    TIMSetFriendApplicationListDeletedCallback(params: TIMFriendApplicationListDeletedCallbackParams): Promise<void>;
    TIMSetFriendApplicationListReadCallback(params: TIMFriendApplicationListReadCallbackParams): Promise<void>;
    TIMSetFriendBlackListAddedCallback(params: TIMFriendBlackListAddedCallbackParams): Promise<void>;
    TIMSetFriendBlackListDeletedCallback(params: TIMFriendBlackListDeletedCallbackParams): Promise<void>;
    TIMMsgSendMessage(msgSendMessageParams: MsgSendMessageParams): Promise<commonResult<string>>;
    TIMMsgModifyMessage(msgModifyMessageParams: MsgModifyMessageParams): Promise<commonResult<Json_value_msg>>;
    TIMMsgSendMessageV2(msgSendMessageParams: MsgSendMessageParamsV2): Promise<string>;
    TIMMsgSendReplyMessage(msgSendReplyMessage: MsgSendReplyMessage): Promise<string>;
    TIMMsgCancelSend(msgCancelSendParams: MsgCancelSendParams): Promise<commonResult<string>>;
    TIMMsgFindMessages(msgFindMessagesParams: MsgFindMessagesParams): Promise<commonResult<Json_value_msg[]>>;
    TIMMsgReportReaded(msgReportReadedParams: MsgReportReadedParams): Promise<commonResult<string>>;
    TIMMsgRevoke(msgRevokeParams: MsgRevokeParams): Promise<commonResult<string>>;
    TIMMsgFindByMsgLocatorList(msgFindByMsgLocatorListParams: MsgFindByMsgLocatorListParams): Promise<commonResult<Json_value_msg[]>>;
    TIMMsgImportMsgList(msgImportMsgListParams: MsgImportMsgListParams): Promise<commonResult<string>>;
    TIMMsgSaveMsg(msgSaveMsgParams: MsgSaveMsgParams): Promise<commonResult<Json_value_msg>>;
    TIMMsgGetMsgList(msgGetMsgListParams: MsgGetMsgListParams): Promise<commonResult<Json_value_msg[]>>;
    TIMMsgDelete(msgDeleteParams: MsgDeleteParams): Promise<commonResult<string>>;
    TIMMsgListDelete(msgListDeleteParams: MsgListDeleteParams): Promise<commonResult<string>>;
    TIMMsgClearHistoryMessage(msgClearHistoryMessageParams: MsgClearHistoryMessageParams): Promise<commonResult<string>>;
    TIMMsgSetC2CReceiveMessageOpt(msgSetC2CReceiveMessageOptParams: MsgSetC2CReceiveMessageOptParams): Promise<commonResult<string>>;
    TIMMsgGetC2CReceiveMessageOpt(msgGetC2CReceiveMessageOptParams: MsgGetC2CReceiveMessageOptParams): Promise<commonResult<C2CRecvMsgOptResult[]>>;
    TIMMsgSetGroupReceiveMessageOpt(msgSetGroupReceiveMessageOptParams: MsgSetGroupReceiveMessageOptParams): Promise<commonResult<string>>;
    TIMMsgDownloadMergerMessage(msgDownloadMergerMessageParams: MsgDownloadMergerMessageParams): Promise<commonResult<string>>;
    TIMMsgBatchSend(msgBatchSendParams: MsgBatchSendParams): Promise<commonResult<BatchSendResult[]>>;
    TIMMsgSearchLocalMessages(msgSearchLocalMessagesParams: MsgSearchLocalMessagesParams): Promise<commonResult<MessageSearchResult>>;
    TIMMsgSearchCloudMessages(msgSearchLocalMessagesParams: MsgSearchLocalMessagesParams): Promise<commonResult<MessageSearchResult>>;
    TIMMsgSetLocalCustomData(param: SetLocalCustomDataParam): Promise<commonResult<string>>;
    TIMMsgSetMessageExtensions(msgSetMessageExtensionsParam: TIMMsgSetMessageExtensionsParam): Promise<commonResult<string>>;
    TIMMsgGetMessageExtensions(msgGetMessageExtensions: TIMMsgGetMessageExtensionsParam): Promise<commonResult<MessageExtensionResult[]>>;
    TIMMsgDeleteMessageExtensions(msgDeleteMessageExtensions: TIMMsgDeleteMessageExtensionsParam): Promise<commonResult<MessageExtension[]>>;
    TIMMsgSetOfflinePushToken(params: OfflinePushToken): Promise<commonResult<string>>;
    TIMMsgTranslateText(params: TranslateTextParam): Promise<commonResult<MessageTranslateTextResult[]>>;
    TIMMsgConvertVoiceToText(params: ConvertVoiceToTextParam): Promise<commonResult<string>>;
    recvNewMsgCallback(json_msg_array: string, user_data: string): void;
    downloadCallback(data: [0, "", "", ""]): void;
    TIMAddRecvNewMsgCallback(params: TIMRecvNewMsgCallbackParams): Promise<void>;
    TIMMsgDownloadElemToPath(msgDownloadElemToPathParams: MsgDownloadElemToPathParams): Promise<void>;
    deleteRecvNewMsgCallback(callback: Function): void;
    TIMRemoveRecvNewMsgCallback(params?: TIMRecvNewMsgCallbackParams): Promise<void>;
    TIMSetMsgReadedReceiptCallback(params: TIMMsgReadedReceiptCallbackParams): Promise<void>;
    TIMSetMsgRevokeCallback(params: TIMMsgRevokeCallbackParams): Promise<void>;
    TIMSetMsgExtensionsChangedCallback(params: TIMSetMsgExtensionsChangedCallbackParam): Promise<void>;
    TIMSetMsgExtensionsDeletedCallback(params: TIMSetMsgExtensionsDeletedCallbackParam): Promise<void>;
    TIMSetMsgElemUploadProgressCallback(params: TIMMsgElemUploadProgressCallbackParams): Promise<void>;
    TIMSetMsgUpdateCallback(params: TIMMsgUpdateCallbackParams): Promise<void>;
    TIMInvite(params: inviteParam): Promise<commonResult<string>>;
    TIMInviteInGroup(params: inviteInGroupParam): Promise<commonResult<string>>;
    TIMCancelInvite(params: signalingParam): Promise<commonResult<string>>;
    TIMAcceptInvite(params: signalingParam): Promise<commonResult<string>>;
    TIMRejectInvite(params: signalingParam): Promise<commonResult<string>>;
    TIMGetSignalingInfo(params: getSignalingInfoParam): Promise<commonResult<SignalingInfo>>;
    TIMSignalingModifyInvitation(params: signalingParam): Promise<commonResult<string>>;
    TIMOnInvited(param: SetSignalingReceiveNewInvitationCallbackParam): Promise<any>;
    TIMOnAccepted(param: SetSignalingInviteeAcceptedCallbackParam): Promise<any>;
    TIMOnRejected(param: SetSignalingInviteeRejectedCallbackParam): Promise<any>;
    TIMOnCancelled(param: SetSignalingInvitationCancelledCallbackParam): Promise<any>;
    TIMOnTimeout(param: SetSignalingInvitationTimeoutCallParam): Promise<any>;
    TIMOnModified(param: SetSignalingInvitationModifiedCallback): Promise<any>;
    private _getSignalCustomData;
}

export { TimRender as default };
