mirai-js 2.8.3 → 2.8.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (83) hide show
  1. package/1.mp3 +0 -0
  2. package/README.md +2 -0
  3. package/demo.ts +3 -6
  4. package/dist/browser/mirai-js.js +1 -1
  5. package/dist/node/borwserEntry.js +21 -0
  6. package/dist/node/core/uploadVoice.js +1 -1
  7. package/dist/node/lib/index.ts +0 -0
  8. package/index.ts +36 -3
  9. package/package.json +1 -1
  10. package/src/borwserEntry.js +11 -0
  11. package/src/core/uploadVoice.js +1 -1
  12. package/src/lib/index.ts +0 -0
  13. package/srcold/BaseType.d.ts +419 -0
  14. package/srcold/Bot.d.ts +567 -0
  15. package/srcold/Bot.js +1208 -0
  16. package/srcold/FileManager.js +270 -0
  17. package/srcold/Message.d.ts +66 -0
  18. package/srcold/Message.js +314 -0
  19. package/srcold/Middleware.d.ts +170 -0
  20. package/srcold/Middleware.js +657 -0
  21. package/srcold/Waiter.d.ts +13 -0
  22. package/srcold/Waiter.js +24 -0
  23. package/srcold/core/anno/deleteAnno.js +43 -0
  24. package/srcold/core/anno/getAnno.js +44 -0
  25. package/srcold/core/anno/publishAnno.js +44 -0
  26. package/srcold/core/auth.js +40 -0
  27. package/srcold/core/fs/deleteGroupFile.js +45 -0
  28. package/srcold/core/fs/getGroupFileInfo.js +46 -0
  29. package/srcold/core/fs/getGroupFileList.js +47 -0
  30. package/srcold/core/fs/makeGroupDir.js +45 -0
  31. package/srcold/core/fs/moveGroupFile.js +47 -0
  32. package/srcold/core/fs/renameGroupFile.js +44 -0
  33. package/srcold/core/fs/uploadGroupFIle.js +58 -0
  34. package/srcold/core/getFriendList.js +37 -0
  35. package/srcold/core/getGroupConfig.js +37 -0
  36. package/srcold/core/getGroupList.js +37 -0
  37. package/srcold/core/getMemberInfo.js +41 -0
  38. package/srcold/core/getMemberList.js +49 -0
  39. package/srcold/core/getSessionConfig.js +39 -0
  40. package/srcold/core/getUserProfile.js +40 -0
  41. package/srcold/core/messageFromId.js +40 -0
  42. package/srcold/core/mute.js +41 -0
  43. package/srcold/core/muteAll.js +39 -0
  44. package/srcold/core/quitGroup.js +40 -0
  45. package/srcold/core/recall.js +39 -0
  46. package/srcold/core/releaseSession.js +41 -0
  47. package/srcold/core/removeFriend.js +40 -0
  48. package/srcold/core/removeMember.js +42 -0
  49. package/srcold/core/responseBotInvitedJoinGroupRequest.js +46 -0
  50. package/srcold/core/responseFirendRequest.js +45 -0
  51. package/srcold/core/responseMemberJoinRequest.js +47 -0
  52. package/srcold/core/sendCommand.js +41 -0
  53. package/srcold/core/sendFriendMessage.js +43 -0
  54. package/srcold/core/sendGroupMessage.js +43 -0
  55. package/srcold/core/sendImageMessage.js +4 -0
  56. package/srcold/core/sendNudge.js +43 -0
  57. package/srcold/core/sendTempMessage.js +55 -0
  58. package/srcold/core/setEssence.js +44 -0
  59. package/srcold/core/setGroupConfig.js +58 -0
  60. package/srcold/core/setMemberAdmin.js +44 -0
  61. package/srcold/core/setMemberInfo.js +48 -0
  62. package/srcold/core/setSessionConfig.js +41 -0
  63. package/srcold/core/startListeningBrowser.js +62 -0
  64. package/srcold/core/startListeningNode.js +74 -0
  65. package/srcold/core/stopListeningBrowser.js +34 -0
  66. package/srcold/core/stopListeningNode.js +34 -0
  67. package/srcold/core/unmute.js +40 -0
  68. package/srcold/core/unmuteAll.js +39 -0
  69. package/srcold/core/uploadImage.js +55 -0
  70. package/srcold/core/uploadVoice.js +54 -0
  71. package/srcold/core/verify.js +41 -0
  72. package/srcold/index.d.ts +10 -0
  73. package/srcold/index.js +21 -0
  74. package/srcold/interface.js +20 -0
  75. package/srcold/polyfill/URL.js +5 -0
  76. package/srcold/polyfill/wsListener.js +6 -0
  77. package/srcold/typeHelpers.d.ts +2 -0
  78. package/srcold/util/errCode.js +23 -0
  79. package/srcold/util/errorHandler.js +24 -0
  80. package/srcold/util/getInvalidParamsString.js +12 -0
  81. package/srcold/util/isBrowserEnv.js +3 -0
  82. package/srcold/util/random.js +6 -0
  83. package/webpack.config.js +3 -2
