zaileys 4.7.1 → 4.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (143) hide show
  1. package/README.md +5 -0
  2. package/dist/auth/adapters/convex.d.ts +9 -0
  3. package/dist/auth/adapters/file.d.ts +16 -0
  4. package/dist/auth/adapters/index.d.ts +6 -0
  5. package/dist/auth/adapters/memory.d.ts +9 -0
  6. package/dist/auth/adapters/postgres.d.ts +20 -0
  7. package/dist/auth/adapters/redis.d.ts +27 -0
  8. package/dist/auth/adapters/sqlite.d.ts +19 -0
  9. package/dist/auth/cache.d.ts +11 -0
  10. package/dist/auth/index.d.ts +3 -0
  11. package/dist/auth/types.d.ts +21 -0
  12. package/dist/automation/auto-delete.d.ts +30 -0
  13. package/dist/automation/broadcast.d.ts +10 -0
  14. package/dist/automation/errors.d.ts +8 -0
  15. package/dist/automation/index.d.ts +11 -0
  16. package/dist/automation/operation-guard.d.ts +20 -0
  17. package/dist/automation/presence.d.ts +28 -0
  18. package/dist/automation/queue.d.ts +18 -0
  19. package/dist/automation/rate-limiter.d.ts +18 -0
  20. package/dist/automation/schedule.d.ts +45 -0
  21. package/dist/automation/types.d.ts +31 -0
  22. package/dist/builder/album.d.ts +4 -0
  23. package/dist/builder/builder.d.ts +59 -0
  24. package/dist/builder/content/airich.d.ts +80 -0
  25. package/dist/builder/content/audio.d.ts +9 -0
  26. package/dist/builder/content/buttons.d.ts +30 -0
  27. package/dist/builder/content/carousel.d.ts +19 -0
  28. package/dist/builder/content/contact.d.ts +13 -0
  29. package/dist/builder/content/document.d.ts +9 -0
  30. package/dist/builder/content/event.d.ts +3 -0
  31. package/dist/builder/content/group-invite.d.ts +3 -0
  32. package/dist/builder/content/image.d.ts +8 -0
  33. package/dist/builder/content/list.d.ts +14 -0
  34. package/dist/builder/content/location.d.ts +11 -0
  35. package/dist/builder/content/markdown.d.ts +2 -0
  36. package/dist/builder/content/poll.d.ts +10 -0
  37. package/dist/builder/content/product.d.ts +3 -0
  38. package/dist/builder/content/sticker.d.ts +7 -0
  39. package/dist/builder/content/template.d.ts +3 -0
  40. package/dist/builder/content/text.d.ts +4 -0
  41. package/dist/builder/content/video.d.ts +10 -0
  42. package/dist/builder/edit-builder.d.ts +15 -0
  43. package/dist/builder/errors.d.ts +8 -0
  44. package/dist/builder/index.d.ts +6 -0
  45. package/dist/builder/media-loader.d.ts +11 -0
  46. package/dist/builder/mutations.d.ts +14 -0
  47. package/dist/builder/state.d.ts +15 -0
  48. package/dist/builder/types.d.ts +164 -0
  49. package/dist/builder/username-resolve.d.ts +8 -0
  50. package/dist/client/client.d.ts +160 -0
  51. package/dist/client/event-emitter.d.ts +19 -0
  52. package/dist/client/index.d.ts +3 -0
  53. package/dist/client/types.d.ts +119 -0
  54. package/dist/cloud/errors.d.ts +14 -0
  55. package/dist/cloud/graph-client.d.ts +15 -0
  56. package/dist/cloud/index.d.ts +6 -0
  57. package/dist/cloud/media.d.ts +15 -0
  58. package/dist/cloud/module.d.ts +147 -0
  59. package/dist/cloud/translate/inbound.d.ts +119 -0
  60. package/dist/cloud/translate/interactive.d.ts +2 -0
  61. package/dist/cloud/translate/outbound.d.ts +21 -0
  62. package/dist/cloud/transport.d.ts +51 -0
  63. package/dist/cloud/types.d.ts +17 -0
  64. package/dist/cloud/webhook.d.ts +11 -0
  65. package/dist/command/dispatcher.d.ts +23 -0
  66. package/dist/command/errors.d.ts +8 -0
  67. package/dist/command/index.d.ts +7 -0
  68. package/dist/command/middleware.d.ts +2 -0
  69. package/dist/command/parser.d.ts +2 -0
  70. package/dist/command/registry.d.ts +13 -0
  71. package/dist/command/types.d.ts +30 -0
  72. package/dist/connection/auth-adapter.d.ts +4 -0
  73. package/dist/connection/auth-guard.d.ts +37 -0
  74. package/dist/connection/disconnect-reason.d.ts +6 -0
  75. package/dist/connection/index.d.ts +7 -0
  76. package/dist/connection/pairing-flow.d.ts +16 -0
  77. package/dist/connection/qr-terminal.d.ts +2 -0
  78. package/dist/connection/reconnect.d.ts +15 -0
  79. package/dist/connection/state-machine.d.ts +9 -0
  80. package/dist/connection/status-log.d.ts +25 -0
  81. package/dist/domain/business.d.ts +19 -0
  82. package/dist/domain/chat.d.ts +27 -0
  83. package/dist/domain/community.d.ts +28 -0
  84. package/dist/domain/contact.d.ts +21 -0
  85. package/dist/domain/errors.d.ts +8 -0
  86. package/dist/domain/group.d.ts +35 -0
  87. package/dist/domain/index.d.ts +11 -0
  88. package/dist/domain/newsletter.d.ts +35 -0
  89. package/dist/domain/privacy.d.ts +15 -0
  90. package/dist/domain/profile.d.ts +14 -0
  91. package/dist/domain/socket-like.d.ts +117 -0
  92. package/dist/domain/types.d.ts +24 -0
  93. package/dist/events/context.d.ts +238 -0
  94. package/dist/events/decoders/_media-download.d.ts +8 -0
  95. package/dist/events/decoders/_shared.d.ts +26 -0
  96. package/dist/events/decoders/calls.d.ts +11 -0
  97. package/dist/events/decoders/groups.d.ts +36 -0
  98. package/dist/events/decoders/interactive.d.ts +9 -0
  99. package/dist/events/decoders/lifecycle.d.ts +69 -0
  100. package/dist/events/decoders/messages.d.ts +30 -0
  101. package/dist/events/decoders/mutations.d.ts +24 -0
  102. package/dist/events/guards.d.ts +9 -0
  103. package/dist/events/index.d.ts +4 -0
  104. package/dist/events/pipeline.d.ts +37 -0
  105. package/dist/events/types.d.ts +187 -0
  106. package/dist/index.cjs +20 -15
  107. package/dist/index.d.ts +15 -2264
  108. package/dist/index.mjs +20 -15
  109. package/dist/media/ffmpeg/audio.d.ts +12 -0
  110. package/dist/media/ffmpeg/core.d.ts +67 -0
  111. package/dist/media/ffmpeg/document.d.ts +10 -0
  112. package/dist/media/ffmpeg/image.d.ts +7 -0
  113. package/dist/media/ffmpeg/index.d.ts +7 -0
  114. package/dist/media/ffmpeg/sticker.d.ts +14 -0
  115. package/dist/media/ffmpeg/transform.d.ts +2 -0
  116. package/dist/media/ffmpeg/video.d.ts +6 -0
  117. package/dist/media/index.d.ts +2 -0
  118. package/dist/media/media.d.ts +39 -0
  119. package/dist/plugin/index.d.ts +5 -0
  120. package/dist/plugin/loader.d.ts +30 -0
  121. package/dist/plugin/registry.d.ts +24 -0
  122. package/dist/plugin/types.d.ts +25 -0
  123. package/dist/store/adapters/convex.d.ts +33 -0
  124. package/dist/store/adapters/index.d.ts +5 -0
  125. package/dist/store/adapters/memory.d.ts +31 -0
  126. package/dist/store/adapters/postgres.d.ts +40 -0
  127. package/dist/store/adapters/redis.d.ts +49 -0
  128. package/dist/store/adapters/sqlite.d.ts +36 -0
  129. package/dist/store/index.d.ts +2 -0
  130. package/dist/store/types.d.ts +48 -0
  131. package/dist/transport/index.d.ts +1 -0
  132. package/dist/transport/types.d.ts +18 -0
  133. package/dist/types/convex.d.ts +35 -0
  134. package/dist/types/index.d.ts +4 -0
  135. package/dist/types/lid-mapping.d.ts +5 -0
  136. package/dist/types/optional-clients.d.ts +69 -0
  137. package/dist/types/store-error.d.ts +8 -0
  138. package/dist/utils/array.d.ts +1 -0
  139. package/dist/utils/index.d.ts +5 -0
  140. package/dist/utils/jid.d.ts +6 -0
  141. package/dist/utils/logger.d.ts +10 -0
  142. package/package.json +7 -7
  143. package/dist/index.d.cts +0 -2264
