@adatechnology/meta-whatsapp-module 0.1.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.
@@ -0,0 +1,1306 @@
1
+ import { BunSQLDatabase } from 'drizzle-orm/bun-sql/postgres';
2
+ import { AnyRelations, EmptyRelations } from 'drizzle-orm/relations';
3
+ import * as _adatechnology_meta_whatsapp_contracts from '@adatechnology/meta-whatsapp-contracts';
4
+ import { SessionState, SessionMode, ConversationSummary, FlowGraphData, FlowGraphSummary, LiveFlowPosition, WhatsAppSettings, MessageDirection, MessageSender, MessageStatus, RealtimeNotifierInterface, ChannelAdapterInterface, ObjectStorageInterface, FlowActionKind, FlowActionHandler, ConversationSession, MetaWhatsAppHooks, SubjectResolverInterface, CatalogPort } from '@adatechnology/meta-whatsapp-contracts';
5
+ import * as drizzle_orm_pg_core from 'drizzle-orm/pg-core';
6
+ import { WhatsAppMessageProvider } from '@adatechnology/meta-whatsapp-provider';
7
+
8
+ declare const metaWhatsAppSchema: drizzle_orm_pg_core.PgSchema<"meta_whatsapp">;
9
+ declare const sessions: drizzle_orm_pg_core.PgTableWithColumns<{
10
+ name: "sessions";
11
+ schema: "meta_whatsapp";
12
+ columns: {
13
+ id: drizzle_orm_pg_core.PgBuildColumn<"sessions", drizzle_orm_pg_core.SetHasDefault<drizzle_orm_pg_core.SetIsPrimaryKey<drizzle_orm_pg_core.PgUUIDBuilder>>, {
14
+ name: string;
15
+ tableName: "sessions";
16
+ dataType: "string uuid";
17
+ data: string;
18
+ driverParam: string;
19
+ notNull: true;
20
+ hasDefault: true;
21
+ isPrimaryKey: false;
22
+ isAutoincrement: false;
23
+ hasRuntimeDefault: false;
24
+ enumValues: undefined;
25
+ identity: undefined;
26
+ generated: undefined;
27
+ }>;
28
+ companyId: drizzle_orm_pg_core.PgBuildColumn<"sessions", drizzle_orm_pg_core.SetNotNull<drizzle_orm_pg_core.PgUUIDBuilder>, {
29
+ name: string;
30
+ tableName: "sessions";
31
+ dataType: "string uuid";
32
+ data: string;
33
+ driverParam: string;
34
+ notNull: true;
35
+ hasDefault: false;
36
+ isPrimaryKey: false;
37
+ isAutoincrement: false;
38
+ hasRuntimeDefault: false;
39
+ enumValues: undefined;
40
+ identity: undefined;
41
+ generated: undefined;
42
+ }>;
43
+ whatsappNumber: drizzle_orm_pg_core.PgBuildColumn<"sessions", drizzle_orm_pg_core.SetNotNull<drizzle_orm_pg_core.PgVarcharBuilder<[string, ...string[]]>>, {
44
+ name: string;
45
+ tableName: "sessions";
46
+ dataType: "string";
47
+ data: string;
48
+ driverParam: string;
49
+ notNull: true;
50
+ hasDefault: false;
51
+ isPrimaryKey: false;
52
+ isAutoincrement: false;
53
+ hasRuntimeDefault: false;
54
+ enumValues: undefined;
55
+ identity: undefined;
56
+ generated: undefined;
57
+ }>;
58
+ currentState: drizzle_orm_pg_core.PgBuildColumn<"sessions", drizzle_orm_pg_core.SetHasDefault<drizzle_orm_pg_core.SetNotNull<drizzle_orm_pg_core.PgVarcharBuilder<[string, ...string[]]>>>, {
59
+ name: string;
60
+ tableName: "sessions";
61
+ dataType: "string";
62
+ data: string;
63
+ driverParam: string;
64
+ notNull: true;
65
+ hasDefault: true;
66
+ isPrimaryKey: false;
67
+ isAutoincrement: false;
68
+ hasRuntimeDefault: false;
69
+ enumValues: undefined;
70
+ identity: undefined;
71
+ generated: undefined;
72
+ }>;
73
+ flowKey: drizzle_orm_pg_core.PgBuildColumn<"sessions", drizzle_orm_pg_core.PgVarcharBuilder<[string, ...string[]]>, {
74
+ name: string;
75
+ tableName: "sessions";
76
+ dataType: "string";
77
+ data: string;
78
+ driverParam: string;
79
+ notNull: false;
80
+ hasDefault: false;
81
+ isPrimaryKey: false;
82
+ isAutoincrement: false;
83
+ hasRuntimeDefault: false;
84
+ enumValues: undefined;
85
+ identity: undefined;
86
+ generated: undefined;
87
+ }>;
88
+ currentNodeId: drizzle_orm_pg_core.PgBuildColumn<"sessions", drizzle_orm_pg_core.PgVarcharBuilder<[string, ...string[]]>, {
89
+ name: string;
90
+ tableName: "sessions";
91
+ dataType: "string";
92
+ data: string;
93
+ driverParam: string;
94
+ notNull: false;
95
+ hasDefault: false;
96
+ isPrimaryKey: false;
97
+ isAutoincrement: false;
98
+ hasRuntimeDefault: false;
99
+ enumValues: undefined;
100
+ identity: undefined;
101
+ generated: undefined;
102
+ }>;
103
+ context: drizzle_orm_pg_core.PgBuildColumn<"sessions", drizzle_orm_pg_core.SetHasDefault<drizzle_orm_pg_core.SetNotNull<drizzle_orm_pg_core.Set$Type<drizzle_orm_pg_core.PgJsonbBuilder, Record<string, unknown>>>>, {
104
+ name: string;
105
+ tableName: "sessions";
106
+ dataType: "object json";
107
+ data: Record<string, unknown>;
108
+ driverParam: unknown;
109
+ notNull: true;
110
+ hasDefault: true;
111
+ isPrimaryKey: false;
112
+ isAutoincrement: false;
113
+ hasRuntimeDefault: false;
114
+ enumValues: undefined;
115
+ identity: undefined;
116
+ generated: undefined;
117
+ }>;
118
+ mode: drizzle_orm_pg_core.PgBuildColumn<"sessions", drizzle_orm_pg_core.SetHasDefault<drizzle_orm_pg_core.SetNotNull<drizzle_orm_pg_core.PgVarcharBuilder<[string, ...string[]]>>>, {
119
+ name: string;
120
+ tableName: "sessions";
121
+ dataType: "string";
122
+ data: string;
123
+ driverParam: string;
124
+ notNull: true;
125
+ hasDefault: true;
126
+ isPrimaryKey: false;
127
+ isAutoincrement: false;
128
+ hasRuntimeDefault: false;
129
+ enumValues: undefined;
130
+ identity: undefined;
131
+ generated: undefined;
132
+ }>;
133
+ assignedUserId: drizzle_orm_pg_core.PgBuildColumn<"sessions", drizzle_orm_pg_core.PgUUIDBuilder, {
134
+ name: string;
135
+ tableName: "sessions";
136
+ dataType: "string uuid";
137
+ data: string;
138
+ driverParam: string;
139
+ notNull: false;
140
+ hasDefault: false;
141
+ isPrimaryKey: false;
142
+ isAutoincrement: false;
143
+ hasRuntimeDefault: false;
144
+ enumValues: undefined;
145
+ identity: undefined;
146
+ generated: undefined;
147
+ }>;
148
+ humanRequestedAt: drizzle_orm_pg_core.PgBuildColumn<"sessions", drizzle_orm_pg_core.PgTimestampBuilder, {
149
+ name: string;
150
+ tableName: "sessions";
151
+ dataType: "object date";
152
+ data: Date;
153
+ driverParam: string;
154
+ notNull: false;
155
+ hasDefault: false;
156
+ isPrimaryKey: false;
157
+ isAutoincrement: false;
158
+ hasRuntimeDefault: false;
159
+ enumValues: undefined;
160
+ identity: undefined;
161
+ generated: undefined;
162
+ }>;
163
+ lastInboundAt: drizzle_orm_pg_core.PgBuildColumn<"sessions", drizzle_orm_pg_core.PgTimestampBuilder, {
164
+ name: string;
165
+ tableName: "sessions";
166
+ dataType: "object date";
167
+ data: Date;
168
+ driverParam: string;
169
+ notNull: false;
170
+ hasDefault: false;
171
+ isPrimaryKey: false;
172
+ isAutoincrement: false;
173
+ hasRuntimeDefault: false;
174
+ enumValues: undefined;
175
+ identity: undefined;
176
+ generated: undefined;
177
+ }>;
178
+ lastAgentReadAt: drizzle_orm_pg_core.PgBuildColumn<"sessions", drizzle_orm_pg_core.PgTimestampBuilder, {
179
+ name: string;
180
+ tableName: "sessions";
181
+ dataType: "object date";
182
+ data: Date;
183
+ driverParam: string;
184
+ notNull: false;
185
+ hasDefault: false;
186
+ isPrimaryKey: false;
187
+ isAutoincrement: false;
188
+ hasRuntimeDefault: false;
189
+ enumValues: undefined;
190
+ identity: undefined;
191
+ generated: undefined;
192
+ }>;
193
+ lastActivity: drizzle_orm_pg_core.PgBuildColumn<"sessions", drizzle_orm_pg_core.SetHasDefault<drizzle_orm_pg_core.SetNotNull<drizzle_orm_pg_core.PgTimestampBuilder>>, {
194
+ name: string;
195
+ tableName: "sessions";
196
+ dataType: "object date";
197
+ data: Date;
198
+ driverParam: string;
199
+ notNull: true;
200
+ hasDefault: true;
201
+ isPrimaryKey: false;
202
+ isAutoincrement: false;
203
+ hasRuntimeDefault: false;
204
+ enumValues: undefined;
205
+ identity: undefined;
206
+ generated: undefined;
207
+ }>;
208
+ createdAt: drizzle_orm_pg_core.PgBuildColumn<"sessions", drizzle_orm_pg_core.SetHasDefault<drizzle_orm_pg_core.SetNotNull<drizzle_orm_pg_core.PgTimestampBuilder>>, {
209
+ name: string;
210
+ tableName: "sessions";
211
+ dataType: "object date";
212
+ data: Date;
213
+ driverParam: string;
214
+ notNull: true;
215
+ hasDefault: true;
216
+ isPrimaryKey: false;
217
+ isAutoincrement: false;
218
+ hasRuntimeDefault: false;
219
+ enumValues: undefined;
220
+ identity: undefined;
221
+ generated: undefined;
222
+ }>;
223
+ updatedAt: drizzle_orm_pg_core.PgBuildColumn<"sessions", drizzle_orm_pg_core.SetHasDefault<drizzle_orm_pg_core.SetNotNull<drizzle_orm_pg_core.PgTimestampBuilder>>, {
224
+ name: string;
225
+ tableName: "sessions";
226
+ dataType: "object date";
227
+ data: Date;
228
+ driverParam: string;
229
+ notNull: true;
230
+ hasDefault: true;
231
+ isPrimaryKey: false;
232
+ isAutoincrement: false;
233
+ hasRuntimeDefault: false;
234
+ enumValues: undefined;
235
+ identity: undefined;
236
+ generated: undefined;
237
+ }>;
238
+ };
239
+ dialect: "pg";
240
+ }>;
241
+ declare const messages: drizzle_orm_pg_core.PgTableWithColumns<{
242
+ name: "messages";
243
+ schema: "meta_whatsapp";
244
+ columns: {
245
+ id: drizzle_orm_pg_core.PgBuildColumn<"messages", drizzle_orm_pg_core.SetHasDefault<drizzle_orm_pg_core.SetIsPrimaryKey<drizzle_orm_pg_core.PgUUIDBuilder>>, {
246
+ name: string;
247
+ tableName: "messages";
248
+ dataType: "string uuid";
249
+ data: string;
250
+ driverParam: string;
251
+ notNull: true;
252
+ hasDefault: true;
253
+ isPrimaryKey: false;
254
+ isAutoincrement: false;
255
+ hasRuntimeDefault: false;
256
+ enumValues: undefined;
257
+ identity: undefined;
258
+ generated: undefined;
259
+ }>;
260
+ companyId: drizzle_orm_pg_core.PgBuildColumn<"messages", drizzle_orm_pg_core.SetNotNull<drizzle_orm_pg_core.PgUUIDBuilder>, {
261
+ name: string;
262
+ tableName: "messages";
263
+ dataType: "string uuid";
264
+ data: string;
265
+ driverParam: string;
266
+ notNull: true;
267
+ hasDefault: false;
268
+ isPrimaryKey: false;
269
+ isAutoincrement: false;
270
+ hasRuntimeDefault: false;
271
+ enumValues: undefined;
272
+ identity: undefined;
273
+ generated: undefined;
274
+ }>;
275
+ sessionId: drizzle_orm_pg_core.PgBuildColumn<"messages", drizzle_orm_pg_core.SetNotNull<drizzle_orm_pg_core.PgUUIDBuilder>, {
276
+ name: string;
277
+ tableName: "messages";
278
+ dataType: "string uuid";
279
+ data: string;
280
+ driverParam: string;
281
+ notNull: true;
282
+ hasDefault: false;
283
+ isPrimaryKey: false;
284
+ isAutoincrement: false;
285
+ hasRuntimeDefault: false;
286
+ enumValues: undefined;
287
+ identity: undefined;
288
+ generated: undefined;
289
+ }>;
290
+ whatsappNumber: drizzle_orm_pg_core.PgBuildColumn<"messages", drizzle_orm_pg_core.SetNotNull<drizzle_orm_pg_core.PgVarcharBuilder<[string, ...string[]]>>, {
291
+ name: string;
292
+ tableName: "messages";
293
+ dataType: "string";
294
+ data: string;
295
+ driverParam: string;
296
+ notNull: true;
297
+ hasDefault: false;
298
+ isPrimaryKey: false;
299
+ isAutoincrement: false;
300
+ hasRuntimeDefault: false;
301
+ enumValues: undefined;
302
+ identity: undefined;
303
+ generated: undefined;
304
+ }>;
305
+ direction: drizzle_orm_pg_core.PgBuildColumn<"messages", drizzle_orm_pg_core.SetNotNull<drizzle_orm_pg_core.PgVarcharBuilder<[string, ...string[]]>>, {
306
+ name: string;
307
+ tableName: "messages";
308
+ dataType: "string";
309
+ data: string;
310
+ driverParam: string;
311
+ notNull: true;
312
+ hasDefault: false;
313
+ isPrimaryKey: false;
314
+ isAutoincrement: false;
315
+ hasRuntimeDefault: false;
316
+ enumValues: undefined;
317
+ identity: undefined;
318
+ generated: undefined;
319
+ }>;
320
+ sender: drizzle_orm_pg_core.PgBuildColumn<"messages", drizzle_orm_pg_core.SetNotNull<drizzle_orm_pg_core.PgVarcharBuilder<[string, ...string[]]>>, {
321
+ name: string;
322
+ tableName: "messages";
323
+ dataType: "string";
324
+ data: string;
325
+ driverParam: string;
326
+ notNull: true;
327
+ hasDefault: false;
328
+ isPrimaryKey: false;
329
+ isAutoincrement: false;
330
+ hasRuntimeDefault: false;
331
+ enumValues: undefined;
332
+ identity: undefined;
333
+ generated: undefined;
334
+ }>;
335
+ agentUserId: drizzle_orm_pg_core.PgBuildColumn<"messages", drizzle_orm_pg_core.PgUUIDBuilder, {
336
+ name: string;
337
+ tableName: "messages";
338
+ dataType: "string uuid";
339
+ data: string;
340
+ driverParam: string;
341
+ notNull: false;
342
+ hasDefault: false;
343
+ isPrimaryKey: false;
344
+ isAutoincrement: false;
345
+ hasRuntimeDefault: false;
346
+ enumValues: undefined;
347
+ identity: undefined;
348
+ generated: undefined;
349
+ }>;
350
+ type: drizzle_orm_pg_core.PgBuildColumn<"messages", drizzle_orm_pg_core.SetHasDefault<drizzle_orm_pg_core.SetNotNull<drizzle_orm_pg_core.PgVarcharBuilder<[string, ...string[]]>>>, {
351
+ name: string;
352
+ tableName: "messages";
353
+ dataType: "string";
354
+ data: string;
355
+ driverParam: string;
356
+ notNull: true;
357
+ hasDefault: true;
358
+ isPrimaryKey: false;
359
+ isAutoincrement: false;
360
+ hasRuntimeDefault: false;
361
+ enumValues: undefined;
362
+ identity: undefined;
363
+ generated: undefined;
364
+ }>;
365
+ content: drizzle_orm_pg_core.PgBuildColumn<"messages", drizzle_orm_pg_core.PgTextBuilder<[string, ...string[]]>, {
366
+ name: string;
367
+ tableName: "messages";
368
+ dataType: "string";
369
+ data: string;
370
+ driverParam: string;
371
+ notNull: false;
372
+ hasDefault: false;
373
+ isPrimaryKey: false;
374
+ isAutoincrement: false;
375
+ hasRuntimeDefault: false;
376
+ enumValues: undefined;
377
+ identity: undefined;
378
+ generated: undefined;
379
+ }>;
380
+ payload: drizzle_orm_pg_core.PgBuildColumn<"messages", drizzle_orm_pg_core.Set$Type<drizzle_orm_pg_core.PgJsonbBuilder, Record<string, unknown>>, {
381
+ name: string;
382
+ tableName: "messages";
383
+ dataType: "object json";
384
+ data: Record<string, unknown>;
385
+ driverParam: unknown;
386
+ notNull: false;
387
+ hasDefault: false;
388
+ isPrimaryKey: false;
389
+ isAutoincrement: false;
390
+ hasRuntimeDefault: false;
391
+ enumValues: undefined;
392
+ identity: undefined;
393
+ generated: undefined;
394
+ }>;
395
+ waMessageId: drizzle_orm_pg_core.PgBuildColumn<"messages", drizzle_orm_pg_core.PgVarcharBuilder<[string, ...string[]]>, {
396
+ name: string;
397
+ tableName: "messages";
398
+ dataType: "string";
399
+ data: string;
400
+ driverParam: string;
401
+ notNull: false;
402
+ hasDefault: false;
403
+ isPrimaryKey: false;
404
+ isAutoincrement: false;
405
+ hasRuntimeDefault: false;
406
+ enumValues: undefined;
407
+ identity: undefined;
408
+ generated: undefined;
409
+ }>;
410
+ status: drizzle_orm_pg_core.PgBuildColumn<"messages", drizzle_orm_pg_core.PgVarcharBuilder<[string, ...string[]]>, {
411
+ name: string;
412
+ tableName: "messages";
413
+ dataType: "string";
414
+ data: string;
415
+ driverParam: string;
416
+ notNull: false;
417
+ hasDefault: false;
418
+ isPrimaryKey: false;
419
+ isAutoincrement: false;
420
+ hasRuntimeDefault: false;
421
+ enumValues: undefined;
422
+ identity: undefined;
423
+ generated: undefined;
424
+ }>;
425
+ readAt: drizzle_orm_pg_core.PgBuildColumn<"messages", drizzle_orm_pg_core.PgTimestampBuilder, {
426
+ name: string;
427
+ tableName: "messages";
428
+ dataType: "object date";
429
+ data: Date;
430
+ driverParam: string;
431
+ notNull: false;
432
+ hasDefault: false;
433
+ isPrimaryKey: false;
434
+ isAutoincrement: false;
435
+ hasRuntimeDefault: false;
436
+ enumValues: undefined;
437
+ identity: undefined;
438
+ generated: undefined;
439
+ }>;
440
+ createdAt: drizzle_orm_pg_core.PgBuildColumn<"messages", drizzle_orm_pg_core.SetHasDefault<drizzle_orm_pg_core.SetNotNull<drizzle_orm_pg_core.PgTimestampBuilder>>, {
441
+ name: string;
442
+ tableName: "messages";
443
+ dataType: "object date";
444
+ data: Date;
445
+ driverParam: string;
446
+ notNull: true;
447
+ hasDefault: true;
448
+ isPrimaryKey: false;
449
+ isAutoincrement: false;
450
+ hasRuntimeDefault: false;
451
+ enumValues: undefined;
452
+ identity: undefined;
453
+ generated: undefined;
454
+ }>;
455
+ };
456
+ dialect: "pg";
457
+ }>;
458
+ declare const flowGraphs: drizzle_orm_pg_core.PgTableWithColumns<{
459
+ name: "flow_graphs";
460
+ schema: "meta_whatsapp";
461
+ columns: {
462
+ id: drizzle_orm_pg_core.PgBuildColumn<"flow_graphs", drizzle_orm_pg_core.SetHasDefault<drizzle_orm_pg_core.SetIsPrimaryKey<drizzle_orm_pg_core.PgUUIDBuilder>>, {
463
+ name: string;
464
+ tableName: "flow_graphs";
465
+ dataType: "string uuid";
466
+ data: string;
467
+ driverParam: string;
468
+ notNull: true;
469
+ hasDefault: true;
470
+ isPrimaryKey: false;
471
+ isAutoincrement: false;
472
+ hasRuntimeDefault: false;
473
+ enumValues: undefined;
474
+ identity: undefined;
475
+ generated: undefined;
476
+ }>;
477
+ companyId: drizzle_orm_pg_core.PgBuildColumn<"flow_graphs", drizzle_orm_pg_core.SetNotNull<drizzle_orm_pg_core.PgUUIDBuilder>, {
478
+ name: string;
479
+ tableName: "flow_graphs";
480
+ dataType: "string uuid";
481
+ data: string;
482
+ driverParam: string;
483
+ notNull: true;
484
+ hasDefault: false;
485
+ isPrimaryKey: false;
486
+ isAutoincrement: false;
487
+ hasRuntimeDefault: false;
488
+ enumValues: undefined;
489
+ identity: undefined;
490
+ generated: undefined;
491
+ }>;
492
+ key: drizzle_orm_pg_core.PgBuildColumn<"flow_graphs", drizzle_orm_pg_core.SetNotNull<drizzle_orm_pg_core.PgVarcharBuilder<[string, ...string[]]>>, {
493
+ name: string;
494
+ tableName: "flow_graphs";
495
+ dataType: "string";
496
+ data: string;
497
+ driverParam: string;
498
+ notNull: true;
499
+ hasDefault: false;
500
+ isPrimaryKey: false;
501
+ isAutoincrement: false;
502
+ hasRuntimeDefault: false;
503
+ enumValues: undefined;
504
+ identity: undefined;
505
+ generated: undefined;
506
+ }>;
507
+ label: drizzle_orm_pg_core.PgBuildColumn<"flow_graphs", drizzle_orm_pg_core.SetNotNull<drizzle_orm_pg_core.PgVarcharBuilder<[string, ...string[]]>>, {
508
+ name: string;
509
+ tableName: "flow_graphs";
510
+ dataType: "string";
511
+ data: string;
512
+ driverParam: string;
513
+ notNull: true;
514
+ hasDefault: false;
515
+ isPrimaryKey: false;
516
+ isAutoincrement: false;
517
+ hasRuntimeDefault: false;
518
+ enumValues: undefined;
519
+ identity: undefined;
520
+ generated: undefined;
521
+ }>;
522
+ startNodeId: drizzle_orm_pg_core.PgBuildColumn<"flow_graphs", drizzle_orm_pg_core.SetNotNull<drizzle_orm_pg_core.PgVarcharBuilder<[string, ...string[]]>>, {
523
+ name: string;
524
+ tableName: "flow_graphs";
525
+ dataType: "string";
526
+ data: string;
527
+ driverParam: string;
528
+ notNull: true;
529
+ hasDefault: false;
530
+ isPrimaryKey: false;
531
+ isAutoincrement: false;
532
+ hasRuntimeDefault: false;
533
+ enumValues: undefined;
534
+ identity: undefined;
535
+ generated: undefined;
536
+ }>;
537
+ nodes: drizzle_orm_pg_core.PgBuildColumn<"flow_graphs", drizzle_orm_pg_core.SetHasDefault<drizzle_orm_pg_core.SetNotNull<drizzle_orm_pg_core.Set$Type<drizzle_orm_pg_core.PgJsonbBuilder, Record<string, unknown>>>>, {
538
+ name: string;
539
+ tableName: "flow_graphs";
540
+ dataType: "object json";
541
+ data: Record<string, unknown>;
542
+ driverParam: unknown;
543
+ notNull: true;
544
+ hasDefault: true;
545
+ isPrimaryKey: false;
546
+ isAutoincrement: false;
547
+ hasRuntimeDefault: false;
548
+ enumValues: undefined;
549
+ identity: undefined;
550
+ generated: undefined;
551
+ }>;
552
+ version: drizzle_orm_pg_core.PgBuildColumn<"flow_graphs", drizzle_orm_pg_core.SetHasDefault<drizzle_orm_pg_core.SetNotNull<drizzle_orm_pg_core.PgIntegerBuilder>>, {
553
+ name: string;
554
+ tableName: "flow_graphs";
555
+ dataType: "number int32";
556
+ data: number;
557
+ driverParam: string | number;
558
+ notNull: true;
559
+ hasDefault: true;
560
+ isPrimaryKey: false;
561
+ isAutoincrement: false;
562
+ hasRuntimeDefault: false;
563
+ enumValues: undefined;
564
+ identity: undefined;
565
+ generated: undefined;
566
+ }>;
567
+ showInMenu: drizzle_orm_pg_core.PgBuildColumn<"flow_graphs", drizzle_orm_pg_core.SetHasDefault<drizzle_orm_pg_core.SetNotNull<drizzle_orm_pg_core.PgBooleanBuilder>>, {
568
+ name: string;
569
+ tableName: "flow_graphs";
570
+ dataType: "boolean";
571
+ data: boolean;
572
+ driverParam: boolean;
573
+ notNull: true;
574
+ hasDefault: true;
575
+ isPrimaryKey: false;
576
+ isAutoincrement: false;
577
+ hasRuntimeDefault: false;
578
+ enumValues: undefined;
579
+ identity: undefined;
580
+ generated: undefined;
581
+ }>;
582
+ menuOptionLabel: drizzle_orm_pg_core.PgBuildColumn<"flow_graphs", drizzle_orm_pg_core.PgVarcharBuilder<[string, ...string[]]>, {
583
+ name: string;
584
+ tableName: "flow_graphs";
585
+ dataType: "string";
586
+ data: string;
587
+ driverParam: string;
588
+ notNull: false;
589
+ hasDefault: false;
590
+ isPrimaryKey: false;
591
+ isAutoincrement: false;
592
+ hasRuntimeDefault: false;
593
+ enumValues: undefined;
594
+ identity: undefined;
595
+ generated: undefined;
596
+ }>;
597
+ createdAt: drizzle_orm_pg_core.PgBuildColumn<"flow_graphs", drizzle_orm_pg_core.SetHasDefault<drizzle_orm_pg_core.SetNotNull<drizzle_orm_pg_core.PgTimestampBuilder>>, {
598
+ name: string;
599
+ tableName: "flow_graphs";
600
+ dataType: "object date";
601
+ data: Date;
602
+ driverParam: string;
603
+ notNull: true;
604
+ hasDefault: true;
605
+ isPrimaryKey: false;
606
+ isAutoincrement: false;
607
+ hasRuntimeDefault: false;
608
+ enumValues: undefined;
609
+ identity: undefined;
610
+ generated: undefined;
611
+ }>;
612
+ updatedAt: drizzle_orm_pg_core.PgBuildColumn<"flow_graphs", drizzle_orm_pg_core.SetHasDefault<drizzle_orm_pg_core.SetNotNull<drizzle_orm_pg_core.PgTimestampBuilder>>, {
613
+ name: string;
614
+ tableName: "flow_graphs";
615
+ dataType: "object date";
616
+ data: Date;
617
+ driverParam: string;
618
+ notNull: true;
619
+ hasDefault: true;
620
+ isPrimaryKey: false;
621
+ isAutoincrement: false;
622
+ hasRuntimeDefault: false;
623
+ enumValues: undefined;
624
+ identity: undefined;
625
+ generated: undefined;
626
+ }>;
627
+ };
628
+ dialect: "pg";
629
+ }>;
630
+ declare const settings: drizzle_orm_pg_core.PgTableWithColumns<{
631
+ name: "settings";
632
+ schema: "meta_whatsapp";
633
+ columns: {
634
+ companyId: drizzle_orm_pg_core.PgBuildColumn<"settings", drizzle_orm_pg_core.SetIsPrimaryKey<drizzle_orm_pg_core.PgUUIDBuilder>, {
635
+ name: string;
636
+ tableName: "settings";
637
+ dataType: "string uuid";
638
+ data: string;
639
+ driverParam: string;
640
+ notNull: true;
641
+ hasDefault: false;
642
+ isPrimaryKey: false;
643
+ isAutoincrement: false;
644
+ hasRuntimeDefault: false;
645
+ enumValues: undefined;
646
+ identity: undefined;
647
+ generated: undefined;
648
+ }>;
649
+ templateName: drizzle_orm_pg_core.PgBuildColumn<"settings", drizzle_orm_pg_core.PgVarcharBuilder<[string, ...string[]]>, {
650
+ name: string;
651
+ tableName: "settings";
652
+ dataType: "string";
653
+ data: string;
654
+ driverParam: string;
655
+ notNull: false;
656
+ hasDefault: false;
657
+ isPrimaryKey: false;
658
+ isAutoincrement: false;
659
+ hasRuntimeDefault: false;
660
+ enumValues: undefined;
661
+ identity: undefined;
662
+ generated: undefined;
663
+ }>;
664
+ templateLanguage: drizzle_orm_pg_core.PgBuildColumn<"settings", drizzle_orm_pg_core.SetHasDefault<drizzle_orm_pg_core.SetNotNull<drizzle_orm_pg_core.PgVarcharBuilder<[string, ...string[]]>>>, {
665
+ name: string;
666
+ tableName: "settings";
667
+ dataType: "string";
668
+ data: string;
669
+ driverParam: string;
670
+ notNull: true;
671
+ hasDefault: true;
672
+ isPrimaryKey: false;
673
+ isAutoincrement: false;
674
+ hasRuntimeDefault: false;
675
+ enumValues: undefined;
676
+ identity: undefined;
677
+ generated: undefined;
678
+ }>;
679
+ templateVariables: drizzle_orm_pg_core.PgBuildColumn<"settings", drizzle_orm_pg_core.SetHasDefault<drizzle_orm_pg_core.SetNotNull<drizzle_orm_pg_core.Set$Type<drizzle_orm_pg_core.PgJsonbBuilder, string[]>>>, {
680
+ name: string;
681
+ tableName: "settings";
682
+ dataType: "object json";
683
+ data: string[];
684
+ driverParam: unknown;
685
+ notNull: true;
686
+ hasDefault: true;
687
+ isPrimaryKey: false;
688
+ isAutoincrement: false;
689
+ hasRuntimeDefault: false;
690
+ enumValues: undefined;
691
+ identity: undefined;
692
+ generated: undefined;
693
+ }>;
694
+ welcomeMessage: drizzle_orm_pg_core.PgBuildColumn<"settings", drizzle_orm_pg_core.PgTextBuilder<[string, ...string[]]>, {
695
+ name: string;
696
+ tableName: "settings";
697
+ dataType: "string";
698
+ data: string;
699
+ driverParam: string;
700
+ notNull: false;
701
+ hasDefault: false;
702
+ isPrimaryKey: false;
703
+ isAutoincrement: false;
704
+ hasRuntimeDefault: false;
705
+ enumValues: undefined;
706
+ identity: undefined;
707
+ generated: undefined;
708
+ }>;
709
+ farewellMessage: drizzle_orm_pg_core.PgBuildColumn<"settings", drizzle_orm_pg_core.PgTextBuilder<[string, ...string[]]>, {
710
+ name: string;
711
+ tableName: "settings";
712
+ dataType: "string";
713
+ data: string;
714
+ driverParam: string;
715
+ notNull: false;
716
+ hasDefault: false;
717
+ isPrimaryKey: false;
718
+ isAutoincrement: false;
719
+ hasRuntimeDefault: false;
720
+ enumValues: undefined;
721
+ identity: undefined;
722
+ generated: undefined;
723
+ }>;
724
+ createdAt: drizzle_orm_pg_core.PgBuildColumn<"settings", drizzle_orm_pg_core.SetHasDefault<drizzle_orm_pg_core.SetNotNull<drizzle_orm_pg_core.PgTimestampBuilder>>, {
725
+ name: string;
726
+ tableName: "settings";
727
+ dataType: "object date";
728
+ data: Date;
729
+ driverParam: string;
730
+ notNull: true;
731
+ hasDefault: true;
732
+ isPrimaryKey: false;
733
+ isAutoincrement: false;
734
+ hasRuntimeDefault: false;
735
+ enumValues: undefined;
736
+ identity: undefined;
737
+ generated: undefined;
738
+ }>;
739
+ updatedAt: drizzle_orm_pg_core.PgBuildColumn<"settings", drizzle_orm_pg_core.SetHasDefault<drizzle_orm_pg_core.SetNotNull<drizzle_orm_pg_core.PgTimestampBuilder>>, {
740
+ name: string;
741
+ tableName: "settings";
742
+ dataType: "object date";
743
+ data: Date;
744
+ driverParam: string;
745
+ notNull: true;
746
+ hasDefault: true;
747
+ isPrimaryKey: false;
748
+ isAutoincrement: false;
749
+ hasRuntimeDefault: false;
750
+ enumValues: undefined;
751
+ identity: undefined;
752
+ generated: undefined;
753
+ }>;
754
+ };
755
+ dialect: "pg";
756
+ }>;
757
+ type SettingsRow = typeof settings.$inferSelect;
758
+ type NewSettingsRow = typeof settings.$inferInsert;
759
+ type SessionRow = typeof sessions.$inferSelect;
760
+ type NewSessionRow = typeof sessions.$inferInsert;
761
+ type MessageRow = typeof messages.$inferSelect;
762
+ type NewMessageRow = typeof messages.$inferInsert;
763
+ type FlowGraphRow = typeof flowGraphs.$inferSelect;
764
+ type NewFlowGraphRow = typeof flowGraphs.$inferInsert;
765
+
766
+ interface ListConversationsFilters {
767
+ page?: number;
768
+ limit?: number;
769
+ waitingHuman?: boolean;
770
+ search?: string;
771
+ }
772
+ declare class SessionRepository {
773
+ private readonly db;
774
+ constructor(db: BunSQLDatabase<AnyRelations | EmptyRelations>);
775
+ getContext(companyId: string, whatsappNumber: string): Promise<SessionRow | undefined>;
776
+ getOrCreate(companyId: string, whatsappNumber: string, startState: SessionState): Promise<SessionRow>;
777
+ setState(companyId: string, whatsappNumber: string, state: SessionState, context?: Record<string, unknown>): Promise<void>;
778
+ setFlowPosition(companyId: string, whatsappNumber: string, flowKey: string | null, currentNodeId: string | null): Promise<void>;
779
+ touchInbound(companyId: string, whatsappNumber: string): Promise<void>;
780
+ hoursSinceLastInbound(companyId: string, whatsappNumber: string): Promise<number | undefined>;
781
+ setMode(companyId: string, whatsappNumber: string, mode: SessionMode, assignedUserId?: string | null): Promise<void>;
782
+ takeover(companyId: string, whatsappNumber: string, agentUserId: string): Promise<void>;
783
+ release(companyId: string, whatsappNumber: string): Promise<void>;
784
+ requestHuman(companyId: string, whatsappNumber: string): Promise<void>;
785
+ markRead(companyId: string, whatsappNumber: string): Promise<void>;
786
+ markAllRead(companyId: string, userId: string): Promise<number>;
787
+ listByContextFilters(companyId: string, filters: ListConversationsFilters): Promise<ConversationSummary[]>;
788
+ exportConversation(companyId: string, whatsappNumber: string): Promise<{
789
+ session: {
790
+ id: string;
791
+ companyId: string;
792
+ whatsappNumber: string;
793
+ currentState: string;
794
+ flowKey: string;
795
+ currentNodeId: string;
796
+ context: Record<string, unknown>;
797
+ mode: string;
798
+ assignedUserId: string;
799
+ humanRequestedAt: Date;
800
+ lastInboundAt: Date;
801
+ lastAgentReadAt: Date;
802
+ lastActivity: Date;
803
+ createdAt: Date;
804
+ updatedAt: Date;
805
+ };
806
+ messages: {
807
+ id: string;
808
+ companyId: string;
809
+ sessionId: string;
810
+ whatsappNumber: string;
811
+ direction: string;
812
+ sender: string;
813
+ agentUserId: string;
814
+ type: string;
815
+ content: string;
816
+ payload: Record<string, unknown>;
817
+ waMessageId: string;
818
+ status: string;
819
+ readAt: Date;
820
+ createdAt: Date;
821
+ }[];
822
+ }>;
823
+ }
824
+
825
+ declare class InvalidFlowGraphError extends Error {
826
+ readonly validationMessage: string;
827
+ constructor(key: string, validationMessage: string);
828
+ }
829
+ declare class OptimisticLockError extends Error {
830
+ constructor(key: string);
831
+ }
832
+ declare class FlowGraphRepository {
833
+ private readonly db;
834
+ constructor(db: BunSQLDatabase<AnyRelations | EmptyRelations>);
835
+ get(companyId: string, key: string): Promise<FlowGraphData | undefined>;
836
+ list(companyId: string): Promise<FlowGraphSummary[]>;
837
+ private assertValidNodes;
838
+ create(companyId: string, graph: Omit<FlowGraphData, 'version'> & {
839
+ showInMenu?: boolean;
840
+ menuOptionLabel?: string;
841
+ }): Promise<FlowGraphData>;
842
+ save(companyId: string, graph: FlowGraphData, expectedVersion: number): Promise<FlowGraphData>;
843
+ delete(companyId: string, key: string): Promise<void>;
844
+ getLiveFlowPositions(companyId: string): Promise<LiveFlowPosition[]>;
845
+ }
846
+
847
+ declare class SettingsRepository {
848
+ private readonly db;
849
+ constructor(db: BunSQLDatabase<AnyRelations | EmptyRelations>);
850
+ get(companyId: string): Promise<WhatsAppSettings>;
851
+ save(companyId: string, update: Partial<WhatsAppSettings>): Promise<WhatsAppSettings>;
852
+ resolveTemplateVariables(companyId: string, context: Record<string, unknown>): Promise<string[]>;
853
+ }
854
+
855
+ interface InsertMessageParams {
856
+ companyId: string;
857
+ sessionId: string;
858
+ whatsappNumber: string;
859
+ direction: MessageDirection;
860
+ sender: MessageSender;
861
+ agentUserId?: string | null;
862
+ type: string;
863
+ content?: string | null;
864
+ payload?: Record<string, unknown> | null;
865
+ waMessageId?: string | null;
866
+ status?: MessageStatus | null;
867
+ }
868
+ interface ListMessagesParams$1 {
869
+ companyId: string;
870
+ sessionId: string;
871
+ limit?: number;
872
+ before?: string;
873
+ }
874
+ declare class MessageRepository {
875
+ private readonly db;
876
+ constructor(db: BunSQLDatabase<AnyRelations | EmptyRelations>);
877
+ insertMessage(params: InsertMessageParams): Promise<MessageRow | undefined>;
878
+ updateMessageStatus(companyId: string, waMessageId: string, status: MessageStatus): Promise<MessageRow | undefined>;
879
+ listByConversation(params: ListMessagesParams$1): Promise<MessageRow[]>;
880
+ }
881
+
882
+ type LogMessageParams = Omit<InsertMessageParams, 'sessionId'> & {
883
+ startState: SessionState;
884
+ };
885
+ declare class LogMessageUseCase {
886
+ private readonly sessionRepository;
887
+ private readonly messageRepository;
888
+ private readonly realtime?;
889
+ constructor(sessionRepository: SessionRepository, messageRepository: MessageRepository, realtime?: RealtimeNotifierInterface);
890
+ execute(params: LogMessageParams): Promise<MessageRow | undefined>;
891
+ }
892
+
893
+ type SendTextParams = {
894
+ companyId: string;
895
+ whatsappNumber: string;
896
+ body: string;
897
+ sender: 'bot' | 'agent';
898
+ agentUserId?: string;
899
+ startState: SessionState;
900
+ };
901
+ type SendMediaParams = {
902
+ companyId: string;
903
+ whatsappNumber: string;
904
+ buffer: Buffer;
905
+ mimeType: string;
906
+ filename: string;
907
+ caption?: string;
908
+ sender: 'bot' | 'agent';
909
+ agentUserId?: string;
910
+ startState: SessionState;
911
+ };
912
+ type SendTemplateParams = {
913
+ companyId: string;
914
+ whatsappNumber: string;
915
+ templateName: string;
916
+ languageCode?: string;
917
+ bodyParameters?: string[];
918
+ sender: 'bot' | 'agent';
919
+ agentUserId?: string;
920
+ startState: SessionState;
921
+ };
922
+ declare class SendMessageUseCase {
923
+ private readonly channel;
924
+ private readonly sessionRepository;
925
+ private readonly logMessage;
926
+ private readonly objectStorage?;
927
+ constructor(channel: ChannelAdapterInterface, sessionRepository: SessionRepository, logMessage: LogMessageUseCase, objectStorage?: ObjectStorageInterface);
928
+ private assertWithinWindow;
929
+ sendText(params: SendTextParams): Promise<MessageRow | undefined>;
930
+ sendMedia(params: SendMediaParams): Promise<MessageRow | undefined>;
931
+ sendTemplate(params: SendTemplateParams): Promise<MessageRow | undefined>;
932
+ }
933
+
934
+ type TakeoverConversationParams = {
935
+ companyId: string;
936
+ whatsappNumber: string;
937
+ agentUserId: string;
938
+ };
939
+ declare class TakeoverConversationUseCase {
940
+ private readonly sessionRepository;
941
+ private readonly realtime?;
942
+ constructor(sessionRepository: SessionRepository, realtime?: RealtimeNotifierInterface);
943
+ execute(params: TakeoverConversationParams): Promise<void>;
944
+ }
945
+
946
+ type ReleaseConversationParams = {
947
+ companyId: string;
948
+ whatsappNumber: string;
949
+ };
950
+ declare class ReleaseConversationUseCase {
951
+ private readonly sessionRepository;
952
+ private readonly realtime?;
953
+ constructor(sessionRepository: SessionRepository, realtime?: RealtimeNotifierInterface);
954
+ execute(params: ReleaseConversationParams): Promise<void>;
955
+ }
956
+
957
+ type ListConversationsParams = {
958
+ companyId: string;
959
+ filters?: ListConversationsFilters;
960
+ };
961
+ declare class ListConversationsUseCase {
962
+ private readonly sessionRepository;
963
+ constructor(sessionRepository: SessionRepository);
964
+ execute(params: ListConversationsParams): Promise<ConversationSummary[]>;
965
+ }
966
+
967
+ type ListMessagesParams = {
968
+ companyId: string;
969
+ whatsappNumber: string;
970
+ limit?: number;
971
+ before?: string;
972
+ };
973
+ declare class ListMessagesUseCase {
974
+ private readonly sessionRepository;
975
+ private readonly messageRepository;
976
+ constructor(sessionRepository: SessionRepository, messageRepository: MessageRepository);
977
+ execute(params: ListMessagesParams): Promise<MessageRow[]>;
978
+ }
979
+
980
+ type ExportConversationParams = {
981
+ companyId: string;
982
+ whatsappNumber: string;
983
+ };
984
+ type ExportConversationResult = {
985
+ session: SessionRow;
986
+ messages: MessageRow[];
987
+ };
988
+ declare class ExportConversationUseCase {
989
+ private readonly sessionRepository;
990
+ constructor(sessionRepository: SessionRepository);
991
+ execute(params: ExportConversationParams): Promise<ExportConversationResult>;
992
+ }
993
+
994
+ declare class GetFlowGraphUseCase {
995
+ private readonly flowGraphRepository;
996
+ constructor(flowGraphRepository: FlowGraphRepository);
997
+ execute(params: {
998
+ companyId: string;
999
+ key: string;
1000
+ }): Promise<FlowGraphData | undefined>;
1001
+ }
1002
+ declare class ListFlowGraphsUseCase {
1003
+ private readonly flowGraphRepository;
1004
+ constructor(flowGraphRepository: FlowGraphRepository);
1005
+ execute(params: {
1006
+ companyId: string;
1007
+ }): Promise<FlowGraphSummary[]>;
1008
+ }
1009
+ type CreateFlowGraphParams = {
1010
+ companyId: string;
1011
+ key: string;
1012
+ label: string;
1013
+ startNodeId: string;
1014
+ nodes: FlowGraphData['nodes'];
1015
+ showInMenu?: boolean;
1016
+ menuOptionLabel?: string;
1017
+ };
1018
+ declare class CreateFlowGraphUseCase {
1019
+ private readonly flowGraphRepository;
1020
+ constructor(flowGraphRepository: FlowGraphRepository);
1021
+ execute(params: CreateFlowGraphParams): Promise<FlowGraphData>;
1022
+ }
1023
+ type SaveFlowGraphParams = {
1024
+ companyId: string;
1025
+ graph: FlowGraphData;
1026
+ expectedVersion: number;
1027
+ };
1028
+ declare class SaveFlowGraphUseCase {
1029
+ private readonly flowGraphRepository;
1030
+ constructor(flowGraphRepository: FlowGraphRepository);
1031
+ execute(params: SaveFlowGraphParams): Promise<FlowGraphData>;
1032
+ }
1033
+ declare class DeleteFlowGraphUseCase {
1034
+ private readonly flowGraphRepository;
1035
+ constructor(flowGraphRepository: FlowGraphRepository);
1036
+ execute(params: {
1037
+ companyId: string;
1038
+ key: string;
1039
+ }): Promise<void>;
1040
+ }
1041
+ declare class GetLiveFlowPositionsUseCase {
1042
+ private readonly flowGraphRepository;
1043
+ constructor(flowGraphRepository: FlowGraphRepository);
1044
+ execute(params: {
1045
+ companyId: string;
1046
+ }): Promise<_adatechnology_meta_whatsapp_contracts.LiveFlowPosition[]>;
1047
+ }
1048
+
1049
+ interface FlowStepInput {
1050
+ graph: FlowGraphData;
1051
+ currentNodeId: string;
1052
+ userAnswer?: string;
1053
+ context: Record<string, unknown>;
1054
+ session: ConversationSession;
1055
+ channel: ChannelAdapterInterface;
1056
+ }
1057
+ type FlowStepResult = {
1058
+ kind: 'awaiting-answer';
1059
+ nodeId: string;
1060
+ context: Record<string, unknown>;
1061
+ } | {
1062
+ kind: 'advanced';
1063
+ nodeId: string;
1064
+ context: Record<string, unknown>;
1065
+ } | {
1066
+ kind: 'cross-flow';
1067
+ flowKey: string;
1068
+ context: Record<string, unknown>;
1069
+ } | {
1070
+ kind: 'terminal';
1071
+ context: Record<string, unknown>;
1072
+ };
1073
+ type FlowRunResult = ({
1074
+ kind: 'awaiting-answer';
1075
+ nodeId: string;
1076
+ context: Record<string, unknown>;
1077
+ } | {
1078
+ kind: 'cross-flow';
1079
+ flowKey: string;
1080
+ context: Record<string, unknown>;
1081
+ } | {
1082
+ kind: 'terminal';
1083
+ context: Record<string, unknown>;
1084
+ } | {
1085
+ kind: 'max-steps-exceeded';
1086
+ context: Record<string, unknown>;
1087
+ }) & {
1088
+ visited: string[];
1089
+ steps: number;
1090
+ };
1091
+ declare class FlowInterpreter {
1092
+ private readonly actionHandlers;
1093
+ registerFlowAction(kind: FlowActionKind, handler: FlowActionHandler): void;
1094
+ step(input: FlowStepInput): Promise<FlowStepResult>;
1095
+ private moveTo;
1096
+ run(input: FlowStepInput, options?: {
1097
+ maxSteps?: number;
1098
+ }): Promise<FlowRunResult>;
1099
+ }
1100
+
1101
+ interface NonceStoreInterface {
1102
+ setIfAbsent(key: string, ttlSeconds: number): Promise<boolean>;
1103
+ }
1104
+ declare const WEBHOOK_NONCE_TTL_SECONDS = 300;
1105
+ declare function verifyWebhookChallenge(params: {
1106
+ mode: string | null;
1107
+ token: string | null;
1108
+ challenge: string | null;
1109
+ expectedToken: string;
1110
+ }): string;
1111
+ declare function verifyWebhookSignature(params: {
1112
+ rawBody: Buffer | string;
1113
+ signatureHeader: string | null | undefined;
1114
+ appSecret: string;
1115
+ }): void;
1116
+ declare function claimWebhookDelivery(params: {
1117
+ nonceStore: NonceStoreInterface;
1118
+ signatureHeader: string;
1119
+ ttlSeconds?: number;
1120
+ }): Promise<boolean>;
1121
+
1122
+ type ReceiveWebhookParams = {
1123
+ companyId: string;
1124
+ rawBody: Buffer | string;
1125
+ signatureHeader: string | null | undefined;
1126
+ };
1127
+ type ReceiveWebhookResult = {
1128
+ duplicate: boolean;
1129
+ messagesProcessed: number;
1130
+ statusesProcessed: number;
1131
+ };
1132
+ declare class ReceiveWebhookUseCase {
1133
+ private readonly params;
1134
+ constructor(params: {
1135
+ appSecret: string;
1136
+ nonceStore: NonceStoreInterface;
1137
+ sessionRepository: SessionRepository;
1138
+ messageRepository: MessageRepository;
1139
+ logMessage: LogMessageUseCase;
1140
+ startState: SessionState;
1141
+ hooks?: MetaWhatsAppHooks;
1142
+ realtime?: RealtimeNotifierInterface;
1143
+ });
1144
+ execute(input: ReceiveWebhookParams): Promise<ReceiveWebhookResult>;
1145
+ private handleMessage;
1146
+ private handleStatus;
1147
+ }
1148
+
1149
+ type IngestInboundMediaParams = {
1150
+ companyId: string;
1151
+ messageId: string;
1152
+ sourceMediaId: string;
1153
+ mimeType: string;
1154
+ filename?: string;
1155
+ };
1156
+ type IngestInboundMediaResult = {
1157
+ uploadId: string;
1158
+ alreadyIngested: boolean;
1159
+ };
1160
+ declare class IngestInboundMediaUseCase {
1161
+ private readonly db;
1162
+ private readonly channel;
1163
+ private readonly objectStorage;
1164
+ constructor(db: BunSQLDatabase<AnyRelations | EmptyRelations>, channel: ChannelAdapterInterface, objectStorage: ObjectStorageInterface);
1165
+ execute(params: IngestInboundMediaParams): Promise<IngestInboundMediaResult>;
1166
+ }
1167
+ declare function extractMediaDescriptor(message: MessageRow): {
1168
+ sourceMediaId: string;
1169
+ mimeType: string;
1170
+ filename?: string;
1171
+ } | undefined;
1172
+
1173
+ interface MetaWhatsAppModuleConfig {
1174
+ phoneNumberId: string;
1175
+ accessToken: string;
1176
+ webhookVerifyToken: string;
1177
+ appSecret: string;
1178
+ wabaId?: string;
1179
+ apiVersion?: string;
1180
+ baseUrl?: string;
1181
+ }
1182
+ interface MetaWhatsAppModuleFeatures {
1183
+ flowEngine?: boolean;
1184
+ }
1185
+ interface MetaWhatsAppModuleProviders {
1186
+ objectStorage?: ObjectStorageInterface;
1187
+ realtime?: RealtimeNotifierInterface;
1188
+ subjectResolver?: SubjectResolverInterface;
1189
+ catalog?: CatalogPort;
1190
+ }
1191
+ interface CreateMetaWhatsAppModuleParams {
1192
+ db: BunSQLDatabase<AnyRelations | EmptyRelations>;
1193
+ config: MetaWhatsAppModuleConfig;
1194
+ nonceStore: NonceStoreInterface;
1195
+ startState?: SessionState;
1196
+ features?: MetaWhatsAppModuleFeatures;
1197
+ providers?: MetaWhatsAppModuleProviders;
1198
+ hooks?: MetaWhatsAppHooks;
1199
+ }
1200
+ declare function createMetaWhatsAppModule(params: CreateMetaWhatsAppModuleParams): {
1201
+ channel: ChannelAdapterInterface;
1202
+ ingestInboundMedia: IngestInboundMediaUseCase;
1203
+ conversations: {
1204
+ log: LogMessageUseCase;
1205
+ send: SendMessageUseCase;
1206
+ takeover: TakeoverConversationUseCase;
1207
+ release: ReleaseConversationUseCase;
1208
+ list: ListConversationsUseCase;
1209
+ listMessages: ListMessagesUseCase;
1210
+ export: ExportConversationUseCase;
1211
+ repository: SessionRepository;
1212
+ };
1213
+ settings: SettingsRepository;
1214
+ webhook: {
1215
+ receive: ReceiveWebhookUseCase;
1216
+ verifyChallenge: (query: {
1217
+ mode: string | null;
1218
+ token: string | null;
1219
+ challenge: string | null;
1220
+ }) => string;
1221
+ };
1222
+ flows: {
1223
+ interpreter: FlowInterpreter;
1224
+ registerFlowAction: (kind: FlowActionKind, handler: FlowActionHandler) => void;
1225
+ get: GetFlowGraphUseCase;
1226
+ list: ListFlowGraphsUseCase;
1227
+ create: CreateFlowGraphUseCase;
1228
+ save: SaveFlowGraphUseCase;
1229
+ delete: DeleteFlowGraphUseCase;
1230
+ livePositions: GetLiveFlowPositionsUseCase;
1231
+ repository: FlowGraphRepository;
1232
+ };
1233
+ catalog: CatalogPort;
1234
+ };
1235
+ type MetaWhatsAppModule = ReturnType<typeof createMetaWhatsAppModule>;
1236
+
1237
+ declare class WhatsAppChannelAdapter implements ChannelAdapterInterface {
1238
+ private readonly messages;
1239
+ constructor(messages: WhatsAppMessageProvider);
1240
+ private translateErrors;
1241
+ sendText(to: string, body: string): Promise<{
1242
+ externalMessageId: string | null;
1243
+ }>;
1244
+ sendMedia(params: {
1245
+ to: string;
1246
+ buffer: Buffer;
1247
+ mimeType: string;
1248
+ filename: string;
1249
+ caption?: string;
1250
+ }): Promise<{
1251
+ externalMessageId: string | null;
1252
+ }>;
1253
+ sendTemplate(params: {
1254
+ to: string;
1255
+ templateName: string;
1256
+ languageCode: string;
1257
+ bodyParameters?: string[];
1258
+ }): Promise<{
1259
+ externalMessageId: string | null;
1260
+ }>;
1261
+ sendInteractiveList(params: {
1262
+ to: string;
1263
+ body: string;
1264
+ buttonLabel: string;
1265
+ rows: {
1266
+ id: string;
1267
+ title: string;
1268
+ }[];
1269
+ }): Promise<{
1270
+ externalMessageId: string | null;
1271
+ }>;
1272
+ fetchMediaAsBase64(mediaId: string): Promise<{
1273
+ data: string;
1274
+ mimeType: string;
1275
+ }>;
1276
+ }
1277
+
1278
+ declare function runMetaWhatsAppMigrations<TRelations extends AnyRelations = EmptyRelations>(db: BunSQLDatabase<TRelations>): Promise<void>;
1279
+
1280
+ type SseListener = (event: string, payload: Record<string, unknown>) => void;
1281
+ interface TicketStoreInterface {
1282
+ set(key: string, value: string, ttlSeconds: number): Promise<void>;
1283
+ get(key: string): Promise<string | null>;
1284
+ delete(key: string): Promise<void>;
1285
+ }
1286
+ interface RealtimeRelay {
1287
+ publish(channel: string, message: string): Promise<void>;
1288
+ subscribe(channel: string, onMessage: (message: string) => void): Promise<() => void>;
1289
+ }
1290
+ declare class SseHub implements RealtimeNotifierInterface {
1291
+ private readonly relay?;
1292
+ private readonly localListeners;
1293
+ private readonly relaySubscriptions;
1294
+ private readonly instanceId;
1295
+ constructor(relay?: RealtimeRelay);
1296
+ emit(channel: string, event: string, payload: Record<string, unknown>): void;
1297
+ private dispatchLocal;
1298
+ subscribe(channel: string, listener: SseListener): Promise<() => void>;
1299
+ }
1300
+ declare function issueSseTicket(store: TicketStoreInterface, companyId: string, whatsappNumber: string): Promise<string>;
1301
+ declare function redeemSseTicket(store: TicketStoreInterface, ticket: string): Promise<{
1302
+ companyId: string;
1303
+ whatsappNumber: string;
1304
+ } | null>;
1305
+
1306
+ export { type CreateFlowGraphParams, CreateFlowGraphUseCase, type CreateMetaWhatsAppModuleParams, DeleteFlowGraphUseCase, type ExportConversationParams, type ExportConversationResult, ExportConversationUseCase, FlowGraphRepository, type FlowGraphRow, FlowInterpreter, type FlowRunResult, type FlowStepInput, type FlowStepResult, GetFlowGraphUseCase, GetLiveFlowPositionsUseCase, type IngestInboundMediaParams, type IngestInboundMediaResult, IngestInboundMediaUseCase, type InsertMessageParams, InvalidFlowGraphError, type ListConversationsFilters, type ListConversationsParams, ListConversationsUseCase, ListFlowGraphsUseCase, type ListMessagesParams, ListMessagesUseCase, type LogMessageParams, LogMessageUseCase, MessageRepository, type MessageRow, type MetaWhatsAppModule, type MetaWhatsAppModuleConfig, type MetaWhatsAppModuleFeatures, type MetaWhatsAppModuleProviders, type NewFlowGraphRow, type NewMessageRow, type NewSessionRow, type NewSettingsRow, type NonceStoreInterface, OptimisticLockError, type RealtimeRelay, type ReceiveWebhookParams, type ReceiveWebhookResult, ReceiveWebhookUseCase, type ReleaseConversationParams, ReleaseConversationUseCase, type ListMessagesParams$1 as RepositoryListMessagesParams, type SaveFlowGraphParams, SaveFlowGraphUseCase, type SendMediaParams, SendMessageUseCase, type SendTemplateParams, type SendTextParams, SessionRepository, type SessionRow, SettingsRepository, type SettingsRow, SseHub, type SseListener, type TakeoverConversationParams, TakeoverConversationUseCase, type TicketStoreInterface, WEBHOOK_NONCE_TTL_SECONDS, WhatsAppChannelAdapter, claimWebhookDelivery, createMetaWhatsAppModule, extractMediaDescriptor, flowGraphs, issueSseTicket, messages, metaWhatsAppSchema, redeemSseTicket, runMetaWhatsAppMigrations, sessions, settings, verifyWebhookChallenge, verifyWebhookSignature };