@botpress/sdk 1.3.2 → 1.5.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.
@@ -1,12 +1,12 @@
1
1
 
2
- > @botpress/sdk@1.3.2 build /home/runner/work/botpress/botpress/packages/sdk
2
+ > @botpress/sdk@1.5.0 build /home/runner/work/botpress/botpress/packages/sdk
3
3
  > pnpm build:type && pnpm build:node
4
4
 
5
5
 
6
- > @botpress/sdk@1.3.2 build:type /home/runner/work/botpress/botpress/packages/sdk
6
+ > @botpress/sdk@1.5.0 build:type /home/runner/work/botpress/botpress/packages/sdk
7
7
  > tsc --emitDeclarationOnly --declaration
8
8
 
9
9
 
10
- > @botpress/sdk@1.3.2 build:node /home/runner/work/botpress/botpress/packages/sdk
10
+ > @botpress/sdk@1.5.0 build:node /home/runner/work/botpress/botpress/packages/sdk
11
11
  > ts-node -T build.ts
12
12
 
@@ -6,8 +6,9 @@ export * from './types';
6
6
  * Just like the regular botpress client, but typed with the bot's properties.
7
7
  */
8
8
  export declare class BotSpecificClient<TBot extends common.BaseBot> implements types.ClientOperations<TBot> {
9
- private readonly _client;
10
- constructor(_client: client.Client);
9
+ private _client;
10
+ private _hooks;
11
+ constructor(_client: client.Client, _hooks?: types.ClientHooks);
11
12
  getConversation: types.GetConversation<TBot>;
12
13
  listConversations: types.ListConversations<TBot>;
13
14
  updateConversation: types.UpdateConversation<TBot>;
@@ -56,4 +57,5 @@ export declare class BotSpecificClient<TBot extends common.BaseBot> implements t
56
57
  * @deprecated Use `callAction` to delegate the user creation to an integration.
57
58
  */
58
59
  getOrCreateUser: types.GetOrCreateUser<TBot>;
60
+ private _run;
59
61
  }