@@ -0,0 +1,36 @@
1
+ import type { GroupJoinPayload, GroupLeavePayload, GroupUpdatePayload, MemberTagPayload } from '../types.js';
2
+ export interface GroupMetadataUpdate {
3
+ id?: string;
4
+ subject?: string;
5
+ desc?: string;
6
+ announce?: boolean;
7
+ restrict?: boolean;
8
+ ephemeralDuration?: number;
9
+ }
10
+ export interface RawGroupParticipant {
11
+ id: string;
12
+ lid?: string;
13
+ pn?: string;
14
+ phoneNumber?: string;
15
+ username?: string;
16
+ admin?: 'admin' | 'superadmin' | null;
17
+ }
18
+ export interface GroupParticipantsUpdate {
19
+ id?: string;
20
+ author?: string;
21
+ authorPn?: string;
22
+ authorUsername?: string;
23
+ participants: RawGroupParticipant[];
24
+ action: string;
25
+ }
26
+ export interface MemberTagUpdate {
27
+ groupId?: string;
28
+ participant?: string;
29
+ participantAlt?: string;
30
+ label?: string;
31
+ messageTimestamp?: number;
32
+ }
33
+ export declare const decodeGroupUpdate: (item: GroupMetadataUpdate) => GroupUpdatePayload | null;
34
+ export declare const decodeMemberTag: (item: MemberTagUpdate) => MemberTagPayload | null;
35
+ export declare const decodeGroupJoin: (item: GroupParticipantsUpdate) => GroupJoinPayload | null;
36
+ export declare const decodeGroupLeave: (item: GroupParticipantsUpdate) => GroupLeavePayload | null;
@@ -0,0 +1,9 @@
1
+ import type { WAMessage } from 'baileys';
2
+ import type { Logger } from '../../client/types.js';
3
+ import type { ButtonClickPayload, ListSelectPayload } from '../types.js';
4
+ export interface InteractiveContext {
5
+ selfJid: string;
6
+ logger?: Logger;
7
+ }
8
+ export declare const decodeButtonClick: (msg: WAMessage, ctx: InteractiveContext) => ButtonClickPayload | null;
9
+ export declare const decodeListSelect: (msg: WAMessage, ctx: InteractiveContext) => ListSelectPayload | null;
@@ -0,0 +1,69 @@
1
+ import type { HistorySyncPayload, LimitedPayload, NewsletterPayload, PresencePayload } from '../types.js';
2
+ export interface RawHistorySync {
3
+ syncType: number | string;
4
+ status: string;
5
+ explicit: boolean;
6
+ }
7
+ export interface RawReachoutTimelock {
8
+ isActive?: boolean;
9
+ timeEnforcementEnds?: Date | number;
10
+ enforcementType?: string;
11
+ }
12
+ export interface RawCapInfo {
13
+ capping_status?: string;
14
+ used_quota?: number;
15
+ total_quota?: number;
16
+ }
17
+ export type LimitedInput = {
18
+ source: 'connection-update';
19
+ reachoutTimeLock: RawReachoutTimelock;
20
+ } | {
21
+ source: 'message-capping';
22
+ capInfo: RawCapInfo;
23
+ };
24
+ export interface RawPresence {
25
+ id: string;
26
+ presences: {
27
+ [participant: string]: {
28
+ lastKnownPresence?: string;
29
+ lastSeen?: number;
30
+ };
31
+ };
32
+ }
33
+ export type NewsletterInput = {
34
+ source: 'reaction';
35
+ payload: {
36
+ id: string;
37
+ server_id?: string;
38
+ reaction?: {
39
+ code?: string;
40
+ count?: number;
41
+ };
42
+ };
43
+ } | {
44
+ source: 'view';
45
+ payload: {
46
+ id: string;
47
+ server_id?: string;
48
+ count?: number;
49
+ };
50
+ } | {
51
+ source: 'participants';
52
+ payload: {
53
+ id: string;
54
+ author?: string;
55
+ user?: string;
56
+ new_role?: string;
57
+ action?: string;
58
+ };
59
+ } | {
60
+ source: 'settings';
61
+ payload: {
62
+ id: string;
63
+ update?: Record<string, unknown>;
64
+ };
65
+ };
66
+ export declare const decodeHistorySync: (item: RawHistorySync) => HistorySyncPayload | null;
67
+ export declare const decodeLimited: (input: LimitedInput) => LimitedPayload | null;
68
+ export declare const decodePresence: (item: RawPresence) => PresencePayload[];
69
+ export declare const decodeNewsletter: (input: NewsletterInput) => NewsletterPayload | null;
@@ -0,0 +1,30 @@
1
+ import { type WAMessage, type WAMessageKey } from 'baileys';
2
+ import type { TextOptions } from '../../builder/builder.js';
3
+ import { type CitationConfig, type MentionAllContext, type MentionContext, type MessageContext } from '../context.js';
4
+ import { type DownloadLogger } from './_media-download.js';
5
+ export interface DecodeContext {
6
+ selfJid: string;
7
+ selfLid?: string;
8
+ selfName?: string;
9
+ lidMap?: Map<string, string>;
10
+ logger?: DownloadLogger;
11
+ channelId?: string;
12
+ receiverId?: string;
13
+ prefixes?: string[];
14
+ citationConfig?: CitationConfig;
15
+ resolveRoomName?: (roomId: string) => Promise<string | null>;
16
+ resolveReceiverName?: () => Promise<string | null>;
17
+ resolveQuoted?: (id: string, remoteJid: string) => Promise<WAMessage | null>;
18
+ reply?: (target: string, content: string, opts: TextOptions | undefined, quoted: WAMessage) => Promise<WAMessageKey>;
19
+ react?: (key: WAMessageKey, emoji: string) => Promise<WAMessageKey>;
20
+ }
21
+ export declare const rawMentionsOf: (msg: WAMessage) => string[];
22
+ export declare const decodeMessage: (msg: WAMessage, ctx: DecodeContext) => MessageContext | null;
23
+ export declare const decodeText: (msg: WAMessage, ctx: DecodeContext) => MessageContext | null;
24
+ export declare const decodeImage: (msg: WAMessage, ctx: DecodeContext) => MessageContext | null;
25
+ export declare const decodeVideo: (msg: WAMessage, ctx: DecodeContext) => MessageContext | null;
26
+ export declare const decodeAudio: (msg: WAMessage, ctx: DecodeContext) => MessageContext | null;
27
+ export declare const decodeDocument: (msg: WAMessage, ctx: DecodeContext) => MessageContext | null;
28
+ export declare const decodeSticker: (msg: WAMessage, ctx: DecodeContext) => MessageContext | null;
29
+ export declare const decodeMention: (msg: WAMessage, ctx: DecodeContext) => MentionContext | null;
30
+ export declare const decodeMentionAll: (msg: WAMessage, ctx: DecodeContext) => MentionAllContext | null;
@@ -0,0 +1,24 @@
1
+ import { proto, type WAMessageKey } from 'baileys';
2
+ import type { DeletePayload, EditPayload, PollVotePayload, ReactionPayload } from '../types.js';
3
+ import { type LongLike } from './_shared.js';
4
+ export interface MutationContext {
5
+ selfJid: string;
6
+ pushName?: string;
7
+ }
8
+ export interface ReactionItem {
9
+ key: WAMessageKey;
10
+ reaction: proto.IReaction;
11
+ }
12
+ export interface MessageUpdate {
13
+ key: WAMessageKey;
14
+ update: {
15
+ message?: proto.IMessage | null;
16
+ messageTimestamp?: number | LongLike | null;
17
+ pollUpdates?: proto.IPollUpdate[] | null;
18
+ status?: number | null;
19
+ };
20
+ }
21
+ export declare const decodeReaction: (item: ReactionItem, ctx: MutationContext) => ReactionPayload | null;
22
+ export declare const decodeEdit: (update: MessageUpdate, ctx: MutationContext) => EditPayload | null;
23
+ export declare const decodeDelete: (update: MessageUpdate, ctx: MutationContext) => DeletePayload | null;
24
+ export declare const decodePollVote: (update: MessageUpdate, ctx: MutationContext) => PollVotePayload | null;
@@ -0,0 +1,9 @@
1
+ import type { WAMessage, MessageUpsertType } from 'baileys';
2
+ export declare const SELF_ONLY_PROTOCOL_TYPES: readonly ["HISTORY_SYNC_NOTIFICATION", "APP_STATE_SYNC_KEY_SHARE", "LID_MIGRATION_MAPPING_SYNC", "PEER_DATA_OPERATION_REQUEST_RESPONSE_MESSAGE"];
3
+ export type SelfOnlyProtocolType = (typeof SELF_ONLY_PROTOCOL_TYPES)[number];
4
+ export interface UpsertPayload {
5
+ messages: WAMessage[];
6
+ type: MessageUpsertType;
7
+ requestId?: string;
8
+ }
9
+ export declare const dropSpoofedSelfOnly: (upsert: UpsertPayload) => UpsertPayload;
@@ -0,0 +1,4 @@
1
+ export * from './guards.js';
2
+ export type { ButtonClickPayload, CallBase, CallPayload, DeletePayload, EditPayload, GroupJoinPayload, GroupLeavePayload, GroupParticipantInfo, GroupUpdatePayload, HistorySyncPayload, InboundEventMap, InboundEventName, LimitedPayload, ListSelectPayload, MediaDescriptor, MediaDownloadResult, MediaKind, MemberTagPayload, NewsletterPayload, PollVotePayload, PresencePayload, QuotedRef, ReactionPayload, SenderInfo, } from './types.js';
3
+ export type { BuildContextInput, ChatType, CitationConfig, CitationPredicates, ContextMedia, MentionAllContext, MentionContext, MessageContext, SenderDevice, } from './context.js';
4
+ export { buildMessageContext } from './context.js';
@@ -0,0 +1,37 @@
1
+ import type { WAMessage, WAMessageKey } from 'baileys';
2
+ import type { CitationConfig } from './context.js';
3
+ import type { TextOptions } from '../builder/builder.js';
4
+ import type { ClientEventMap, Logger } from '../client/types.js';
5
+ import type { TypedEventEmitter } from '../client/event-emitter.js';
6
+ export interface InboundPipelineHandle {
7
+ detach: () => void;
8
+ }
9
+ export interface InboundPipelineContext {
10
+ selfJid: string;
11
+ selfLid?: string;
12
+ selfName?: string;
13
+ logger?: Logger;
14
+ channelId?: string;
15
+ receiverId?: string;
16
+ prefixes?: string[];
17
+ citationConfig?: CitationConfig;
18
+ groupMetadata?: (groupId: string) => Promise<{
19
+ subject?: string;
20
+ } | null>;
21
+ receiverName?: () => Promise<string | null>;
22
+ resolveQuoted?: (id: string, remoteJid: string) => Promise<WAMessage | null>;
23
+ resolveLidToPn?: (lid: string) => Promise<string | null>;
24
+ sendReply?: (target: string, content: string, opts: TextOptions | undefined, quoted: WAMessage) => Promise<WAMessageKey>;
25
+ react?: (key: WAMessageKey, emoji: string) => Promise<WAMessageKey>;
26
+ ignoreMe?: boolean;
27
+ }
28
+ export interface BaileysEventSurface {
29
+ on: (event: string, handler: (...args: unknown[]) => void) => void;
30
+ off: (event: string, handler: (...args: unknown[]) => void) => void;
31
+ }
32
+ export interface PipelineSocketLike {
33
+ ev: BaileysEventSurface;
34
+ }
35
+ type ClientEmitter = TypedEventEmitter<ClientEventMap>;
36
+ export declare function attachInboundPipeline(client: ClientEmitter, socket: PipelineSocketLike, ctx: InboundPipelineContext): InboundPipelineHandle;
37
+ export {};
@@ -0,0 +1,187 @@
1
+ import type { WAMessageKey } from 'baileys';
2
+ import type { MentionAllContext, MentionContext, MessageContext } from './context.js';
3
+ export interface SenderInfo {
4
+ jid: string;
5
+ deviceJid?: string;
6
+ lid?: string;
7
+ pn?: string;
8
+ username?: string;
9
+ pushName?: string;
10
+ isMe?: boolean;
11
+ }
12
+ export interface GroupParticipantInfo {
13
+ jid: string;
14
+ participantAlt?: string;
15
+ authorPn?: string;
16
+ authorUsername?: string;
17
+ isAdmin?: boolean;
18
+ }
19
+ export interface QuotedRef {
20
+ key: WAMessageKey;
21
+ content?: string;
22
+ sender?: SenderInfo;
23
+ }
24
+ export type MediaKind = 'image' | 'video' | 'audio' | 'document' | 'sticker';
25
+ export interface MediaDownloadResult {
26
+ buffer: Buffer;
27
+ mime: string;
28
+ size: number;
29
+ }
30
+ export interface MediaDescriptor {
31
+ mimetype: string;
32
+ size?: number;
33
+ caption?: string;
34
+ fileName?: string;
35
+ ptt?: boolean;
36
+ }
37
+ export interface ReactionPayload {
38
+ key: WAMessageKey;
39
+ emoji: string | null;
40
+ sender: SenderInfo;
41
+ timestamp: number;
42
+ }
43
+ export interface EditPayload {
44
+ key: WAMessageKey;
45
+ newContent: string;
46
+ editedAt: number;
47
+ sender: SenderInfo;
48
+ }
49
+ export interface DeletePayload {
50
+ key: WAMessageKey;
51
+ deletedFor: 'everyone' | 'me';
52
+ sender: SenderInfo;
53
+ timestamp: number;
54
+ }
55
+ export interface PollVotePayload {
56
+ pollKey: WAMessageKey;
57
+ selectedOptions: string[];
58
+ voter: SenderInfo;
59
+ timestamp: number;
60
+ }
61
+ export interface ButtonClickPayload {
62
+ key: WAMessageKey;
63
+ buttonId: string;
64
+ buttonText?: string;
65
+ sender: SenderInfo;
66
+ timestamp: number;
67
+ }
68
+ export interface ListSelectPayload {
69
+ key: WAMessageKey;
70
+ rowId: string;
71
+ title?: string;
72
+ sender: SenderInfo;
73
+ timestamp: number;
74
+ }
75
+ export interface GroupUpdatePayload {
76
+ groupId: string;
77
+ update: Partial<{
78
+ subject: string;
79
+ description: string;
80
+ announce: boolean;
81
+ restrict: boolean;
82
+ ephemeralDuration: number;
83
+ }>;
84
+ timestamp: number;
85
+ }
86
+ export interface GroupJoinPayload {
87
+ groupId: string;
88
+ participants: GroupParticipantInfo[];
89
+ action: 'add' | 'invite' | 'invite-link';
90
+ by?: string;
91
+ timestamp: number;
92
+ }
93
+ export interface GroupLeavePayload {
94
+ groupId: string;
95
+ participants: GroupParticipantInfo[];
96
+ action: 'remove' | 'leave';
97
+ by?: string;
98
+ timestamp: number;
99
+ }
100
+ export interface MemberTagPayload {
101
+ groupId: string;
102
+ participant: string;
103
+ participantAlt?: string;
104
+ label: string;
105
+ timestamp: number;
106
+ }
107
+ export type CallPayload = (CallBase & {
108
+ kind: 'incoming';
109
+ }) | (CallBase & {
110
+ kind: 'ended';
111
+ });
112
+ export interface CallBase {
113
+ callId: string;
114
+ from: string;
115
+ isGroup: boolean;
116
+ isVideo: boolean;
117
+ timestamp: number;
118
+ status?: string;
119
+ }
120
+ export interface HistorySyncPayload {
121
+ syncType: string;
122
+ status: 'complete' | 'paused';
123
+ explicit: boolean;
124
+ }
125
+ export type LimitedPayload = {
126
+ reason: 'reachout-timelock';
127
+ retryAt: number;
128
+ } | {
129
+ reason: 'chat-limit-reached';
130
+ usedQuota?: number;
131
+ totalQuota?: number;
132
+ };
133
+ export interface PresencePayload {
134
+ jid: string;
135
+ participant?: string;
136
+ status: 'available' | 'unavailable' | 'composing' | 'recording' | 'paused';
137
+ }
138
+ export type NewsletterPayload = {
139
+ newsletterId: string;
140
+ timestamp: number;
141
+ } & ({
142
+ action: 'reaction';
143
+ serverId?: string;
144
+ emoji?: string;
145
+ } | {
146
+ action: 'view';
147
+ serverId?: string;
148
+ count?: number;
149
+ } | {
150
+ action: 'participants';
151
+ count?: number;
152
+ } | {
153
+ action: 'settings';
154
+ update?: Record<string, unknown>;
155
+ });
156
+ export type InboundEventMap = {
157
+ message: MessageContext;
158
+ text: MessageContext;
159
+ image: MessageContext;
160
+ video: MessageContext;
161
+ audio: MessageContext;
162
+ document: MessageContext;
163
+ sticker: MessageContext;
164
+ reaction: ReactionPayload;
165
+ edit: EditPayload;
166
+ delete: DeletePayload;
167
+ 'poll-vote': PollVotePayload;
168
+ 'button-click': ButtonClickPayload;
169
+ 'list-select': ListSelectPayload;
170
+ mention: MentionContext;
171
+ 'mention-all': MentionAllContext;
172
+ 'group-update': GroupUpdatePayload;
173
+ 'group-join': GroupJoinPayload;
174
+ 'group-leave': GroupLeavePayload;
175
+ 'member-tag': MemberTagPayload;
176
+ 'call-incoming': Extract<CallPayload, {
177
+ kind: 'incoming';
178
+ }>;
179
+ 'call-ended': Extract<CallPayload, {
180
+ kind: 'ended';
181
+ }>;
182
+ 'history-sync': HistorySyncPayload;
183
+ limited: LimitedPayload;
184
+ presence: PresencePayload;
185
+ newsletter: NewsletterPayload;
186
+ };
187
+ export type InboundEventName = keyof InboundEventMap;