@@ -0,0 +1,567 @@
1
+ import {
2
+ // 图片 id 语音 id 消息 id
3
+ ImageId, VoiceId, MessageId,
4
+
5
+ // 事件类型 群成员权限 性别
6
+ EventType, EventEntityMap, GroupPermission, SEX,
7
+
8
+ // 接口 原始消息类型 事件处理器类型
9
+ MessageChainGetable, BotConfigGetable, MessageType,
10
+
11
+ Awaitable,
12
+ Processor,
13
+
14
+ } from './BaseType';
15
+
16
+ // 等待器
17
+ import { Waiter } from './Waiter';
18
+
19
+
20
+ export class Bot implements BotConfigGetable {
21
+ // 成员属性
22
+ public waiter: Waiter;
23
+
24
+ // 类属性
25
+ public static groupPermission: {
26
+ [k in GroupPermission]: k
27
+ };
28
+
29
+ // 一些私有的实例属性
30
+ private config: Bot.BotConfig;
31
+ private eventProcessorMap: Bot.EventProcessorMap;
32
+ private wsConnection: WebSocket;
33
+
34
+ // 普通成员方法
35
+ // implements BotConfigGetable
36
+ getBaseUrl(): string;
37
+ getQQ(): number;
38
+ getVerifyKey(): string;
39
+ getSessionKey(): string;
40
+
41
+ /**
42
+ * @description 连接到 mirai-api-http,并开启一个会话,重复调用意为重建会话
43
+ * open 方法 1. 建立会话 2. 绑定 qq 3. 与服务端建立 WebSocket 连接
44
+ * @param baseUrl 必选,mirai-api-http server 的地址
45
+ * @param verifyKey 必选,mirai-api-http server 设置的 verifyKey
46
+ * @param qq 必选,欲绑定的 qq 号,需要确保该 qq 号已在 mirai-console 登陆
47
+ */
48
+ open({ baseUrl, verifyKey, qq, singleMode }: Bot.OpenOptions): Promise<void>;
49
+
50
+ /**
51
+ * @description 监听 ws 消息
52
+ */
53
+ private __wsListen(): Promise<void>;
54
+
55
+ /**
56
+ * @description 关闭会话
57
+ * @param keepProcessor 可选,是否保留事件处理器,默认值为 false,不保留
58
+ * @param keepConfig 可选,是否保留 session baseUrl qq averifyKey,默认值为 false,不保留
59
+ */
60
+ close({ keepProcessor, keepConfig }?: Bot.CloseOptions): Promise<void>;
61
+
62
+ /**
63
+ * ! messageChain 将在未来被移除
64
+ * @description 向 qq 好友 或 qq 群发送消息,若同时提供,则优先向好友发送消息
65
+ * @param temp 可选,是否是临时会话,默认为 false
66
+ * @param friend 二选一,好友 qq 号
67
+ * @param group 二选一,群号
68
+ * @param quote 可选,消息引用,使用发送时返回的 messageId
69
+ * @param message 必选,Message 实例或 MessageType 数组
70
+ * @returns messageId 可用于撤回该消息
71
+ */
72
+ sendMessage({ temp, friend, group, quote, message }: Bot.SendMessageOptions): Promise<MessageId>;
73
+
74
+ /**
75
+ * @description 向好友或群成员发送戳一戳
76
+ * 如果提供了 group 参数则忽略 friend
77
+ * mirai-api-http-v1.10.1 feature
78
+ * @param friend 二选一,好友 qq 号
79
+ * @param group 二选一,群成员所在群
80
+ * @param target 必选,目标 qq 号
81
+ */
82
+ sendNudge({ friend, group, target }: Bot.SendNudgeOptions): Promise<void>;
83
+
84
+ /**
85
+ * @description 添加一个事件处理器
86
+ * 框架维护的 WebSocket 实例会在 ws 的事件 message 下分发 Mirai http server 的消息
87
+ * 回调函数 (data) => any,data 的结构取决于消息类型,详见 mirai-api-http 的文档
88
+ * 而对于 ws 的其他事件 error, close, unexpectedResponse,其回调函数分别为
89
+ * - 'error': (err: Error) => void
90
+ * - 'close': (code: number, message: string) => void
91
+ * - 'unexpected-response': (request: http.ClientRequest, response: http.IncomingMessage) => void
92
+ * @param eventType 必选,事件类型
93
+ * @param callback 必选,回调函数
94
+ * @returns handle 事件处理器的标识,用于移除该处理器
95
+ */
96
+ on<U extends EventType, E>(eventType: U, callback: Processor<[U], E>): number;
97
+ on<U extends EventType[], E>(eventType: U, callback: Processor<U, E>): number[];
98
+
99
+ /**
100
+ * @description 添加一个一次性事件处理器,回调一次后自动移除
101
+ * @param eventType 必选,事件类型
102
+ * @param callback 必选,回调函数
103
+ * @param strict 可选,是否严格检测调用,由于消息可能会被中间件拦截
104
+ * 当为 true 时,只有开发者的处理器结束后才会移除该处理器
105
+ * 当为 false 时,即使消息被拦截,也会移除该处理器
106
+ */
107
+ one<U extends EventType>(eventType: U, callback: Processor<[U]>, strict: boolean): void;
108
+ one<U extends EventType[]>(eventType: U, callback: Processor<U>, strict: boolean): void;
109
+
110
+ /**
111
+ * @description 移除一个事件处理器
112
+ * @param eventType 必选,事件类型
113
+ * @param handle 可选,事件处理器标识(或数组),由 on 方法
114
+ * 返回,未提供时将移除该事件下的所有处理器
115
+ */
116
+ off(eventType: EventType, handle?: number | number[]): void;
117
+
118
+ /**
119
+ * @description 移除所有事件处理器
120
+ * @param eventType 可选,事件类型(或数组)
121
+ */
122
+ offAll(eventType?: EventType | EventType[]): void;
123
+
124
+ /**
125
+ * @description 获取 config
126
+ */
127
+ getSessionConfig(): Promise<Bot.SessionConfig>;
128
+
129
+ /**
130
+ * @description 设置 config
131
+ * @param cacheSize 可选,插件缓存大小
132
+ * @param enableWebsocket 可选,websocket 状态
133
+ */
134
+ setSessionConfig({ cacheSize, enableWebsocket }: Bot.SessionConfig): Promise<void>;
135
+
136
+ /**
137
+ * @description 撤回由 messageId 确定的消息
138
+ * @param messageId 欲撤回消息的 messageId
139
+ */
140
+ recall({ messageId }: Bot.RecallOptions): Promise<void>;
141
+
142
+ /**
143
+ * @description 上传图片至服务器,返回指定 type 的 imageId,url,及 path
144
+ * @param type 可选,"friend" 或 "group" 或 "temp",默认为 "group"
145
+ * @param img 二选一,图片二进制数据
146
+ * @param filename 二选一,图片文件路径
147
+ */
148
+ uploadImage({ type, img, filename }: Bot.UploadImageOptions): Promise<Bot.ImageInfo>;
149
+
150
+
151
+ /**
152
+ * @description 上传语音至服务器,返回 voiceId, url 及 path
153
+ * @param type 目前仅支持 "group",请忽略该参数
154
+ * @param voice 二选一,语音二进制数据
155
+ * @param filename 二选一,语音文件路径
156
+ */
157
+ uploadVoice({ type, voice, filename }: Bot.UploadVoiceOptions): Promise<Bot.VoiceInfo>;
158
+
159
+ /**
160
+ * @description 获取好友列表
161
+ */
162
+ getFriendList(): Promise<Bot.FriendInfo[]>;
163
+
164
+ /**
165
+ * @description 获取群列表
166
+ */
167
+ getGroupList(): Promise<Bot.GroupInfo[]>;
168
+
169
+ /**
170
+ * @description 获取指定群的成员列表
171
+ * @param group 必选,欲获取成员列表的群号
172
+ */
173
+ getMemberList({ group }: Bot.GetMemberListOptions): Promise<Bot.MemberInfo[]>;
174
+
175
+ /**
176
+ * @description 获取群成员信息
177
+ * @param group 必选,群成员所在群号
178
+ * @param qq 必选,群成员的 qq 号
179
+ */
180
+ getMemberInfo({ group, qq }: Bot.GetMemberInfoOptions): Promise<Bot.MemberDetails>;
181
+
182
+ /**
183
+ * @description 获取群成员信息
184
+ * @param qq 必选,用户的 qq 号
185
+ */
186
+ getUserProfile({ qq }: Bot.GetUserProfileOptions): Promise<Bot.UserProfile>;
187
+
188
+ /**
189
+ * @description 设置群成员信息
190
+ * @param group 必选,群成员所在群号
191
+ * @param qq 必选,群成员的 qq 号
192
+ * @param name 可选,要设置的群名片
193
+ * @param title 可选,要设置的群头衔
194
+ * @param permission 可选,要设置的群头衔
195
+ */
196
+ setMemberInfo({ group, qq, name, title, permission }: Bot.SetMemberInfoOptions): Promise<void>;
197
+
198
+ /**
199
+ * @description 获取群公告列表迭代器
200
+ * @param group 必选,群号
201
+ * @returns 迭代器
202
+ */
203
+ getAnnoIter({ group }: Bot.GetAnnoIterOptions): AsyncGenerator<Bot.AnnoInfo>;
204
+
205
+ /**
206
+ * @description 发布群公告
207
+ * @param group 必选,群号
208
+ * @param content 必选,公告内容
209
+ */
210
+ publishAnno({ group, content, pinned }: Bot.PublishAnnoOptions): Promise<void>;
211
+
212
+ /**
213
+ * @description 删除群公告
214
+ * @param {number} group 必选,群号
215
+ * @param {string} fid 必选,公告 id
216
+ * @reaturns {void}
217
+ */
218
+ deleteAnno({ group, fid }: Bot.DeleteAnnoOptions): Promise<void>;
219
+
220
+ /**
221
+ * @description 禁言群成员
222
+ * @param group 必选,欲禁言成员所在群号
223
+ * @param qq 必选,欲禁言成员 qq 号
224
+ * @param time 必选,禁言时长,单位: s (秒)
225
+ */
226
+ mute({ group, qq, time }: Bot.MuteOptions): Promise<void>;
227
+
228
+ /**
229
+ * @description 全员禁言
230
+ * @param group 必选,欲全员禁言的群号
231
+ */
232
+ muteAll({ group }: Bot.MuteAllOptions): Promise<void>;
233
+
234
+ /**
235
+ * @description 解除禁言
236
+ * @param group 必选,欲解除禁言的成员所在群号
237
+ * @param qq 必选,欲解除禁言的成员 qq 号
238
+ */
239
+ unmute({ group, qq }: Bot.UnmuteOptions): Promise<void>;
240
+
241
+ /**
242
+ * @description 解除全员禁言
243
+ * @param group 必选,欲解除全员禁言的群号
244
+ */
245
+ unmuteAll({ group }: Bot.UnmuteAllOptions): Promise<void>;
246
+
247
+ /**
248
+ * @description 移除群成员
249
+ * @param group 必选,欲移除的成员所在群号
250
+ * @param qq 必选,欲移除的成员 qq 号
251
+ * @param message 可选,默认为空串 "",信息
252
+ */
253
+ removeMember({ group, qq, message }: Bot.RemoveMemberOptions): Promise<void>;
254
+
255
+ /**
256
+ * @description 删除好友
257
+ * @param qq 欲删除的好友 qq 号
258
+ */
259
+ removeFriend({ qq }: Bot.RemoveFriendOptions): Promise<void>;
260
+
261
+ /**
262
+ * @description 移除群成员
263
+ * @param group 必选,欲移除的成员所在群号
264
+ */
265
+ quitGroup({ group }: Bot.QuitGroupOptions): Promise<void>;
266
+
267
+ /**
268
+ * @description 获取群配置
269
+ * @param group 必选,群号
270
+ */
271
+ getGroupConfig({ group }: Bot.GetGroupOptions): Promise<Bot.GroupConfig>;
272
+
273
+ /**
274
+ * @description 设置群配置
275
+ * @param target 必选,群号
276
+ * @param name 可选,群名
277
+ * @param announcement 可选,群公告
278
+ * @param confessTalk 可选,是否开启坦白说
279
+ * @param allowMemberInvite 可选,是否允许群员邀请
280
+ * @param autoApprove 可选,是否开启自动审批入群
281
+ * @param anonymousChat 可选,是否允许匿名聊天
282
+ */
283
+ setGroupConfig({
284
+ group: number,
285
+ name, announcement, confessTalk,
286
+ allowMemberInvite, autoApprove, anonymousChat,
287
+ }: Bot.SetGroupConfigOptions): Promise<void>;
288
+
289
+ /**
290
+ * @description 设置群精华消息
291
+ * @param messageId 必选,消息 id
292
+ */
293
+ setEssence({ messageId }: Bot.SetEssenceOptions): Promise<void>;
294
+
295
+ /**
296
+ * @description 向 mirai-console 发送指令
297
+ * @param command 必选,指令名
298
+ */
299
+ sendCommand({ command }: Bot.SendCommandOptions): Promise<Bot.MiraiConsoleMessage>;
300
+
301
+ /**
302
+ * @description 通过 messageId 获取消息
303
+ * @param {number} target 可选, 目标 qq 号/群号, mah v2.6.0+ 新增该参数
304
+ * @param {number} messageId 必选, 消息 id
305
+ * @returns
306
+ */
307
+ getMessageById({ messageId, target }: Bot.GetMessageByIdOptions): Promise<Bot.MessageFromMessageId>
308
+
309
+ // 类方法
310
+ /**
311
+ * @description 检测该账号是否已经在 mirai-console 登录
312
+ * @param baseUrl 必选,mirai-api-http server 的地址
313
+ * @param verifyKey 必选,mirai-api-http server 设置的 verifyKey
314
+ * @param qq 必选,qq 号
315
+ */
316
+ static isBotLoggedIn({ baseUrl, verifyKey, qq }: Bot.IsBotLoggedInOptions): Promise<boolean>;
317
+
318
+ }
319
+
320
+ // 类型
321
+ declare namespace Bot {
322
+
323
+ interface BotConfig {
324
+ baseUrl: string;
325
+ qq: number;
326
+ verifyKey: string;
327
+ sessionKey: string;
328
+ }
329
+
330
+ // An index signature parameter type cannot be a union type. Consider using a mapped object type instead.
331
+ type EventProcessorMap = {
332
+ // 索引不能使用联合类型
333
+ [eventType in EventType]: {
334
+ [handler: number]: (data: EventEntityMap[eventType]) => Awaitable<void | any>;
335
+ };
336
+ }
337
+
338
+ interface OpenOptions {
339
+ baseUrl?: string;
340
+ verifyKey?: string;
341
+ qq?: number;
342
+ singleMode?: boolean;
343
+ }
344
+
345
+ interface CloseOptions {
346
+ keepProcessor?: boolean;
347
+ keepConfig?: boolean;
348
+ }
349
+
350
+ interface SendMessageOptions {
351
+ temp?: boolean;
352
+ friend?: number;
353
+ group?: number;
354
+ quote?: MessageId;
355
+ message?: MessageChainGetable | MessageType[];
356
+ }
357
+
358
+ interface SendNudgeOptions {
359
+ friend?: number;
360
+ group?: number;
361
+ target: number;
362
+ }
363
+
364
+ interface SessionConfig {
365
+ cacheSize?: number;
366
+ enableWebsocket?: boolean;
367
+ }
368
+
369
+ interface RecallOptions {
370
+ messageId: MessageId;
371
+ }
372
+
373
+ interface UploadImageOptions {
374
+ type?: 'friend' | 'group' | 'temp';
375
+ img?: Buffer;
376
+ filename?: string;
377
+ }
378
+
379
+ interface UploadVoiceOptions {
380
+ type?: 'friend' | 'group' | 'temp';
381
+ voice?: Buffer;
382
+ filename?: string;
383
+ }
384
+
385
+ interface ImageInfo {
386
+ imageId: ImageId;
387
+ url: string;
388
+ path: string;
389
+ }
390
+
391
+ interface VoiceInfo {
392
+ voiceId: VoiceId;
393
+ url: string;
394
+ path: string;
395
+ }
396
+
397
+ interface FriendInfo {
398
+ id: number;
399
+ name: string;
400
+ remark: string;
401
+ }
402
+
403
+ interface GroupInfo {
404
+ id: number;
405
+ name: string;
406
+ permission: GroupPermission;
407
+ }
408
+
409
+ interface MemberInfo {
410
+ id: number;
411
+ name: string;
412
+ permission: GroupPermission;
413
+ }
414
+
415
+ interface GetMemberInfoOptions {
416
+ group: number;
417
+ qq: number;
418
+ }
419
+
420
+ interface MemberDetails {
421
+ id: number;
422
+ joinTimestamp: number;
423
+ lastSpeakTimestamp: number;
424
+ memberName: string;
425
+ nuteTimeRemaining: number;
426
+ permission: GroupPermission;
427
+ title: string;
428
+ }
429
+
430
+ interface GetMemberListOptions {
431
+ group: number;
432
+ }
433
+
434
+ interface GetUserProfileOptions {
435
+ qq: number;
436
+ }
437
+
438
+ interface UserProfile {
439
+ nickname: string;
440
+ email: string;
441
+ age: number;
442
+ level: number;
443
+ sign: string;
444
+ sex: SEX;
445
+ }
446
+
447
+ interface SetMemberInfoOptions {
448
+ group: number;
449
+ qq: number;
450
+ name?: string;
451
+ title?: string;
452
+ permission?: GroupPermission
453
+ }
454
+
455
+ interface GetAnnoIterOptions {
456
+ group: number;
457
+ }
458
+
459
+ interface PublishAnnoOptions {
460
+ group: number;
461
+ content: string;
462
+ pinned: boolean;
463
+ }
464
+
465
+ interface DeleteAnnoOptions {
466
+ group: number;
467
+ fid: string;
468
+ }
469
+ interface AnnoInfo {
470
+ group: { id: number; name: string; permission: GroupPermission; };
471
+ content: string;
472
+ senderId: number;
473
+ fid: string;
474
+ allConfirmed: boolean;
475
+ confirmedMembersCount: number;
476
+ publicationTime: number;
477
+ }
478
+
479
+ interface MuteOptions {
480
+ group: number;
481
+ qq: number;
482
+ time: number;
483
+ }
484
+
485
+ interface MuteAllOptions {
486
+ group: number;
487
+ }
488
+
489
+ interface UnmuteOptions {
490
+ group: number;
491
+ qq: number;
492
+ }
493
+
494
+ interface UnmuteAllOptions {
495
+ group: number;
496
+ }
497
+
498
+ interface RemoveMemberOptions {
499
+ group: number;
500
+ qq: number;
501
+ message?: string;
502
+ }
503
+
504
+ interface RemoveFriendOptions {
505
+ qq: number;
506
+ }
507
+
508
+ interface QuitGroupOptions {
509
+ group: number;
510
+ }
511
+
512
+ interface GetGroupOptions {
513
+ group: number;
514
+ }
515
+
516
+ interface GroupConfig {
517
+ name: string;
518
+ announcement: string;
519
+ confessTalk: boolean;
520
+ allowMemberInvite: boolean;
521
+ autoApprove: boolean;
522
+ anonymousChat: boolean;
523
+ }
524
+
525
+ interface SetGroupConfigOptions {
526
+ group: number;
527
+ name?: string;
528
+ announcement?: string;
529
+ confessTalk?: boolean;
530
+ allowMemberInvite?: boolean;
531
+ autoApprove?: boolean;
532
+ anonymousChat?: boolean;
533
+ }
534
+
535
+ interface SetEssenceOptions {
536
+ messageId: number;
537
+ }
538
+
539
+ interface SendCommandOptions {
540
+ command: string[];
541
+ }
542
+
543
+ interface GetMessageByIdOptions {
544
+ messageId: number;
545
+ target?: number;
546
+ }
547
+
548
+ interface MessageFromMessageId {
549
+ type: 'FriendMessage' | 'GroupMessage' | 'TempMessage';
550
+ messageChain: MessageType[];
551
+ sender: {
552
+ id?: number;
553
+ nickname?: string;
554
+ remark?: string;
555
+ }
556
+ }
557
+
558
+ interface IsBotLoggedInOptions {
559
+ baseUrl: string;
560
+ verifyKey: string;
561
+ qq: number;
562
+ }
563
+
564
+ interface MiraiConsoleMessage {
565
+ message: string
566
+ }
567
+ }