@@ -126,4 +126,14 @@ export type ClientInputs<TBot extends common.BaseBot> = {
126
126
  export type ClientOutputs<TBot extends common.BaseBot> = {
127
127
  [K in keyof ClientOperations<TBot>]: Awaited<Res<ClientOperations<TBot>[K]>>;
128
128
  };
129
+ type ClientHooksBefore = {
130
+ [K in client.Operation]?: (x: client.ClientInputs[K]) => Promise<client.ClientInputs[K]>;
131
+ };
132
+ type ClientHooksAfter = {
133
+ [K in client.Operation]?: (x: client.ClientOutputs[K]) => Promise<client.ClientOutputs[K]>;
134
+ };
135
+ export type ClientHooks = {
136
+ before: ClientHooksBefore;
137
+ after: ClientHooksAfter;
138
+ };
129
139
  export {};
@@ -4,6 +4,7 @@ import { ValueOf } from '../utils/type-utils';
4
4
  import z, { AnyZodObject } from '../zui';
5
5
  type BaseStates = Record<string, AnyZodObject>;
6
6
  type BaseEvents = Record<string, AnyZodObject>;
7
+ type BaseActions = Record<string, AnyZodObject>;
7
8
  export type TagDefinition = {
8
9
  title?: string;
9
10
  description?: string;
@@ -33,6 +34,12 @@ export type ConversationDefinition = {
33
34
  export type MessageDefinition = {
34
35
  tags?: Record<string, TagDefinition>;
35
36
  };
37
+ export type ActionDefinition<TAction extends BaseActions[string] = BaseActions[string]> = {
38
+ title?: string;
39
+ description?: string;
40
+ input: SchemaDefinition<TAction>;
41
+ output: SchemaDefinition<AnyZodObject>;
42
+ };
36
43
  export type IntegrationConfigInstance<I extends IntegrationPackage = IntegrationPackage> = {
37
44
  enabled: boolean;
38
45
  } & ({
@@ -45,7 +52,7 @@ export type IntegrationConfigInstance<I extends IntegrationPackage = Integration
45
52
  };
46
53
  }>);
47
54
  export type IntegrationInstance = IntegrationPackage & IntegrationConfigInstance;
48
- export type BotDefinitionProps<TStates extends BaseStates = BaseStates, TEvents extends BaseEvents = BaseEvents> = {
55
+ export type BotDefinitionProps<TStates extends BaseStates = BaseStates, TEvents extends BaseEvents = BaseEvents, TActions extends BaseActions = BaseActions> = {
49
56
  integrations?: {
50
57
  [K: string]: IntegrationInstance;
51
58
  };
@@ -60,9 +67,12 @@ export type BotDefinitionProps<TStates extends BaseStates = BaseStates, TEvents
60
67
  [K in keyof TEvents]: EventDefinition<TEvents[K]>;
61
68
  };
62
69
  recurringEvents?: Record<string, RecurringEventDefinition<TEvents>>;
70
+ actions?: {
71
+ [K in keyof TActions]: ActionDefinition<TActions[K]>;
72
+ };
63
73
  };
64
- export declare class BotDefinition<TStates extends BaseStates = BaseStates, TEvents extends BaseEvents = BaseEvents> {
65
- readonly props: BotDefinitionProps<TStates, TEvents>;
74
+ export declare class BotDefinition<TStates extends BaseStates = BaseStates, TEvents extends BaseEvents = BaseEvents, TActions extends BaseActions = BaseActions> {
75
+ readonly props: BotDefinitionProps<TStates, TEvents, TActions>;
66
76
  readonly integrations: this['props']['integrations'];
67
77
  readonly user: this['props']['user'];
68
78
  readonly conversation: this['props']['conversation'];
@@ -71,7 +81,8 @@ export declare class BotDefinition<TStates extends BaseStates = BaseStates, TEve
71
81
  readonly configuration: this['props']['configuration'];
72
82
  readonly events: this['props']['events'];
73
83
  readonly recurringEvents: this['props']['recurringEvents'];
74
- constructor(props: BotDefinitionProps<TStates, TEvents>);
84
+ readonly actions: this['props']['actions'];
85
+ constructor(props: BotDefinitionProps<TStates, TEvents, TActions>);
75
86
  add<I extends IntegrationPackage>(integrationPkg: I, config: IntegrationConfigInstance<I>): this;
76
87
  }
77
88
  export {};
@@ -1,14 +1,489 @@
1
1
  import type { Server } from 'node:http';
2
- import { MessageHandler, EventHandler, StateExpiredHandler } from './server';
2
+ import * as utils from '../utils';
3
+ import { MessageHandler, EventHandler, StateExpiredHandler, HookImplementationsMap, HookImplementations, ActionHandlers } from './server';
3
4
  import { BaseBot } from './types';
4
- export type BotImplementationProps<_TBot extends BaseBot = BaseBot> = {};
5
+ export type BotImplementationProps<TBot extends BaseBot = BaseBot> = {
6
+ actions: ActionHandlers<TBot>;
7
+ };
5
8
  export declare class BotImplementation<TBot extends BaseBot = BaseBot> {
6
9
  readonly props: BotImplementationProps<TBot>;
7
- private _state;
10
+ readonly actionHandlers: ActionHandlers<TBot>;
11
+ readonly messageHandlers: MessageHandler<TBot>[];
12
+ readonly eventHandlers: EventHandler<TBot>[];
13
+ readonly stateExpiredHandlers: StateExpiredHandler<TBot>[];
14
+ readonly hooks: HookImplementationsMap<TBot>;
8
15
  constructor(props: BotImplementationProps<TBot>);
9
16
  readonly message: (handler: MessageHandler<TBot>) => void;
10
17
  readonly event: (handler: EventHandler<TBot>) => void;
11
18
  readonly stateExpired: (handler: StateExpiredHandler<TBot>) => void;
19
+ readonly hook: {
20
+ before_incoming_event: <T_2 extends "*" | keyof TBot["events"] | keyof utils.types.UnionToIntersection<(TBot["integrations"] extends infer T ? { [TIntegrationName in keyof T]: TBot["integrations"][TIntegrationName]["events"] extends infer T_1 ? { [TEventName in keyof T_1 as string extends utils.types.Cast<TIntegrationName, string> ? utils.types.Cast<TIntegrationName, string> & string : string extends utils.types.Cast<TEventName, string> ? utils.types.Cast<TEventName, string> & string : `${utils.types.Cast<utils.types.Cast<TIntegrationName, string>, string>}:${utils.types.Cast<utils.types.Cast<TEventName, string>, string>}`]: TBot["integrations"][TIntegrationName]["events"][TEventName]; } : never; } : never)[keyof TBot["integrations"]]>>(type: T_2, handler: ((import("./types").EnumerateEvents<TBot> extends infer T_7 ? { [K in keyof T_7]: utils.types.Merge<import("@botpress/client").Event, {
21
+ type: K;
22
+ payload: import("./types").EnumerateEvents<TBot>[K];
23
+ }>; } : never) & {
24
+ '*': import("./server").IncomingEvent<TBot>;
25
+ } extends infer T_3 ? { [T_4 in keyof T_3]: (input: ((import("./types").EnumerateEvents<TBot> extends infer T_7 ? { [K in keyof T_7]: utils.types.Merge<import("@botpress/client").Event, {
26
+ type: K;
27
+ payload: import("./types").EnumerateEvents<TBot>[K];
28
+ }>; } : never) & {
29
+ '*': import("./server").IncomingEvent<TBot>;
30
+ } extends infer T_5 ? { [T_6 in keyof T_5]: {
31
+ client: import("./client").BotSpecificClient<TBot>;
32
+ ctx: import("./server").BotContext;
33
+ data: ((import("./types").EnumerateEvents<TBot> extends infer T_7 ? { [K in keyof T_7]: utils.types.Merge<import("@botpress/client").Event, {
34
+ type: K;
35
+ payload: import("./types").EnumerateEvents<TBot>[K];
36
+ }>; } : never) & {
37
+ '*': import("./server").IncomingEvent<TBot>;
38
+ })[T_6];
39
+ }; } : never)[T_4]) => Promise<void | ((import("./types").EnumerateEvents<TBot> extends infer T_7 ? { [K in keyof T_7]: utils.types.Merge<import("@botpress/client").Event, {
40
+ type: K;
41
+ payload: import("./types").EnumerateEvents<TBot>[K];
42
+ }>; } : never) & {
43
+ '*': import("./server").IncomingEvent<TBot>;
44
+ } extends infer T_8 ? { [T_9 in keyof T_8]: {
45
+ data: ((import("./types").EnumerateEvents<TBot> extends infer T_7 ? { [K in keyof T_7]: utils.types.Merge<import("@botpress/client").Event, {
46
+ type: K;
47
+ payload: import("./types").EnumerateEvents<TBot>[K];
48
+ }>; } : never) & {
49
+ '*': import("./server").IncomingEvent<TBot>;
50
+ })[T_9];
51
+ }; } : never)[T_4] | undefined>; } : never)[T_2]) => void;
52
+ before_incoming_message: <T_10 extends "*" | keyof import("./types").GetMessages<TBot>>(type: T_10, handler: ((import("./types").GetMessages<TBot> extends infer T_15 ? { [K_1 in keyof T_15]: utils.types.Merge<import("@botpress/client").Message, {
53
+ type: K_1;
54
+ payload: import("./types").GetMessages<TBot>[K_1];
55
+ }>; } : never) & {
56
+ '*': import("./server").IncomingMessage<TBot>;
57
+ } extends infer T_11 ? { [T_12 in keyof T_11]: (input: ((import("./types").GetMessages<TBot> extends infer T_15 ? { [K_1 in keyof T_15]: utils.types.Merge<import("@botpress/client").Message, {
58
+ type: K_1;
59
+ payload: import("./types").GetMessages<TBot>[K_1];
60
+ }>; } : never) & {
61
+ '*': import("./server").IncomingMessage<TBot>;
62
+ } extends infer T_13 ? { [T_14 in keyof T_13]: {
63
+ client: import("./client").BotSpecificClient<TBot>;
64
+ ctx: import("./server").BotContext;
65
+ data: ((import("./types").GetMessages<TBot> extends infer T_15 ? { [K_1 in keyof T_15]: utils.types.Merge<import("@botpress/client").Message, {
66
+ type: K_1;
67
+ payload: import("./types").GetMessages<TBot>[K_1];
68
+ }>; } : never) & {
69
+ '*': import("./server").IncomingMessage<TBot>;
70
+ })[T_14];
71
+ }; } : never)[T_12]) => Promise<void | ((import("./types").GetMessages<TBot> extends infer T_15 ? { [K_1 in keyof T_15]: utils.types.Merge<import("@botpress/client").Message, {
72
+ type: K_1;
73
+ payload: import("./types").GetMessages<TBot>[K_1];
74
+ }>; } : never) & {
75
+ '*': import("./server").IncomingMessage<TBot>;
76
+ } extends infer T_16 ? { [T_17 in keyof T_16]: {
77
+ data: ((import("./types").GetMessages<TBot> extends infer T_15 ? { [K_1 in keyof T_15]: utils.types.Merge<import("@botpress/client").Message, {
78
+ type: K_1;
79
+ payload: import("./types").GetMessages<TBot>[K_1];
80
+ }>; } : never) & {
81
+ '*': import("./server").IncomingMessage<TBot>;
82
+ })[T_17];
83
+ }; } : never)[T_12] | undefined>; } : never)[T_10]) => void;
84
+ before_outgoing_message: <T_18 extends "*" | keyof import("./types").GetMessages<TBot>>(type: T_18, handler: ((import("./types").GetMessages<TBot> extends infer T_23 ? { [K_2 in keyof T_23]: utils.types.Merge<{
85
+ payload: {
86
+ [x: string]: any;
87
+ };
88
+ userId: string;
89
+ conversationId: string;
90
+ type: string;
91
+ tags: {
92
+ [x: string]: string;
93
+ };
94
+ schedule?: {
95
+ dateTime?: string | undefined;
96
+ delay?: number | undefined;
97
+ } | undefined;
98
+ }, {
99
+ type: K_2;
100
+ payload: import("./types").GetMessages<TBot>[K_2];
101
+ }>; } : never) & {
102
+ '*': import("./server").OutgoingMessageRequest<TBot>;
103
+ } extends infer T_19 ? { [T_20 in keyof T_19]: (input: ((import("./types").GetMessages<TBot> extends infer T_23 ? { [K_2 in keyof T_23]: utils.types.Merge<{
104
+ payload: {
105
+ [x: string]: any;
106
+ };
107
+ userId: string;
108
+ conversationId: string;
109
+ type: string;
110
+ tags: {
111
+ [x: string]: string;
112
+ };
113
+ schedule?: {
114
+ dateTime?: string | undefined;
115
+ delay?: number | undefined;
116
+ } | undefined;
117
+ }, {
118
+ type: K_2;
119
+ payload: import("./types").GetMessages<TBot>[K_2];
120
+ }>; } : never) & {
121
+ '*': import("./server").OutgoingMessageRequest<TBot>;
122
+ } extends infer T_21 ? { [T_22 in keyof T_21]: {
123
+ client: import("./client").BotSpecificClient<TBot>;
124
+ ctx: import("./server").BotContext;
125
+ data: ((import("./types").GetMessages<TBot> extends infer T_23 ? { [K_2 in keyof T_23]: utils.types.Merge<{
126
+ payload: {
127
+ [x: string]: any;
128
+ };
129
+ userId: string;
130
+ conversationId: string;
131
+ type: string;
132
+ tags: {
133
+ [x: string]: string;
134
+ };
135
+ schedule?: {
136
+ dateTime?: string | undefined;
137
+ delay?: number | undefined;
138
+ } | undefined;
139
+ }, {
140
+ type: K_2;
141
+ payload: import("./types").GetMessages<TBot>[K_2];
142
+ }>; } : never) & {
143
+ '*': import("./server").OutgoingMessageRequest<TBot>;
144
+ })[T_22];
145
+ }; } : never)[T_20]) => Promise<void | ((import("./types").GetMessages<TBot> extends infer T_23 ? { [K_2 in keyof T_23]: utils.types.Merge<{
146
+ payload: {
147
+ [x: string]: any;
148
+ };
149
+ userId: string;
150
+ conversationId: string;
151
+ type: string;
152
+ tags: {
153
+ [x: string]: string;
154
+ };
155
+ schedule?: {
156
+ dateTime?: string | undefined;
157
+ delay?: number | undefined;
158
+ } | undefined;
159
+ }, {
160
+ type: K_2;
161
+ payload: import("./types").GetMessages<TBot>[K_2];
162
+ }>; } : never) & {
163
+ '*': import("./server").OutgoingMessageRequest<TBot>;
164
+ } extends infer T_24 ? { [T_25 in keyof T_24]: {
165
+ data: ((import("./types").GetMessages<TBot> extends infer T_23 ? { [K_2 in keyof T_23]: utils.types.Merge<{
166
+ payload: {
167
+ [x: string]: any;
168
+ };
169
+ userId: string;
170
+ conversationId: string;
171
+ type: string;
172
+ tags: {
173
+ [x: string]: string;
174
+ };
175
+ schedule?: {
176
+ dateTime?: string | undefined;
177
+ delay?: number | undefined;
178
+ } | undefined;
179
+ }, {
180
+ type: K_2;
181
+ payload: import("./types").GetMessages<TBot>[K_2];
182
+ }>; } : never) & {
183
+ '*': import("./server").OutgoingMessageRequest<TBot>;
184
+ })[T_25];
185
+ }; } : never)[T_20] | undefined>; } : never)[T_18]) => void;
186
+ before_call_action: <T_26 extends "*" | keyof import("./types").EnumerateActions<TBot>>(type: T_26, handler: ((import("./types").EnumerateActionInputs<TBot> extends infer T_31 ? { [K_3 in keyof T_31]: utils.types.Merge<{
187
+ type: string;
188
+ input: {
189
+ [x: string]: any;
190
+ };
191
+ }, {
192
+ type: K_3;
193
+ input: import("./types").EnumerateActionInputs<TBot>[K_3];
194
+ }>; } : never) & {
195
+ '*': import("./server").OutgoingCallActionRequest<TBot>;
196
+ } extends infer T_27 ? { [T_28 in keyof T_27]: (input: ((import("./types").EnumerateActionInputs<TBot> extends infer T_31 ? { [K_3 in keyof T_31]: utils.types.Merge<{
197
+ type: string;
198
+ input: {
199
+ [x: string]: any;
200
+ };
201
+ }, {
202
+ type: K_3;
203
+ input: import("./types").EnumerateActionInputs<TBot>[K_3];
204
+ }>; } : never) & {
205
+ '*': import("./server").OutgoingCallActionRequest<TBot>;
206
+ } extends infer T_29 ? { [T_30 in keyof T_29]: {
207
+ client: import("./client").BotSpecificClient<TBot>;
208
+ ctx: import("./server").BotContext;
209
+ data: ((import("./types").EnumerateActionInputs<TBot> extends infer T_31 ? { [K_3 in keyof T_31]: utils.types.Merge<{
210
+ type: string;
211
+ input: {
212
+ [x: string]: any;
213
+ };
214
+ }, {
215
+ type: K_3;
216
+ input: import("./types").EnumerateActionInputs<TBot>[K_3];
217
+ }>; } : never) & {
218
+ '*': import("./server").OutgoingCallActionRequest<TBot>;
219
+ })[T_30];
220
+ }; } : never)[T_28]) => Promise<void | ((import("./types").EnumerateActionInputs<TBot> extends infer T_31 ? { [K_3 in keyof T_31]: utils.types.Merge<{
221
+ type: string;
222
+ input: {
223
+ [x: string]: any;
224
+ };
225
+ }, {
226
+ type: K_3;
227
+ input: import("./types").EnumerateActionInputs<TBot>[K_3];
228
+ }>; } : never) & {
229
+ '*': import("./server").OutgoingCallActionRequest<TBot>;
230
+ } extends infer T_32 ? { [T_33 in keyof T_32]: {
231
+ data: ((import("./types").EnumerateActionInputs<TBot> extends infer T_31 ? { [K_3 in keyof T_31]: utils.types.Merge<{
232
+ type: string;
233
+ input: {
234
+ [x: string]: any;
235
+ };
236
+ }, {
237
+ type: K_3;
238
+ input: import("./types").EnumerateActionInputs<TBot>[K_3];
239
+ }>; } : never) & {
240
+ '*': import("./server").OutgoingCallActionRequest<TBot>;
241
+ })[T_33];
242
+ }; } : never)[T_28] | undefined>; } : never)[T_26]) => void;
243
+ after_incoming_event: <T_34 extends "*" | keyof TBot["events"] | keyof utils.types.UnionToIntersection<(TBot["integrations"] extends infer T ? { [TIntegrationName in keyof T]: TBot["integrations"][TIntegrationName]["events"] extends infer T_1 ? { [TEventName in keyof T_1 as string extends utils.types.Cast<TIntegrationName, string> ? utils.types.Cast<TIntegrationName, string> & string : string extends utils.types.Cast<TEventName, string> ? utils.types.Cast<TEventName, string> & string : `${utils.types.Cast<utils.types.Cast<TIntegrationName, string>, string>}:${utils.types.Cast<utils.types.Cast<TEventName, string>, string>}`]: TBot["integrations"][TIntegrationName]["events"][TEventName]; } : never; } : never)[keyof TBot["integrations"]]>>(type: T_34, handler: ((import("./types").EnumerateEvents<TBot> extends infer T_7 ? { [K in keyof T_7]: utils.types.Merge<import("@botpress/client").Event, {
244
+ type: K;
245
+ payload: import("./types").EnumerateEvents<TBot>[K];
246
+ }>; } : never) & {
247
+ '*': import("./server").IncomingEvent<TBot>;
248
+ } extends infer T_35 ? { [T_36 in keyof T_35]: (input: ((import("./types").EnumerateEvents<TBot> extends infer T_7 ? { [K in keyof T_7]: utils.types.Merge<import("@botpress/client").Event, {
249
+ type: K;
250
+ payload: import("./types").EnumerateEvents<TBot>[K];
251
+ }>; } : never) & {
252
+ '*': import("./server").IncomingEvent<TBot>;
253
+ } extends infer T_37 ? { [T_38 in keyof T_37]: {
254
+ client: import("./client").BotSpecificClient<TBot>;
255
+ ctx: import("./server").BotContext;
256
+ data: ((import("./types").EnumerateEvents<TBot> extends infer T_7 ? { [K in keyof T_7]: utils.types.Merge<import("@botpress/client").Event, {
257
+ type: K;
258
+ payload: import("./types").EnumerateEvents<TBot>[K];
259
+ }>; } : never) & {
260
+ '*': import("./server").IncomingEvent<TBot>;
261
+ })[T_38];
262
+ }; } : never)[T_36]) => Promise<void | ((import("./types").EnumerateEvents<TBot> extends infer T_7 ? { [K in keyof T_7]: utils.types.Merge<import("@botpress/client").Event, {
263
+ type: K;
264
+ payload: import("./types").EnumerateEvents<TBot>[K];
265
+ }>; } : never) & {
266
+ '*': import("./server").IncomingEvent<TBot>;
267
+ } extends infer T_39 ? { [T_40 in keyof T_39]: {
268
+ data: ((import("./types").EnumerateEvents<TBot> extends infer T_7 ? { [K in keyof T_7]: utils.types.Merge<import("@botpress/client").Event, {
269
+ type: K;
270
+ payload: import("./types").EnumerateEvents<TBot>[K];
271
+ }>; } : never) & {
272
+ '*': import("./server").IncomingEvent<TBot>;
273
+ })[T_40];
274
+ }; } : never)[T_36] | undefined>; } : never)[T_34]) => void;
275
+ after_incoming_message: <T_41 extends "*" | keyof import("./types").GetMessages<TBot>>(type: T_41, handler: ((import("./types").GetMessages<TBot> extends infer T_15 ? { [K_1 in keyof T_15]: utils.types.Merge<import("@botpress/client").Message, {
276
+ type: K_1;
277
+ payload: import("./types").GetMessages<TBot>[K_1];
278
+ }>; } : never) & {
279
+ '*': import("./server").IncomingMessage<TBot>;
280
+ } extends infer T_42 ? { [T_43 in keyof T_42]: (input: ((import("./types").GetMessages<TBot> extends infer T_15 ? { [K_1 in keyof T_15]: utils.types.Merge<import("@botpress/client").Message, {
281
+ type: K_1;
282
+ payload: import("./types").GetMessages<TBot>[K_1];
283
+ }>; } : never) & {
284
+ '*': import("./server").IncomingMessage<TBot>;
285
+ } extends infer T_44 ? { [T_45 in keyof T_44]: {
286
+ client: import("./client").BotSpecificClient<TBot>;
287
+ ctx: import("./server").BotContext;
288
+ data: ((import("./types").GetMessages<TBot> extends infer T_15 ? { [K_1 in keyof T_15]: utils.types.Merge<import("@botpress/client").Message, {
289
+ type: K_1;
290
+ payload: import("./types").GetMessages<TBot>[K_1];
291
+ }>; } : never) & {
292
+ '*': import("./server").IncomingMessage<TBot>;
293
+ })[T_45];
294
+ }; } : never)[T_43]) => Promise<void | ((import("./types").GetMessages<TBot> extends infer T_15 ? { [K_1 in keyof T_15]: utils.types.Merge<import("@botpress/client").Message, {
295
+ type: K_1;
296
+ payload: import("./types").GetMessages<TBot>[K_1];
297
+ }>; } : never) & {
298
+ '*': import("./server").IncomingMessage<TBot>;
299
+ } extends infer T_46 ? { [T_47 in keyof T_46]: {
300
+ data: ((import("./types").GetMessages<TBot> extends infer T_15 ? { [K_1 in keyof T_15]: utils.types.Merge<import("@botpress/client").Message, {
301
+ type: K_1;
302
+ payload: import("./types").GetMessages<TBot>[K_1];
303
+ }>; } : never) & {
304
+ '*': import("./server").IncomingMessage<TBot>;
305
+ })[T_47];
306
+ }; } : never)[T_43] | undefined>; } : never)[T_41]) => void;
307
+ after_outgoing_message: <T_48 extends "*" | keyof import("./types").GetMessages<TBot>>(type: T_48, handler: ((import("./types").GetMessages<TBot> extends infer T_53 ? { [K_4 in keyof T_53]: utils.types.Merge<{
308
+ message: {
309
+ id: string;
310
+ createdAt: string;
311
+ type: string;
312
+ payload: {
313
+ [x: string]: any;
314
+ };
315
+ direction: "incoming" | "outgoing";
316
+ userId: string;
317
+ conversationId: string;
318
+ tags: {
319
+ [x: string]: string;
320
+ };
321
+ };
322
+ }, {
323
+ message: utils.types.Merge<import("@botpress/client").Message, {
324
+ type: K_4;
325
+ payload: import("./types").GetMessages<TBot>[K_4];
326
+ }>;
327
+ }>; } : never) & {
328
+ '*': import("./server").OutgoingMessageResponse<TBot>;
329
+ } extends infer T_49 ? { [T_50 in keyof T_49]: (input: ((import("./types").GetMessages<TBot> extends infer T_53 ? { [K_4 in keyof T_53]: utils.types.Merge<{
330
+ message: {
331
+ id: string;
332
+ createdAt: string;
333
+ type: string;
334
+ payload: {
335
+ [x: string]: any;
336
+ };
337
+ direction: "incoming" | "outgoing";
338
+ userId: string;
339
+ conversationId: string;
340
+ tags: {
341
+ [x: string]: string;
342
+ };
343
+ };
344
+ }, {
345
+ message: utils.types.Merge<import("@botpress/client").Message, {
346
+ type: K_4;
347
+ payload: import("./types").GetMessages<TBot>[K_4];
348
+ }>;
349
+ }>; } : never) & {
350
+ '*': import("./server").OutgoingMessageResponse<TBot>;
351
+ } extends infer T_51 ? { [T_52 in keyof T_51]: {
352
+ client: import("./client").BotSpecificClient<TBot>;
353
+ ctx: import("./server").BotContext;
354
+ data: ((import("./types").GetMessages<TBot> extends infer T_53 ? { [K_4 in keyof T_53]: utils.types.Merge<{
355
+ message: {
356
+ id: string;
357
+ createdAt: string;
358
+ type: string;
359
+ payload: {
360
+ [x: string]: any;
361
+ };
362
+ direction: "incoming" | "outgoing";
363
+ userId: string;
364
+ conversationId: string;
365
+ tags: {
366
+ [x: string]: string;
367
+ };
368
+ };
369
+ }, {
370
+ message: utils.types.Merge<import("@botpress/client").Message, {
371
+ type: K_4;
372
+ payload: import("./types").GetMessages<TBot>[K_4];
373
+ }>;
374
+ }>; } : never) & {
375
+ '*': import("./server").OutgoingMessageResponse<TBot>;
376
+ })[T_52];
377
+ }; } : never)[T_50]) => Promise<void | ((import("./types").GetMessages<TBot> extends infer T_53 ? { [K_4 in keyof T_53]: utils.types.Merge<{
378
+ message: {
379
+ id: string;
380
+ createdAt: string;
381
+ type: string;
382
+ payload: {
383
+ [x: string]: any;
384
+ };
385
+ direction: "incoming" | "outgoing";
386
+ userId: string;
387
+ conversationId: string;
388
+ tags: {
389
+ [x: string]: string;
390
+ };
391
+ };
392
+ }, {
393
+ message: utils.types.Merge<import("@botpress/client").Message, {
394
+ type: K_4;
395
+ payload: import("./types").GetMessages<TBot>[K_4];
396
+ }>;
397
+ }>; } : never) & {
398
+ '*': import("./server").OutgoingMessageResponse<TBot>;
399
+ } extends infer T_54 ? { [T_55 in keyof T_54]: {
400
+ data: ((import("./types").GetMessages<TBot> extends infer T_53 ? { [K_4 in keyof T_53]: utils.types.Merge<{
401
+ message: {
402
+ id: string;
403
+ createdAt: string;
404
+ type: string;
405
+ payload: {
406
+ [x: string]: any;
407
+ };
408
+ direction: "incoming" | "outgoing";
409
+ userId: string;
410
+ conversationId: string;
411
+ tags: {
412
+ [x: string]: string;
413
+ };
414
+ };
415
+ }, {
416
+ message: utils.types.Merge<import("@botpress/client").Message, {
417
+ type: K_4;
418
+ payload: import("./types").GetMessages<TBot>[K_4];
419
+ }>;
420
+ }>; } : never) & {
421
+ '*': import("./server").OutgoingMessageResponse<TBot>;
422
+ })[T_55];
423
+ }; } : never)[T_50] | undefined>; } : never)[T_48]) => void;
424
+ after_call_action: <T_56 extends "*" | keyof import("./types").EnumerateActions<TBot>>(type: T_56, handler: ((import("./types").EnumerateActionOutputs<TBot> extends infer T_61 ? { [K_5 in keyof T_61]: utils.types.Merge<{
425
+ output: {
426
+ [x: string]: any;
427
+ };
428
+ meta: {
429
+ cached: boolean;
430
+ };
431
+ }, {
432
+ output: import("./types").EnumerateActionOutputs<TBot>[K_5];
433
+ }>; } : never) & {
434
+ '*': import("./server").OutgoingCallActionResponse<TBot>;
435
+ } extends infer T_57 ? { [T_58 in keyof T_57]: (input: ((import("./types").EnumerateActionOutputs<TBot> extends infer T_61 ? { [K_5 in keyof T_61]: utils.types.Merge<{
436
+ output: {
437
+ [x: string]: any;
438
+ };
439
+ meta: {
440
+ cached: boolean;
441
+ };
442
+ }, {
443
+ output: import("./types").EnumerateActionOutputs<TBot>[K_5];
444
+ }>; } : never) & {
445
+ '*': import("./server").OutgoingCallActionResponse<TBot>;
446
+ } extends infer T_59 ? { [T_60 in keyof T_59]: {
447
+ client: import("./client").BotSpecificClient<TBot>;
448
+ ctx: import("./server").BotContext;
449
+ data: ((import("./types").EnumerateActionOutputs<TBot> extends infer T_61 ? { [K_5 in keyof T_61]: utils.types.Merge<{
450
+ output: {
451
+ [x: string]: any;
452
+ };
453
+ meta: {
454
+ cached: boolean;
455
+ };
456
+ }, {
457
+ output: import("./types").EnumerateActionOutputs<TBot>[K_5];
458
+ }>; } : never) & {
459
+ '*': import("./server").OutgoingCallActionResponse<TBot>;
460
+ })[T_60];
461
+ }; } : never)[T_58]) => Promise<void | ((import("./types").EnumerateActionOutputs<TBot> extends infer T_61 ? { [K_5 in keyof T_61]: utils.types.Merge<{
462
+ output: {
463
+ [x: string]: any;
464
+ };
465
+ meta: {
466
+ cached: boolean;
467
+ };
468
+ }, {
469
+ output: import("./types").EnumerateActionOutputs<TBot>[K_5];
470
+ }>; } : never) & {
471
+ '*': import("./server").OutgoingCallActionResponse<TBot>;
472
+ } extends infer T_62 ? { [T_63 in keyof T_62]: {
473
+ data: ((import("./types").EnumerateActionOutputs<TBot> extends infer T_61 ? { [K_5 in keyof T_61]: utils.types.Merge<{
474
+ output: {
475
+ [x: string]: any;
476
+ };
477
+ meta: {
478
+ cached: boolean;
479
+ };
480
+ }, {
481
+ output: import("./types").EnumerateActionOutputs<TBot>[K_5];
482
+ }>; } : never) & {
483
+ '*': import("./server").OutgoingCallActionResponse<TBot>;
484
+ })[T_63];
485
+ }; } : never)[T_58] | undefined>; } : never)[T_56]) => void;
486
+ };
12
487
  readonly handler: (req: import("../serve").Request) => Promise<void | import("../serve").Response>;
13
488
  readonly start: (port?: number) => Promise<Server>;
14
489
  }
@@ -2,4 +2,4 @@ import { Request, Response } from '../../serve';
2
2
  import * as common from '../types';
3
3
  import * as types from './types';
4
4
  export * from './types';
5
- export declare const botHandler: (instance: types.BotHandlers<common.BaseBot>) => (req: Request) => Promise<Response | void>;
5
+ export declare const botHandler: (bot: types.BotHandlers<common.BaseBot>) => (req: Request) => Promise<Response | void>;