@mindstudio-ai/agent 0.0.2 → 0.0.3

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.
package/dist/index.d.ts CHANGED
@@ -37,14 +37,70 @@ interface StepExecutionOptions {
37
37
  */
38
38
  threadId?: string;
39
39
  }
40
- /** Result of a step execution call. */
41
- interface StepExecutionResult<TOutput = unknown> {
42
- /** The step's output data. */
43
- output: TOutput;
40
+ /** Execution metadata returned alongside every step result. */
41
+ interface StepExecutionMeta {
44
42
  /** The app ID used for this execution. Pass to subsequent calls to reuse. */
45
- appId: string;
43
+ $appId: string;
46
44
  /** The thread ID used for this execution. Pass to subsequent calls to maintain state. */
47
- threadId: string;
45
+ $threadId: string;
46
+ }
47
+ /**
48
+ * Result of a step execution call.
49
+ *
50
+ * Output properties are spread at the top level for easy destructuring:
51
+ * ```ts
52
+ * const { content } = await agent.userMessage({ ... });
53
+ * ```
54
+ *
55
+ * Execution metadata (`$appId`, `$threadId`) is also available on the same object:
56
+ * ```ts
57
+ * const result = await agent.userMessage({ ... });
58
+ * console.log(result.content, result.$threadId);
59
+ * ```
60
+ */
61
+ type StepExecutionResult<TOutput = Record<string, unknown>> = TOutput & StepExecutionMeta;
62
+
63
+ /**
64
+ * Client for the MindStudio direct step execution API.
65
+ *
66
+ * Create an instance and call typed step methods directly:
67
+ *
68
+ * ```ts
69
+ * const agent = new MindStudioAgent({ apiKey: "your-key" });
70
+ * const { imageUrl } = await agent.generateImage({ prompt: "a sunset", mode: "background" });
71
+ * console.log(imageUrl);
72
+ * ```
73
+ *
74
+ * Authentication is resolved in order:
75
+ * 1. `apiKey` passed to the constructor
76
+ * 2. `MINDSTUDIO_API_KEY` environment variable
77
+ * 3. `CALLBACK_TOKEN` environment variable (auto-set inside MindStudio custom functions)
78
+ *
79
+ * Base URL is resolved in order:
80
+ * 1. `baseUrl` passed to the constructor
81
+ * 2. `MINDSTUDIO_BASE_URL` environment variable
82
+ * 3. `REMOTE_HOSTNAME` environment variable (auto-set inside MindStudio custom functions)
83
+ * 4. `https://v1.mindstudio-api.com` (production default)
84
+ */
85
+ declare class MindStudioAgent$1 {
86
+ /** @internal */
87
+ readonly _httpConfig: HttpClientConfig;
88
+ constructor(options?: AgentOptions);
89
+ /**
90
+ * Execute any step by its type name. This is the low-level method that all
91
+ * typed step methods delegate to. Use it as an escape hatch for step types
92
+ * not yet covered by the generated methods.
93
+ *
94
+ * ```ts
95
+ * const result = await agent.executeStep("generateImage", { prompt: "hello", mode: "background" });
96
+ * ```
97
+ */
98
+ executeStep<TOutput = unknown>(stepType: string, step: Record<string, unknown>, options?: StepExecutionOptions): Promise<StepExecutionResult<TOutput>>;
99
+ /** @internal Used by generated helper methods. */
100
+ _request<T>(method: 'GET' | 'POST', path: string, body?: unknown): Promise<{
101
+ data: T;
102
+ headers: Headers;
103
+ }>;
48
104
  }
49
105
 
50
106
  interface ActiveCampaignAddNoteStepInput {
@@ -71,8 +127,6 @@ interface ActiveCampaignCreateContactStepInput {
71
127
  customFields: Record<string, unknown>;
72
128
  /** ActiveCampaign OAuth connection ID */
73
129
  connectionId: string;
74
- /** Variable name to store the created contact ID */
75
- destinationVar?: string;
76
130
  }
77
131
  interface ActiveCampaignCreateContactStepOutput {
78
132
  /** ActiveCampaign contact ID of the created contact */
@@ -81,8 +135,6 @@ interface ActiveCampaignCreateContactStepOutput {
81
135
  interface AddSubtitlesToVideoStepInput {
82
136
  /** URL of the source video */
83
137
  videoUrl: string;
84
- /** Variable name to store the output URL */
85
- destinationVar: string;
86
138
  /** ISO language code for subtitle transcription */
87
139
  language: string;
88
140
  /** Google Font name for subtitle text */
@@ -119,8 +171,6 @@ interface AddSubtitlesToVideoStepOutput {
119
171
  videoUrl: string;
120
172
  }
121
173
  interface AirtableCreateUpdateRecordStepInput {
122
- /** Variable name to store the created/updated record ID */
123
- destinationVar?: string;
124
174
  /** Airtable OAuth connection ID */
125
175
  connectionId: string;
126
176
  /** Airtable base ID */
@@ -143,8 +193,6 @@ interface AirtableCreateUpdateRecordStepOutput {
143
193
  interface AirtableDeleteRecordStepInput {
144
194
  /** Airtable OAuth connection ID */
145
195
  connectionId: string;
146
- /** Variable name to store the result */
147
- destinationVar?: string;
148
196
  /** Airtable base ID */
149
197
  baseId: string;
150
198
  /** Airtable table ID */
@@ -159,8 +207,6 @@ interface AirtableDeleteRecordStepOutput {
159
207
  interface AirtableGetRecordStepInput {
160
208
  /** Airtable OAuth connection ID */
161
209
  connectionId: string;
162
- /** Variable name to store the JSON result */
163
- destinationVar?: string;
164
210
  /** Airtable base ID (e.g. "appXXXXXX") */
165
211
  baseId: string;
166
212
  /** Airtable table ID (e.g. "tblXXXXXX") */
@@ -182,8 +228,6 @@ interface AirtableGetRecordStepOutput {
182
228
  interface AirtableGetTableRecordsStepInput {
183
229
  /** Airtable OAuth connection ID */
184
230
  connectionId: string;
185
- /** Variable name to store the result */
186
- destinationVar?: string;
187
231
  /** Airtable base ID (e.g. "appXXXXXX") */
188
232
  baseId: string;
189
233
  /** Airtable table ID (e.g. "tblXXXXXX") */
@@ -209,8 +253,6 @@ interface AnalyzeImageStepInput {
209
253
  prompt: string;
210
254
  /** URL of the image to analyze */
211
255
  imageUrl: string;
212
- /** Variable name to save the analysis text into */
213
- destinationVar?: string;
214
256
  /** Optional model configuration override. Uses the workflow's default vision model if not specified */
215
257
  visionModelOverride?: {
216
258
  model: string;
@@ -256,8 +298,6 @@ interface AnalyzeVideoStepInput {
256
298
  prompt: string;
257
299
  /** URL of the video to analyze */
258
300
  videoUrl: string;
259
- /** Variable name to save the analysis text into */
260
- destinationVar?: string;
261
301
  /** Optional model configuration override. Uses the workflow's default video analysis model if not specified */
262
302
  videoAnalysisModelOverride?: {
263
303
  model: string;
@@ -301,8 +341,6 @@ interface AnalyzeVideoStepOutput {
301
341
  interface CaptureThumbnailStepInput {
302
342
  /** URL of the source video to capture a frame from */
303
343
  videoUrl: string;
304
- /** Variable name to store the output URL */
305
- destinationVar: string;
306
344
  /** Timestamp in seconds to capture the frame, or 'last' for the final frame */
307
345
  at: number | string;
308
346
  }
@@ -311,8 +349,6 @@ interface CaptureThumbnailStepOutput {
311
349
  thumbnailUrl: string;
312
350
  }
313
351
  interface CodaCreateUpdatePageStepInput {
314
- /** Variable name to store the created/updated page ID */
315
- destinationVar?: string;
316
352
  /** Coda OAuth connection ID */
317
353
  connectionId: string;
318
354
  /** Page configuration including document ID, title, content, and optional parent page */
@@ -344,8 +380,6 @@ interface CodaCreateUpdatePageStepOutput {
344
380
  pageId: string;
345
381
  }
346
382
  interface CodaCreateUpdateRowStepInput {
347
- /** Variable name to store the created/updated row ID */
348
- destinationVar?: string;
349
383
  /** Coda OAuth connection ID */
350
384
  connectionId: string;
351
385
  /** Coda document ID */
@@ -362,8 +396,6 @@ interface CodaCreateUpdateRowStepOutput {
362
396
  rowId: string;
363
397
  }
364
398
  interface CodaFindRowStepInput {
365
- /** Variable name to store the found row as JSON */
366
- destinationVar?: string;
367
399
  /** Coda OAuth connection ID */
368
400
  connectionId: string;
369
401
  /** Coda document ID */
@@ -383,8 +415,6 @@ interface CodaFindRowStepOutput {
383
415
  } | null;
384
416
  }
385
417
  interface CodaGetPageStepInput {
386
- /** Variable name to store the page content */
387
- destinationVar?: string;
388
418
  /** Coda OAuth connection ID */
389
419
  connectionId: string;
390
420
  /** Coda document ID */
@@ -399,8 +429,6 @@ interface CodaGetPageStepOutput {
399
429
  content: string;
400
430
  }
401
431
  interface CodaGetTableRowsStepInput {
402
- /** Variable name to store the result */
403
- destinationVar?: string;
404
432
  /** Coda OAuth connection ID */
405
433
  connectionId: string;
406
434
  /** Coda document ID */
@@ -424,8 +452,6 @@ interface CodaGetTableRowsStepOutput {
424
452
  interface ConvertPdfToImagesStepInput {
425
453
  /** URL of the PDF document to convert */
426
454
  pdfUrl: string;
427
- /** Variable name to save the array of image URLs into */
428
- destinationVar?: string;
429
455
  }
430
456
  interface ConvertPdfToImagesStepOutput {
431
457
  /** CDN URLs of the generated page images, one per page of the PDF */
@@ -446,8 +472,6 @@ interface CreateGoogleCalendarEventStepInput {
446
472
  endDateTime: string;
447
473
  /** Attendee email addresses, one per line */
448
474
  attendees?: string;
449
- /** Variable to store the result (JSON with eventId and htmlLink) */
450
- destinationVar?: string;
451
475
  /** Whether to attach a Google Meet video call link */
452
476
  addMeetLink?: boolean;
453
477
  /** Calendar ID (defaults to "primary" if omitted) */
@@ -464,8 +488,6 @@ interface CreateGoogleDocStepInput {
464
488
  title: string;
465
489
  /** Document body content */
466
490
  text: string;
467
- /** Variable to store the resulting document URL */
468
- destinationVar?: string;
469
491
  /** Google OAuth connection ID */
470
492
  connectionId: string;
471
493
  /** Format of the text field: "plain", "html", or "markdown" */
@@ -480,8 +502,6 @@ interface CreateGoogleSheetStepInput {
480
502
  title: string;
481
503
  /** CSV data to populate the sheet with */
482
504
  text: string;
483
- /** Variable to store the resulting spreadsheet URL */
484
- destinationVar?: string;
485
505
  /** Google OAuth connection ID */
486
506
  connectionId: string;
487
507
  }
@@ -532,8 +552,6 @@ interface DownloadVideoStepInput {
532
552
  videoUrl: string;
533
553
  /** Output format for the downloaded file */
534
554
  format: "mp4" | "mp3";
535
- /** Variable name to store the output URL */
536
- destinationVar: string;
537
555
  }
538
556
  interface DownloadVideoStepOutput {
539
557
  /** URL of the downloaded and re-hosted video file */
@@ -544,8 +562,6 @@ interface EnhanceImageGenerationPromptStepInput {
544
562
  initialPrompt: string;
545
563
  /** Whether to also generate a negative prompt */
546
564
  includeNegativePrompt: boolean;
547
- /** Variable name to save the enhanced prompt into */
548
- destinationVariableName?: string;
549
565
  /** Variable name to save the negative prompt into */
550
566
  negativePromptDestinationVariableName?: string;
551
567
  /** Custom system prompt for the enhancement model. Uses a default prompt if not provided */
@@ -564,8 +580,6 @@ interface EnhanceVideoGenerationPromptStepInput {
564
580
  initialPrompt: string;
565
581
  /** Whether to also generate a negative prompt */
566
582
  includeNegativePrompt: boolean;
567
- /** Variable name to save the enhanced prompt into */
568
- destinationVariableName?: string;
569
583
  /** Variable name to save the negative prompt into */
570
584
  negativePromptDestinationVariableName?: string;
571
585
  /** Custom system prompt for the enhancement model. Uses a default prompt if not provided */
@@ -580,8 +594,6 @@ interface EnhanceVideoGenerationPromptStepOutput {
580
594
  negativePrompt?: string;
581
595
  }
582
596
  interface EnrichPersonStepInput {
583
- /** Variable name to store the result as JSON */
584
- destinationVar?: string;
585
597
  /** Search parameters to identify the person (ID, name, LinkedIn URL, email, or domain) */
586
598
  params: {
587
599
  /** Apollo person ID */
@@ -603,8 +615,6 @@ interface EnrichPersonStepOutput {
603
615
  interface ExtractAudioFromVideoStepInput {
604
616
  /** URL of the source video to extract audio from */
605
617
  videoUrl: string;
606
- /** Variable name to store the output URL */
607
- destinationVar: string;
608
618
  }
609
619
  interface ExtractAudioFromVideoStepOutput {
610
620
  /** URL of the extracted audio MP3 file */
@@ -613,8 +623,6 @@ interface ExtractAudioFromVideoStepOutput {
613
623
  interface ExtractTextStepInput {
614
624
  /** URL or array of URLs to extract text from. Accepts a single URL, comma-separated list, or JSON array */
615
625
  url: string | string[];
616
- /** Variable name to save the extracted text into */
617
- destinationVar?: string;
618
626
  }
619
627
  interface ExtractTextStepOutput {
620
628
  /** Extracted text content. A single string for one URL, or an array for multiple URLs */
@@ -623,8 +631,6 @@ interface ExtractTextStepOutput {
623
631
  interface FetchGoogleDocStepInput {
624
632
  /** Google Document ID (from the document URL) */
625
633
  documentId: string;
626
- /** Variable to store the fetched content */
627
- destinationVar?: string;
628
634
  /** Google OAuth connection ID */
629
635
  connectionId: string;
630
636
  /** Output format: "html", "markdown", "json", or "plain" */
@@ -639,8 +645,6 @@ interface FetchGoogleSheetStepInput {
639
645
  spreadsheetId: string;
640
646
  /** Cell range in A1 notation (e.g. "Sheet1!A1:C10") */
641
647
  range: string;
642
- /** Variable to store the fetched content */
643
- destinationVar?: string;
644
648
  /** Google OAuth connection ID */
645
649
  connectionId: string;
646
650
  /** Output format: "csv" or "json" */
@@ -655,8 +659,6 @@ interface FetchSlackChannelHistoryStepInput {
655
659
  connectionId: string;
656
660
  /** Slack channel ID (leave empty to allow user to select a channel) */
657
661
  channelId: string;
658
- /** Variable to store the output as JSON */
659
- destinationVar?: string;
660
662
  /** Maximum number of messages to return (1-15) */
661
663
  limit?: number;
662
664
  /** Earliest date to include messages from */
@@ -1040,8 +1042,6 @@ interface FetchSlackChannelHistoryStepOutput {
1040
1042
  interface FetchYoutubeCaptionsStepInput {
1041
1043
  /** YouTube video URL to fetch captions for */
1042
1044
  videoUrl: string;
1043
- /** Variable name to save the formatted captions */
1044
- destinationVar?: string;
1045
1045
  /** Output format: "text" for timestamped plain text, "json" for structured transcript data */
1046
1046
  exportType: "text" | "json";
1047
1047
  /** Language code for the captions (e.g. "en") */
@@ -1059,8 +1059,6 @@ interface FetchYoutubeCaptionsStepOutput {
1059
1059
  interface FetchYoutubeChannelStepInput {
1060
1060
  /** YouTube channel URL (e.g. https://www.youtube.com/@ChannelName or /channel/ID) */
1061
1061
  channelUrl: string;
1062
- /** Variable name to save the channel data */
1063
- destinationVar?: string;
1064
1062
  }
1065
1063
  interface FetchYoutubeChannelStepOutput {
1066
1064
  /** Channel metadata and video listings */
@@ -1069,8 +1067,6 @@ interface FetchYoutubeChannelStepOutput {
1069
1067
  interface FetchYoutubeCommentsStepInput {
1070
1068
  /** YouTube video URL to fetch comments for */
1071
1069
  videoUrl: string;
1072
- /** Variable name to save the formatted comments */
1073
- destinationVar?: string;
1074
1070
  /** Output format: "text" for markdown-formatted text, "json" for structured comment data */
1075
1071
  exportType: "text" | "json";
1076
1072
  /** Maximum number of comment pages to fetch (1-5) */
@@ -1102,8 +1098,6 @@ interface FetchYoutubeCommentsStepOutput {
1102
1098
  interface FetchYoutubeVideoStepInput {
1103
1099
  /** YouTube video URL to fetch metadata for */
1104
1100
  videoUrl: string;
1105
- /** Variable name to save the video data */
1106
- destinationVar?: string;
1107
1101
  }
1108
1102
  interface FetchYoutubeVideoStepOutput {
1109
1103
  /** Video metadata including title, description, stats, and channel info */
@@ -1124,8 +1118,6 @@ interface GenerateChartStepInput {
1124
1118
  height: string;
1125
1119
  };
1126
1120
  };
1127
- /** Variable name to save the chart image URL into */
1128
- destinationVar?: string;
1129
1121
  }
1130
1122
  interface GenerateChartStepOutput {
1131
1123
  /** URL of the generated chart image */
@@ -1134,10 +1126,6 @@ interface GenerateChartStepOutput {
1134
1126
  interface GenerateImageStepInput {
1135
1127
  /** Text prompt describing the image to generate */
1136
1128
  prompt: string;
1137
- /** foreground = display to user, background = save URL to variable */
1138
- mode: "foreground" | "background";
1139
- /** Variable name to save the generated image URL(s) into */
1140
- destinationVar?: string;
1141
1129
  /** If true, the image will not appear in the user's asset history */
1142
1130
  skipAssetCreation?: boolean;
1143
1131
  /** Optional model configuration override. Uses the workflow's default image model if not specified */
@@ -1151,8 +1139,6 @@ interface GenerateImageStepInput {
1151
1139
  generateVariants?: boolean;
1152
1140
  /** Number of variants to generate (max 10) */
1153
1141
  numVariants?: number;
1154
- /** How to handle multiple variants: userSelect prompts the user, saveAll saves all URLs */
1155
- variantBehavior?: "userSelect" | "saveAll";
1156
1142
  /** Whether to add a MindStudio watermark to the generated image */
1157
1143
  addWatermark?: boolean;
1158
1144
  }
@@ -1161,10 +1147,6 @@ interface GenerateImageStepOutput {
1161
1147
  imageUrl: string | string[];
1162
1148
  }
1163
1149
  interface GenerateLipsyncStepInput {
1164
- /** foreground = display video to user, background = save URL to variable */
1165
- mode: "foreground" | "background";
1166
- /** Variable name to save the video URL into (used in background mode) */
1167
- destinationVar?: string;
1168
1150
  /** If true, the generated video will not appear in the user's asset history */
1169
1151
  skipAssetCreation?: boolean;
1170
1152
  /** Whether to add a MindStudio watermark to the generated video */
@@ -1179,10 +1161,6 @@ type GenerateLipsyncStepOutput = unknown;
1179
1161
  interface GenerateMusicStepInput {
1180
1162
  /** The instructions (prompt) for the music generation */
1181
1163
  text: string;
1182
- /** foreground = display audio to user, background = save URL to variable */
1183
- mode: "foreground" | "background";
1184
- /** Variable name to save the audio URL into (used in background mode) */
1185
- destinationVar?: string;
1186
1164
  /** If true, the generated audio will not appear in the user's asset history */
1187
1165
  skipAssetCreation?: boolean;
1188
1166
  /** Optional model configuration override. Uses the workflow's default music model if not specified */
@@ -1197,10 +1175,6 @@ interface GeneratePdfStepInput {
1197
1175
  source: string;
1198
1176
  /** Source type: html, markdown (auto-formatted), spa (single page app), raw (pre-generated HTML in a variable), dynamic (AI-generated from prompt), or customInterface */
1199
1177
  sourceType: "html" | "markdown" | "spa" | "raw" | "dynamic" | "customInterface";
1200
- /** foreground = display the asset to the user, background = save the URL to a variable */
1201
- mode: "foreground" | "background";
1202
- /** Variable name to save the asset URL into (used in background mode) */
1203
- destinationVar?: string;
1204
1178
  /** The output format for the generated asset */
1205
1179
  outputFormat: "pdf" | "png" | "html" | "mp4" | "openGraph";
1206
1180
  /** Page size for PDF, PNG, or MP4 output */
@@ -1283,8 +1257,6 @@ interface GenerateStaticVideoFromImageStepInput {
1283
1257
  imageUrl: string;
1284
1258
  /** Duration of the output video in seconds */
1285
1259
  duration: string;
1286
- /** Variable name to store the output URL */
1287
- destinationVar: string;
1288
1260
  }
1289
1261
  interface GenerateStaticVideoFromImageStepOutput {
1290
1262
  /** URL of the generated static video */
@@ -1293,10 +1265,6 @@ interface GenerateStaticVideoFromImageStepOutput {
1293
1265
  interface GenerateVideoStepInput {
1294
1266
  /** Text prompt describing the video to generate */
1295
1267
  prompt: string;
1296
- /** foreground = display to user, background = save URL to variable */
1297
- mode: "foreground" | "background";
1298
- /** Variable name to save the generated video URL(s) into */
1299
- destinationVar?: string;
1300
1268
  /** If true, the video will not appear in the user's asset history */
1301
1269
  skipAssetCreation?: boolean;
1302
1270
  /** Optional model configuration override. Uses the workflow's default video model if not specified */
@@ -1310,8 +1278,6 @@ interface GenerateVideoStepInput {
1310
1278
  generateVariants?: boolean;
1311
1279
  /** Number of variants to generate (max 10) */
1312
1280
  numVariants?: number;
1313
- /** How to handle multiple variants: userSelect prompts the user, saveAll saves all URLs */
1314
- variantBehavior?: "userSelect" | "saveAll";
1315
1281
  /** Whether to add a MindStudio watermark to the generated video */
1316
1282
  addWatermark?: boolean;
1317
1283
  }
@@ -1326,8 +1292,6 @@ interface GetGoogleCalendarEventStepInput {
1326
1292
  eventId: string;
1327
1293
  /** Format for the variable output: "json" or "text" */
1328
1294
  exportType: "json" | "text";
1329
- /** Variable to store the result */
1330
- destinationVar?: string;
1331
1295
  /** Calendar ID (defaults to "primary" if omitted) */
1332
1296
  calendarId?: string;
1333
1297
  }
@@ -1376,8 +1340,6 @@ interface GetGoogleCalendarEventStepOutput {
1376
1340
  interface GetMediaMetadataStepInput {
1377
1341
  /** URL of the audio or video file to analyze */
1378
1342
  mediaUrl: string;
1379
- /** Variable name to store the metadata result */
1380
- destinationVar: string;
1381
1343
  }
1382
1344
  interface GetMediaMetadataStepOutput {
1383
1345
  /** JSON string containing the media file metadata */
@@ -1400,8 +1362,6 @@ interface HttpRequestStepInput {
1400
1362
  contentType: "none" | "application/json" | "application/x-www-form-urlencoded" | "multipart/form-data" | "custom";
1401
1363
  /** Custom Content-Type header value (used when contentType is "custom") */
1402
1364
  customContentType: string;
1403
- /** Variable name to save the response body into */
1404
- destinationVar?: string;
1405
1365
  /** Test data for debug/preview mode */
1406
1366
  testData?: Record<string, unknown>;
1407
1367
  }
@@ -1418,8 +1378,6 @@ interface HttpRequestStepOutput {
1418
1378
  interface HubspotCreateCompanyStepInput {
1419
1379
  /** HubSpot OAuth connection ID */
1420
1380
  connectionId: string;
1421
- /** Variable name to store the company ID */
1422
- destinationVar?: string;
1423
1381
  /** Company data including domain, name, and additional properties */
1424
1382
  company: {
1425
1383
  /** Company domain, used for matching existing companies */
@@ -1444,8 +1402,6 @@ interface HubspotCreateCompanyStepOutput {
1444
1402
  interface HubspotCreateContactStepInput {
1445
1403
  /** HubSpot OAuth connection ID */
1446
1404
  connectionId: string;
1447
- /** Variable name to store the contact ID */
1448
- destinationVar?: string;
1449
1405
  /** Contact data including email, first name, last name, and additional properties */
1450
1406
  contact: {
1451
1407
  /** Contact email address, used for matching existing contacts */
@@ -1474,8 +1430,6 @@ interface HubspotCreateContactStepOutput {
1474
1430
  interface HubspotGetCompanyStepInput {
1475
1431
  /** HubSpot OAuth connection ID */
1476
1432
  connectionId: string;
1477
- /** Variable name to store the result as JSON */
1478
- destinationVar?: string;
1479
1433
  /** How to look up the company: by domain name or HubSpot company ID */
1480
1434
  searchBy: "domain" | "id";
1481
1435
  /** Domain to search by (used when searchBy is 'domain') */
@@ -1498,8 +1452,6 @@ interface HubspotGetCompanyStepOutput {
1498
1452
  interface HubspotGetContactStepInput {
1499
1453
  /** HubSpot OAuth connection ID */
1500
1454
  connectionId: string;
1501
- /** Variable name to store the result as JSON */
1502
- destinationVar?: string;
1503
1455
  /** How to look up the contact: by email address or HubSpot contact ID */
1504
1456
  searchBy: "email" | "id";
1505
1457
  /** Email address to search by (used when searchBy is 'email') */
@@ -1522,8 +1474,6 @@ interface HubspotGetContactStepOutput {
1522
1474
  interface HunterApiCompanyEnrichmentStepInput {
1523
1475
  /** Domain or URL to look up (e.g. "example.com") */
1524
1476
  domain: string;
1525
- /** Variable name to store the result as JSON */
1526
- destinationVar?: string;
1527
1477
  }
1528
1478
  interface HunterApiCompanyEnrichmentStepOutput {
1529
1479
  /** Enriched company data, or null if the company was not found */
@@ -1543,8 +1493,6 @@ interface HunterApiCompanyEnrichmentStepOutput {
1543
1493
  interface HunterApiDomainSearchStepInput {
1544
1494
  /** Domain or URL to search for email addresses (e.g. "example.com") */
1545
1495
  domain: string;
1546
- /** Variable name to store the result as JSON */
1547
- destinationVar?: string;
1548
1496
  }
1549
1497
  interface HunterApiDomainSearchStepOutput {
1550
1498
  /** Domain search results including emails and organization info */
@@ -1601,8 +1549,6 @@ interface HunterApiEmailFinderStepInput {
1601
1549
  firstName: string;
1602
1550
  /** Person's last name */
1603
1551
  lastName: string;
1604
- /** Variable name to store the result as JSON */
1605
- destinationVar?: string;
1606
1552
  }
1607
1553
  interface HunterApiEmailFinderStepOutput {
1608
1554
  /** Email finder results including the found email and confidence score */
@@ -1643,8 +1589,6 @@ interface HunterApiEmailFinderStepOutput {
1643
1589
  interface HunterApiEmailVerificationStepInput {
1644
1590
  /** Email address to verify */
1645
1591
  email: string;
1646
- /** Variable name to store the result as JSON */
1647
- destinationVar?: string;
1648
1592
  }
1649
1593
  interface HunterApiEmailVerificationStepOutput {
1650
1594
  /** Email verification results including status, deliverability, and confidence score */
@@ -1689,8 +1633,6 @@ interface HunterApiEmailVerificationStepOutput {
1689
1633
  interface HunterApiPersonEnrichmentStepInput {
1690
1634
  /** Email address to look up */
1691
1635
  email: string;
1692
- /** Variable name to store the result as JSON */
1693
- destinationVar?: string;
1694
1636
  }
1695
1637
  interface HunterApiPersonEnrichmentStepOutput {
1696
1638
  /** Enriched person data, or an error object if the person was not found */
@@ -1716,8 +1658,6 @@ interface HunterApiPersonEnrichmentStepOutput {
1716
1658
  interface ImageFaceSwapStepInput {
1717
1659
  /** URL of the target image containing the face to replace */
1718
1660
  imageUrl: string;
1719
- /** Variable name to store the output URL */
1720
- destinationVar?: string;
1721
1661
  /** URL of the image containing the replacement face */
1722
1662
  faceImageUrl: string;
1723
1663
  /** Face swap engine to use */
@@ -1730,8 +1670,6 @@ interface ImageFaceSwapStepOutput {
1730
1670
  interface ImageRemoveWatermarkStepInput {
1731
1671
  /** URL of the image to remove the watermark from */
1732
1672
  imageUrl: string;
1733
- /** Variable name to store the output URL */
1734
- destinationVar?: string;
1735
1673
  /** Watermark removal engine to use */
1736
1674
  engine: string;
1737
1675
  /** When true, the result will not appear in the user's asset history */
@@ -1757,8 +1695,6 @@ interface InsertVideoClipsStepInput {
1757
1695
  transitionDuration?: number;
1758
1696
  /** When true, uses audio from the overlay clips instead of the base video audio during inserts */
1759
1697
  useOverlayAudio?: boolean;
1760
- /** Variable name to store the output URL */
1761
- destinationVar: string;
1762
1698
  /** When true, the result will not appear in the user's asset history. Useful for intermediate compositing steps. */
1763
1699
  skipAssetCreation?: boolean;
1764
1700
  }
@@ -1775,8 +1711,6 @@ interface ListGoogleCalendarEventsStepInput {
1775
1711
  exportType: "json" | "text";
1776
1712
  /** Calendar ID (defaults to "primary" if omitted) */
1777
1713
  calendarId?: string;
1778
- /** Variable to store the result */
1779
- destinationVar?: string;
1780
1714
  }
1781
1715
  interface ListGoogleCalendarEventsStepOutput {
1782
1716
  /** List of upcoming calendar events ordered by start time */
@@ -1842,8 +1776,6 @@ interface MakeDotComRunScenarioStepInput {
1842
1776
  webhookUrl: string;
1843
1777
  /** Key-value pairs to send as the JSON POST body */
1844
1778
  input: Record<string, unknown>;
1845
- /** Variable name to store the scenario response */
1846
- destinationVar?: string;
1847
1779
  }
1848
1780
  interface MakeDotComRunScenarioStepOutput {
1849
1781
  /** Response from the Make.com scenario (JSON or string depending on scenario configuration) */
@@ -1852,8 +1784,6 @@ interface MakeDotComRunScenarioStepOutput {
1852
1784
  interface MergeAudioStepInput {
1853
1785
  /** URLs of the MP3 audio clips to merge in order */
1854
1786
  mp3Urls: string[];
1855
- /** Variable name to store the output URL */
1856
- destinationVar: string;
1857
1787
  /** FFmpeg MP3 metadata key-value pairs to embed in the output file */
1858
1788
  fileMetadata?: Record<string, unknown>;
1859
1789
  /** URL of an image to embed as album art in the output file */
@@ -1872,8 +1802,6 @@ interface MergeVideosStepInput {
1872
1802
  transition?: string;
1873
1803
  /** Duration of the transition in seconds */
1874
1804
  transitionDuration?: number;
1875
- /** Variable name to store the output URL */
1876
- destinationVar: string;
1877
1805
  /** When true, the result will not appear in the user's asset history. Useful for intermediate compositing steps. */
1878
1806
  skipAssetCreation?: boolean;
1879
1807
  }
@@ -1886,8 +1814,6 @@ interface MixAudioIntoVideoStepInput {
1886
1814
  videoUrl: string;
1887
1815
  /** URL of the audio track to mix into the video */
1888
1816
  audioUrl: string;
1889
- /** Variable name to store the output URL */
1890
- destinationVar: string;
1891
1817
  /** Audio mixing options */
1892
1818
  options: {
1893
1819
  /** When true, preserves the original video audio alongside the new track. Defaults to false. */
@@ -1909,8 +1835,6 @@ interface MixAudioIntoVideoStepOutput {
1909
1835
  interface MuteVideoStepInput {
1910
1836
  /** URL of the source video to mute */
1911
1837
  videoUrl: string;
1912
- /** Variable name to store the output URL */
1913
- destinationVar: string;
1914
1838
  /** When true, the result will not appear in the user's asset history. Useful for intermediate compositing steps. */
1915
1839
  skipAssetCreation?: boolean;
1916
1840
  }
@@ -1919,8 +1843,6 @@ interface MuteVideoStepOutput {
1919
1843
  videoUrl: string;
1920
1844
  }
1921
1845
  interface N8nRunNodeStepInput {
1922
- /** Variable name to store the response */
1923
- destinationVar?: string;
1924
1846
  /** HTTP method to use (GET or POST) */
1925
1847
  method: string;
1926
1848
  /** Authentication type for the webhook request */
@@ -1971,8 +1893,6 @@ interface NotionUpdatePageStepOutput {
1971
1893
  pageUrl: string;
1972
1894
  }
1973
1895
  interface PeopleSearchStepInput {
1974
- /** Variable name to store the search results as JSON */
1975
- destinationVar: string;
1976
1896
  /** Natural language search query (e.g. "marketing directors at SaaS companies in NYC") */
1977
1897
  smartQuery: string;
1978
1898
  /** Whether to enrich each result with full contact details */
@@ -2055,8 +1975,6 @@ interface PostToXStepInput {
2055
1975
  }
2056
1976
  type PostToXStepOutput = unknown;
2057
1977
  interface PostToZapierStepInput {
2058
- /** Variable name to store the webhook response */
2059
- destinationVar?: string;
2060
1978
  /** Zapier webhook URL to send data to */
2061
1979
  webhookUrl: string;
2062
1980
  /** Key-value pairs to send as the JSON POST body */
@@ -2071,8 +1989,6 @@ interface QueryDataSourceStepInput {
2071
1989
  dataSourceId: string;
2072
1990
  /** The search query to run against the data source */
2073
1991
  query: string;
2074
- /** Variable name to save the joined result text into */
2075
- destinationVar?: string;
2076
1992
  /** Maximum number of chunks to return (recommended 1-3) */
2077
1993
  maxResults: number;
2078
1994
  }
@@ -2093,8 +2009,6 @@ interface QueryExternalDatabaseStepInput {
2093
2009
  connectionId: string;
2094
2010
  /** SQL query to execute (supports variable interpolation) */
2095
2011
  query: string;
2096
- /** Variable name to save the formatted query result to */
2097
- destinationVar?: string;
2098
2012
  /** Output format for the result variable */
2099
2013
  outputFormat: "json" | "csv";
2100
2014
  }
@@ -2109,8 +2023,6 @@ interface RedactPIIStepInput {
2109
2023
  language: string;
2110
2024
  /** PII entity types to redact (e.g. ["PHONE_NUMBER", "EMAIL_ADDRESS"]). Empty array means nothing is redacted. */
2111
2025
  entities: string[];
2112
- /** Variable name to store the redacted text */
2113
- destinationVar?: string;
2114
2026
  }
2115
2027
  interface RedactPIIStepOutput {
2116
2028
  /** The input text with detected PII replaced by entity type placeholders (e.g. "<PHONE_NUMBER>") */
@@ -2119,8 +2031,6 @@ interface RedactPIIStepOutput {
2119
2031
  interface RemoveBackgroundFromImageStepInput {
2120
2032
  /** URL of the source image to remove the background from */
2121
2033
  imageUrl: string;
2122
- /** Variable name to store the output URL */
2123
- destinationVar?: string;
2124
2034
  }
2125
2035
  interface RemoveBackgroundFromImageStepOutput {
2126
2036
  /** CDN URL of the image with background removed (transparent PNG) */
@@ -2129,8 +2039,6 @@ interface RemoveBackgroundFromImageStepOutput {
2129
2039
  interface ResizeVideoStepInput {
2130
2040
  /** URL of the source video to resize */
2131
2041
  videoUrl: string;
2132
- /** Variable name to store the output URL */
2133
- destinationVar: string;
2134
2042
  /** Resize mode: 'fit' scales within max dimensions, 'exact' forces exact dimensions */
2135
2043
  mode: "fit" | "exact";
2136
2044
  /** Maximum width in pixels (used with 'fit' mode) */
@@ -2204,8 +2112,6 @@ interface RunWorkflowStepOutput {
2204
2112
  interface ScrapeFacebookPageStepInput {
2205
2113
  /** Full URL to the Facebook page to scrape */
2206
2114
  pageUrl: string;
2207
- /** Variable name to store the scraped page data */
2208
- destinationVar: string;
2209
2115
  }
2210
2116
  interface ScrapeFacebookPageStepOutput {
2211
2117
  /** The result data returned from the Apify actor run */
@@ -2214,8 +2120,6 @@ interface ScrapeFacebookPageStepOutput {
2214
2120
  interface ScrapeFacebookPostsStepInput {
2215
2121
  /** Full URL to the Facebook page to scrape posts from */
2216
2122
  pageUrl: string;
2217
- /** Variable name to store the scraped posts data */
2218
- destinationVar: string;
2219
2123
  }
2220
2124
  interface ScrapeFacebookPostsStepOutput {
2221
2125
  /** The result data returned from the Apify actor run */
@@ -2224,8 +2128,6 @@ interface ScrapeFacebookPostsStepOutput {
2224
2128
  interface ScrapeInstagramCommentsStepInput {
2225
2129
  /** Full URL to the Instagram post to scrape comments from */
2226
2130
  postUrl: string;
2227
- /** Variable name to store the scraped comments data */
2228
- destinationVar: string;
2229
2131
  /** Maximum number of comments to return */
2230
2132
  resultsLimit: string;
2231
2133
  }
@@ -2236,8 +2138,6 @@ interface ScrapeInstagramCommentsStepOutput {
2236
2138
  interface ScrapeInstagramMentionsStepInput {
2237
2139
  /** Instagram profile URL or username to scrape mentions for */
2238
2140
  profileUrl: string;
2239
- /** Variable name to store the scraped mentions data */
2240
- destinationVar: string;
2241
2141
  /** Maximum number of mentions to return */
2242
2142
  resultsLimit: string;
2243
2143
  }
@@ -2248,8 +2148,6 @@ interface ScrapeInstagramMentionsStepOutput {
2248
2148
  interface ScrapeInstagramPostsStepInput {
2249
2149
  /** Instagram profile URL or username to scrape posts from */
2250
2150
  profileUrl: string;
2251
- /** Variable name to store the scraped posts data */
2252
- destinationVar: string;
2253
2151
  /** Maximum number of posts to return */
2254
2152
  resultsLimit: string;
2255
2153
  /** Only return posts newer than this date (ISO 8601 format) */
@@ -2262,8 +2160,6 @@ interface ScrapeInstagramPostsStepOutput {
2262
2160
  interface ScrapeInstagramProfileStepInput {
2263
2161
  /** Instagram profile URL or username to scrape */
2264
2162
  profileUrl: string;
2265
- /** Variable name to store the scraped profile data */
2266
- destinationVar: string;
2267
2163
  }
2268
2164
  interface ScrapeInstagramProfileStepOutput {
2269
2165
  /** The result data returned from the Apify actor run */
@@ -2272,8 +2168,6 @@ interface ScrapeInstagramProfileStepOutput {
2272
2168
  interface ScrapeInstagramReelsStepInput {
2273
2169
  /** Instagram profile URL or username to scrape reels from */
2274
2170
  profileUrl: string;
2275
- /** Variable name to store the scraped reels data */
2276
- destinationVar: string;
2277
2171
  /** Maximum number of reels to return */
2278
2172
  resultsLimit: string;
2279
2173
  }
@@ -2284,8 +2178,6 @@ interface ScrapeInstagramReelsStepOutput {
2284
2178
  interface ScrapeLinkedInCompanyStepInput {
2285
2179
  /** LinkedIn company page URL (e.g. https://www.linkedin.com/company/mindstudioai) */
2286
2180
  url: string;
2287
- /** Variable to store the scraped company data */
2288
- destinationVar?: string;
2289
2181
  }
2290
2182
  interface ScrapeLinkedInCompanyStepOutput {
2291
2183
  /** Scraped LinkedIn company data */
@@ -2294,8 +2186,6 @@ interface ScrapeLinkedInCompanyStepOutput {
2294
2186
  interface ScrapeLinkedInProfileStepInput {
2295
2187
  /** LinkedIn profile URL (e.g. https://www.linkedin.com/in/username) */
2296
2188
  url: string;
2297
- /** Variable to store the scraped profile data */
2298
- destinationVar?: string;
2299
2189
  }
2300
2190
  interface ScrapeLinkedInProfileStepOutput {
2301
2191
  /** Scraped LinkedIn profile data */
@@ -2304,8 +2194,6 @@ interface ScrapeLinkedInProfileStepOutput {
2304
2194
  interface ScrapeMetaThreadsProfileStepInput {
2305
2195
  /** Meta Threads profile URL or username to scrape */
2306
2196
  profileUrl: string;
2307
- /** Variable name to store the scraped profile data */
2308
- destinationVar: string;
2309
2197
  }
2310
2198
  interface ScrapeMetaThreadsProfileStepOutput {
2311
2199
  /** The result data returned from the Apify actor run */
@@ -2314,8 +2202,6 @@ interface ScrapeMetaThreadsProfileStepOutput {
2314
2202
  interface ScrapeUrlStepInput {
2315
2203
  /** URL(s) to scrape. Accepts a single URL, JSON array, or comma/newline-separated list */
2316
2204
  url: string;
2317
- /** Variable name to save the scraped content into */
2318
- destinationVar?: string;
2319
2205
  /** Variable name to save the screenshot URL(s) into */
2320
2206
  screenshotVar?: string;
2321
2207
  /** Scraping service to use */
@@ -2391,8 +2277,6 @@ interface ScrapeUrlStepOutput {
2391
2277
  interface ScrapeXPostStepInput {
2392
2278
  /** Full URL to the X post (e.g. https://x.com/elonmusk/status/1655608985058267139) */
2393
2279
  url: string;
2394
- /** Variable to store the scraped text content */
2395
- destinationVar?: string;
2396
2280
  }
2397
2281
  interface ScrapeXPostStepOutput {
2398
2282
  /** Scraped post data including text, HTML, and optional structured JSON */
@@ -2421,8 +2305,6 @@ interface ScrapeXPostStepOutput {
2421
2305
  interface ScrapeXProfileStepInput {
2422
2306
  /** Full URL or username for the X profile (e.g. https://x.com/elonmusk) */
2423
2307
  url: string;
2424
- /** Variable to store the scraped profile data */
2425
- destinationVar?: string;
2426
2308
  }
2427
2309
  interface ScrapeXProfileStepOutput {
2428
2310
  /** Scraped profile data including text, HTML, and optional structured JSON */
@@ -2451,8 +2333,6 @@ interface ScrapeXProfileStepOutput {
2451
2333
  interface SearchGoogleStepInput {
2452
2334
  /** The search query to send to Google */
2453
2335
  query: string;
2454
- /** Variable to store the results in */
2455
- destinationVar?: string;
2456
2336
  /** Format for the variable value: "text" or "json" */
2457
2337
  exportType: "text" | "json";
2458
2338
  /** Google gl country code (defaults to US) */
@@ -2478,8 +2358,6 @@ interface SearchGoogleStepOutput {
2478
2358
  interface SearchGoogleImagesStepInput {
2479
2359
  /** The image search query */
2480
2360
  query: string;
2481
- /** Variable to store the results in */
2482
- destinationVar?: string;
2483
2361
  /** Format for the variable value: "text" or "json" */
2484
2362
  exportType: "text" | "json";
2485
2363
  /** Google gl country code (defaults to US) */
@@ -2523,8 +2401,6 @@ interface SearchGoogleImagesStepOutput {
2523
2401
  interface SearchGoogleNewsStepInput {
2524
2402
  /** The news search query */
2525
2403
  text: string;
2526
- /** Variable to store the results in */
2527
- destinationVar?: string;
2528
2404
  /** Format for the variable value: "text" or "json" */
2529
2405
  exportType: "text" | "json";
2530
2406
  /** Number of results to return (1-100, default: 30) */
@@ -2551,8 +2427,6 @@ interface SearchGoogleNewsStepOutput {
2551
2427
  interface SearchGoogleTrendsStepInput {
2552
2428
  /** The search term to look up on Google Trends */
2553
2429
  text: string;
2554
- /** Variable to store the results in */
2555
- destinationVar?: string;
2556
2430
  /** Language code (e.g. "en") */
2557
2431
  hl: string;
2558
2432
  /** Geographic region: empty string for worldwide, or a two-letter country code */
@@ -2573,8 +2447,6 @@ interface SearchGoogleTrendsStepOutput {
2573
2447
  interface SearchPerplexityStepInput {
2574
2448
  /** Search query to send to Perplexity */
2575
2449
  query: string;
2576
- /** Variable name to store the search results */
2577
- destinationVar?: string;
2578
2450
  /** Output format for the variable: plain text or structured JSON */
2579
2451
  exportType: "text" | "json";
2580
2452
  /** ISO country code to filter results by region (e.g. "us", "gb") */
@@ -2596,8 +2468,6 @@ interface SearchPerplexityStepOutput {
2596
2468
  interface SearchXPostsStepInput {
2597
2469
  /** Search query (max 512 chars, supports X API v2 search operators) */
2598
2470
  query: string;
2599
- /** Variable to store the JSON-stringified results */
2600
- destinationVar?: string;
2601
2471
  /** Search scope: "recent" for past 7 days or "all" for full archive */
2602
2472
  scope: "recent" | "all";
2603
2473
  /** Additional search options */
@@ -2635,8 +2505,6 @@ interface SearchXPostsStepOutput {
2635
2505
  interface SearchYoutubeStepInput {
2636
2506
  /** Search query for YouTube videos */
2637
2507
  query: string;
2638
- /** Variable name to save the search results */
2639
- destinationVar?: string;
2640
2508
  /** Maximum number of pages to fetch (1-5) */
2641
2509
  limitPages: string;
2642
2510
  /** YouTube search parameter (sp) filter value */
@@ -2653,8 +2521,6 @@ interface SearchYoutubeStepOutput {
2653
2521
  results: Record<string, unknown>;
2654
2522
  }
2655
2523
  interface SearchYoutubeTrendsStepInput {
2656
- /** Variable name to save the trends data */
2657
- destinationVar?: string;
2658
2524
  /** Trending category: "now" (trending now), "music", "gaming", or "films" */
2659
2525
  bp: "now" | "music" | "gaming" | "films";
2660
2526
  /** Language code (e.g. "en") */
@@ -2729,8 +2595,6 @@ interface SetRunTitleStepInput {
2729
2595
  }
2730
2596
  type SetRunTitleStepOutput = unknown;
2731
2597
  interface SetVariableStepInput {
2732
- /** Variable name to set (supports dynamic names via variable interpolation) */
2733
- destinationVariableName: string;
2734
2598
  /** Value to assign (string or array of strings, supports variable interpolation) */
2735
2599
  value: string | string[];
2736
2600
  /** UI input type hint controlling the editor widget */
@@ -2807,10 +2671,6 @@ type TelegramSetTypingStepOutput = unknown;
2807
2671
  interface TextToSpeechStepInput {
2808
2672
  /** The text to convert to speech */
2809
2673
  text: string;
2810
- /** foreground = display audio to user, background = save URL to variable */
2811
- mode: "foreground" | "background";
2812
- /** Variable name to save the audio URL into (used in background mode) */
2813
- destinationVar?: string;
2814
2674
  skipAssetCreation?: boolean;
2815
2675
  /** Optional model configuration override. Uses the workflow's default speech model if not specified */
2816
2676
  speechModelOverride?: {
@@ -2829,8 +2689,6 @@ interface TranscribeAudioStepInput {
2829
2689
  audioUrl: string;
2830
2690
  /** Optional context to improve transcription accuracy (e.g. language, speaker names, domain terms) */
2831
2691
  prompt: string;
2832
- /** Variable name to save the transcribed text into */
2833
- destinationVar?: string;
2834
2692
  /** Optional model configuration override. Uses the workflow's default transcription model if not specified */
2835
2693
  transcriptionModelOverride?: {
2836
2694
  /** Audio transcription model identifier */
@@ -2846,8 +2704,6 @@ interface TranscribeAudioStepOutput {
2846
2704
  interface TrimMediaStepInput {
2847
2705
  /** URL of the source audio or video file to trim */
2848
2706
  inputUrl: string;
2849
- /** Variable name to store the output URL */
2850
- destinationVar: string;
2851
2707
  /** Start position in seconds for the trim */
2852
2708
  start?: number | string;
2853
2709
  /** Duration of the trimmed segment in seconds. Omit to trim to the end of the clip. */
@@ -2876,8 +2732,6 @@ interface UpdateGoogleCalendarEventStepInput {
2876
2732
  endDateTime?: string;
2877
2733
  /** Updated attendee email addresses (one per line, replaces all existing attendees) */
2878
2734
  attendees?: string;
2879
- /** Variable to store the result (JSON with eventId and htmlLink) */
2880
- destinationVar?: string;
2881
2735
  /** Calendar ID (defaults to "primary" if omitted) */
2882
2736
  calendarId?: string;
2883
2737
  }
@@ -2922,8 +2776,6 @@ interface UpdateGoogleSheetStepOutput {
2922
2776
  interface UpscaleImageStepInput {
2923
2777
  /** URL of the image to upscale */
2924
2778
  imageUrl: string;
2925
- /** Variable name to store the output URL */
2926
- destinationVar?: string;
2927
2779
  /** Target output resolution */
2928
2780
  targetResolution: "2k" | "4k" | "8k";
2929
2781
  /** Upscaling engine quality tier */
@@ -2936,8 +2788,6 @@ interface UpscaleImageStepOutput {
2936
2788
  interface UpscaleVideoStepInput {
2937
2789
  /** URL of the source video to upscale */
2938
2790
  videoUrl: string;
2939
- /** Variable name to store the output URL */
2940
- destinationVar: string;
2941
2791
  /** Target output resolution for the upscaled video */
2942
2792
  targetResolution: "720p" | "1080p" | "2K" | "4K";
2943
2793
  /** Upscaling engine to use. Higher tiers produce better quality at higher cost. */
@@ -2952,12 +2802,8 @@ interface UpscaleVideoStepOutput {
2952
2802
  interface UserMessageStepInput {
2953
2803
  /** The message to send (prompt for AI, or text for system echo) */
2954
2804
  message: string;
2955
- /** Output behavior: background saves to variable, foreground streams to user. In direct execution, this is ignored and all requests are "background" */
2956
- mode?: "foreground" | "background";
2957
2805
  /** Message source: "user" sends to AI model, "system" echoes message content directly */
2958
2806
  source: "user" | "system";
2959
- /** Variable name to save the response to */
2960
- destinationVar?: string | null;
2961
2807
  /** Model configuration override. Optional; uses the workflow's default model if not specified */
2962
2808
  modelOverride?: {
2963
2809
  /** Model identifier (e.g. "gpt-4", "claude-3-opus") */
@@ -2994,14 +2840,8 @@ interface UserMessageStepInput {
2994
2840
  structuredOutputType?: "text" | "json" | "csv";
2995
2841
  /** Sample showing the desired output shape (for JSON/CSV formats). A TypeScript interface is also useful here for more complex types. */
2996
2842
  structuredOutputExample?: string;
2997
- /** Media display type for foreground system messages. This must be used with mode=foreground and the content of the message must only be a URL to the media asset. */
2998
- systemDisplayType?: "message" | "pdf" | "csv" | "image" | "html" | "video" | "xlsx" | "docx";
2999
2843
  /** Whether to include or exclude prior chat history in the AI context */
3000
2844
  chatHistoryMode?: "include" | "exclude";
3001
- /** Transition control mode. Leave unset. */
3002
- transitionControl?: "default" | "native";
3003
- /** Share button visibility control */
3004
- shareControl?: "default" | "hidden";
3005
2845
  }
3006
2846
  interface UserMessageStepOutput {
3007
2847
  /** The AI model's response or echoed system message content */
@@ -3010,8 +2850,6 @@ interface UserMessageStepOutput {
3010
2850
  interface VideoFaceSwapStepInput {
3011
2851
  /** URL of the source video containing faces to swap */
3012
2852
  videoUrl: string;
3013
- /** Variable name to store the output URL */
3014
- destinationVar: string;
3015
2853
  /** URL of the image containing the replacement face */
3016
2854
  faceImageUrl: string;
3017
2855
  /** Zero-based index of the face to replace in the video */
@@ -3028,8 +2866,6 @@ interface VideoFaceSwapStepOutput {
3028
2866
  interface VideoRemoveBackgroundStepInput {
3029
2867
  /** URL of the source video */
3030
2868
  videoUrl: string;
3031
- /** Variable name to store the output URL */
3032
- destinationVar: string;
3033
2869
  /** Whether to make the background transparent or replace it with an image */
3034
2870
  newBackground: "transparent" | "image";
3035
2871
  /** URL of a replacement background image. Required when newBackground is 'image'. */
@@ -3046,8 +2882,6 @@ interface VideoRemoveBackgroundStepOutput {
3046
2882
  interface VideoRemoveWatermarkStepInput {
3047
2883
  /** URL of the source video containing a watermark */
3048
2884
  videoUrl: string;
3049
- /** Variable name to store the output URL */
3050
- destinationVar: string;
3051
2885
  /** Watermark removal engine to use */
3052
2886
  engine: string;
3053
2887
  /** When true, the result will not appear in the user's asset history. Useful for intermediate compositing steps. */
@@ -3062,8 +2896,6 @@ interface WatermarkImageStepInput {
3062
2896
  imageUrl: string;
3063
2897
  /** URL of the watermark image to overlay */
3064
2898
  watermarkImageUrl: string;
3065
- /** Variable name to store the output URL */
3066
- destinationVar?: string;
3067
2899
  /** Corner position for the watermark placement */
3068
2900
  corner: "top-left" | "top-right" | "bottom-left" | "bottom-right";
3069
2901
  /** Padding from the corner in pixels */
@@ -3082,8 +2914,6 @@ interface WatermarkVideoStepInput {
3082
2914
  videoUrl: string;
3083
2915
  /** URL of the watermark image to overlay */
3084
2916
  imageUrl: string;
3085
- /** Variable name to store the output URL */
3086
- destinationVar: string;
3087
2917
  /** Corner position for the watermark placement */
3088
2918
  corner: "top-left" | "top-right" | "bottom-left" | "bottom-right";
3089
2919
  /** Padding from the corner in pixels */
@@ -3352,1371 +3182,1327 @@ interface StepOutputMap {
3352
3182
  watermarkVideo: WatermarkVideoStepOutput;
3353
3183
  }
3354
3184
 
3355
- declare module "../client.js" {
3356
- interface MindStudioAgent {
3357
- /**
3358
- * [ActiveCampaign] Add Note
3359
- *
3360
- * Add a note to an existing contact in ActiveCampaign.
3361
- *
3362
- * ## Usage Notes
3363
- * - Requires an ActiveCampaign OAuth connection (connectionId).
3364
- * - The contact must already exist — use the contact ID from a previous create or search step.
3365
- */
3366
- activeCampaignAddNote(step: ActiveCampaignAddNoteStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<ActiveCampaignAddNoteStepOutput>>;
3367
- /**
3368
- * [ActiveCampaign] Create Contact
3369
- *
3370
- * Create or sync a contact in ActiveCampaign.
3371
- *
3372
- * ## Usage Notes
3373
- * - Requires an ActiveCampaign OAuth connection (connectionId).
3374
- * - If a contact with the email already exists, it may be updated depending on ActiveCampaign settings.
3375
- * - Custom fields are passed as a key-value map where keys are field IDs.
3376
- */
3377
- activeCampaignCreateContact(step: ActiveCampaignCreateContactStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<ActiveCampaignCreateContactStepOutput>>;
3378
- /**
3379
- * Add Subtitles To Video
3380
- *
3381
- * Automatically add subtitles to a video
3382
- *
3383
- * ## Usage Notes
3384
- * - Can control style of text and animation
3385
- */
3386
- addSubtitlesToVideo(step: AddSubtitlesToVideoStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<AddSubtitlesToVideoStepOutput>>;
3387
- /**
3388
- * [Airtable] Create/Update record
3389
- *
3390
- * Create a new record or update an existing record in an Airtable table.
3391
- *
3392
- * ## Usage Notes
3393
- * - If recordId is provided, updates that record. Otherwise, creates a new one.
3394
- * - When updating with updateMode "onlySpecified", unspecified fields are left as-is. With "all", unspecified fields are cleared.
3395
- * - Array fields (e.g. multipleAttachments) accept arrays of values.
3396
- */
3397
- airtableCreateUpdateRecord(step: AirtableCreateUpdateRecordStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<AirtableCreateUpdateRecordStepOutput>>;
3398
- /**
3399
- * [Airtable] Delete record
3400
- *
3401
- * Delete a record from an Airtable table by its record ID.
3402
- *
3403
- * ## Usage Notes
3404
- * - Requires an active Airtable OAuth connection (connectionId).
3405
- * - Silently succeeds if the record does not exist.
3406
- */
3407
- airtableDeleteRecord(step: AirtableDeleteRecordStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<AirtableDeleteRecordStepOutput>>;
3408
- /**
3409
- * [Airtable] Get record
3410
- *
3411
- * Fetch a single record from an Airtable table by its record ID.
3412
- *
3413
- * ## Usage Notes
3414
- * - Requires an active Airtable OAuth connection (connectionId).
3415
- * - If the record is not found, returns a string message instead of a record object.
3416
- */
3417
- airtableGetRecord(step: AirtableGetRecordStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<AirtableGetRecordStepOutput>>;
3418
- /**
3419
- * [Airtable] Get table records
3420
- *
3421
- * Fetch multiple records from an Airtable table with optional pagination.
3422
- *
3423
- * ## Usage Notes
3424
- * - Requires an active Airtable OAuth connection (connectionId).
3425
- * - Default limit is 100 records. Maximum is 1000.
3426
- * - When outputFormat is 'csv', the variable receives CSV text. The direct execution output always returns parsed records.
3427
- */
3428
- airtableGetTableRecords(step: AirtableGetTableRecordsStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<AirtableGetTableRecordsStepOutput>>;
3429
- /**
3430
- * Analyze Image
3431
- *
3432
- * Analyze an image using a vision model based on a text prompt.
3433
- *
3434
- * ## Usage Notes
3435
- * - Uses the configured vision model to generate a text analysis of the image.
3436
- * - The prompt should describe what to look for or extract from the image.
3437
- */
3438
- analyzeImage(step: AnalyzeImageStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<AnalyzeImageStepOutput>>;
3439
- /**
3440
- * Analyze Video
3441
- *
3442
- * Analyze a video using a video analysis model based on a text prompt.
3443
- *
3444
- * ## Usage Notes
3445
- * - Uses the configured video analysis model to generate a text analysis of the video.
3446
- * - The prompt should describe what to look for or extract from the video.
3447
- */
3448
- analyzeVideo(step: AnalyzeVideoStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<AnalyzeVideoStepOutput>>;
3449
- /**
3450
- * Get Image from Video Frame
3451
- *
3452
- * Capture a thumbnail from a video at a specified timestamp
3453
- *
3454
- * ## Usage Notes
3455
- *
3456
- */
3457
- captureThumbnail(step: CaptureThumbnailStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<CaptureThumbnailStepOutput>>;
3458
- /**
3459
- * [Coda] Create/Update page
3460
- *
3461
- * Create a new page or update an existing page in a Coda document.
3462
- *
3463
- * ## Usage Notes
3464
- * - Requires a Coda OAuth connection (connectionId).
3465
- * - If pageData.pageId is provided, updates that page. Otherwise, creates a new one.
3466
- * - Page content is provided as markdown and converted to Coda's canvas format.
3467
- * - When updating, insertionMode controls how content is applied (default: 'append').
3468
- */
3469
- codaCreateUpdatePage(step: CodaCreateUpdatePageStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<CodaCreateUpdatePageStepOutput>>;
3470
- /**
3471
- * [Coda] Create/Update row
3472
- *
3473
- * Create a new row or update an existing row in a Coda table.
3474
- *
3475
- * ## Usage Notes
3476
- * - Requires a Coda OAuth connection (connectionId).
3477
- * - If rowId is provided, updates that row. Otherwise, creates a new one.
3478
- * - Row data keys are column IDs. Empty values are excluded.
3479
- */
3480
- codaCreateUpdateRow(step: CodaCreateUpdateRowStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<CodaCreateUpdateRowStepOutput>>;
3481
- /**
3482
- * [Coda] Find row
3483
- *
3484
- * Search for a row in a Coda table by matching column values.
3485
- *
3486
- * ## Usage Notes
3487
- * - Requires a Coda OAuth connection (connectionId).
3488
- * - Returns the first row matching all specified column values, or null if no match.
3489
- * - Search criteria in rowData are ANDed together.
3490
- */
3491
- codaFindRow(step: CodaFindRowStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<CodaFindRowStepOutput>>;
3492
- /**
3493
- * [Coda] Get page
3494
- *
3495
- * Export and read the contents of a page from a Coda document.
3496
- *
3497
- * ## Usage Notes
3498
- * - Requires a Coda OAuth connection (connectionId).
3499
- * - Page export is asynchronous on Coda's side — there may be a brief delay while it processes.
3500
- * - If a page was just created in a prior step, there is an automatic 20-second retry if the first export attempt fails.
3501
- */
3502
- codaGetPage(step: CodaGetPageStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<CodaGetPageStepOutput>>;
3503
- /**
3504
- * [Coda] Get table rows
3505
- *
3506
- * Fetch rows from a Coda table with optional pagination.
3507
- *
3508
- * ## Usage Notes
3509
- * - Requires a Coda OAuth connection (connectionId).
3510
- * - Default limit is 10000 rows. Rows are fetched in pages of 500.
3511
- * - When outputFormat is 'csv', the variable receives CSV text. The direct execution output always returns parsed rows.
3512
- */
3513
- codaGetTableRows(step: CodaGetTableRowsStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<CodaGetTableRowsStepOutput>>;
3514
- /**
3515
- * Convert PDF to Images
3516
- *
3517
- * Convert each page of a PDF document into a PNG image.
3518
- *
3519
- * ## Usage Notes
3520
- * - Each page is converted to a separate PNG and re-hosted on the CDN.
3521
- * - Returns an array of image URLs, one per page.
3522
- */
3523
- convertPdfToImages(step: ConvertPdfToImagesStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<ConvertPdfToImagesStepOutput>>;
3524
- /**
3525
- * [Google Calendar] Create Event
3526
- *
3527
- * Create a new event on a Google Calendar.
3528
- *
3529
- * ## Usage Notes
3530
- * - Requires a Google OAuth connection with Calendar events scope.
3531
- * - Date/time values must be ISO 8601 format (e.g. "2025-07-02T10:00:00-07:00").
3532
- * - Attendees are specified as one email address per line in a single string.
3533
- * - Set addMeetLink to true to automatically attach a Google Meet video call.
3534
- */
3535
- createGoogleCalendarEvent(step: CreateGoogleCalendarEventStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<CreateGoogleCalendarEventStepOutput>>;
3536
- /**
3537
- * [Google] Create Google Doc
3538
- *
3539
- * Create a new Google Document and optionally populate it with content.
3540
- *
3541
- * ## Usage Notes
3542
- * - textType determines how the text field is interpreted: "plain" for plain text, "html" for HTML markup, "markdown" for Markdown.
3543
- */
3544
- createGoogleDoc(step: CreateGoogleDocStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<CreateGoogleDocStepOutput>>;
3545
- /**
3546
- * [Google] Create Google Sheet
3547
- *
3548
- * Create a new Google Spreadsheet and populate it with CSV data.
3549
- */
3550
- createGoogleSheet(step: CreateGoogleSheetStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<CreateGoogleSheetStepOutput>>;
3551
- /**
3552
- * [Google Calendar] Get Event
3553
- *
3554
- * Retrieve a specific event from a Google Calendar by event ID.
3555
- *
3556
- * ## Usage Notes
3557
- * - Requires a Google OAuth connection with Calendar events scope.
3558
- * - The variable receives JSON or XML-like text depending on exportType. The direct execution output always returns the structured event.
3559
- */
3560
- deleteGoogleCalendarEvent(step: DeleteGoogleCalendarEventStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<DeleteGoogleCalendarEventStepOutput>>;
3561
- /**
3562
- * Detect PII
3563
- *
3564
- * Scan text for personally identifiable information using Microsoft Presidio.
3565
- *
3566
- * ## Usage Notes
3567
- * - In workflow mode, transitions to detectedStepId if PII is found, notDetectedStepId otherwise.
3568
- * - In direct execution, returns the detection results without transitioning.
3569
- * - If entities is empty, returns immediately with no detections.
3570
- */
3571
- detectPII(step: DetectPIIStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<DetectPIIStepOutput>>;
3572
- /**
3573
- * Download Video
3574
- *
3575
- * Download a video file
3576
- *
3577
- * ## Usage Notes
3578
- * - Works with YouTube, TikTok, etc., by using ytdlp behind the scenes
3579
- * - Can save as mp4 or mp3
3580
- */
3581
- downloadVideo(step: DownloadVideoStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<DownloadVideoStepOutput>>;
3582
- /**
3583
- * Enhance Image Prompt
3584
- *
3585
- * Auto-enhance an image generation prompt using a language model. Optionally generates a negative prompt.
3586
- *
3587
- * ## Usage Notes
3588
- * - Rewrites the user's prompt with added detail about style, lighting, colors, and composition.
3589
- * - When includeNegativePrompt is true, a second model call generates a negative prompt.
3590
- */
3591
- enhanceImageGenerationPrompt(step: EnhanceImageGenerationPromptStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<EnhanceImageGenerationPromptStepOutput>>;
3592
- /**
3593
- * Enhance Video Prompt
3594
- *
3595
- * Auto-enhance a video generation prompt using a language model. Optionally generates a negative prompt.
3596
- *
3597
- * ## Usage Notes
3598
- * - Rewrites the user's prompt with added detail about style, camera movement, lighting, and composition.
3599
- * - When includeNegativePrompt is true, a second model call generates a negative prompt.
3600
- */
3601
- enhanceVideoGenerationPrompt(step: EnhanceVideoGenerationPromptStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<EnhanceVideoGenerationPromptStepOutput>>;
3602
- /**
3603
- * [Apollo] Enrich Person
3604
- *
3605
- * Look up professional information about a person using Apollo.io. Search by ID, name, LinkedIn URL, email, or domain.
3606
- *
3607
- * ## Usage Notes
3608
- * - At least one search parameter must be provided.
3609
- * - Returns enriched data from Apollo including contact details, employment info, and social profiles.
3610
- */
3611
- enrichPerson(step: EnrichPersonStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<EnrichPersonStepOutput>>;
3612
- /**
3613
- * Extract Audio from Video
3614
- *
3615
- * Extract audio MP3 from a video file
3616
- *
3617
- * ## Usage Notes
3618
- *
3619
- */
3620
- extractAudioFromVideo(step: ExtractAudioFromVideoStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<ExtractAudioFromVideoStepOutput>>;
3621
- /**
3622
- * Extract Text from URL
3623
- *
3624
- * Download a file from a URL and extract its text content. Supports PDFs, plain text files, and other document formats.
3625
- *
3626
- * ## Usage Notes
3627
- * - Best suited for PDFs and raw text/document files. For web pages, use the scrapeUrl step instead.
3628
- * - Accepts a single URL, a comma-separated list of URLs, or a JSON array of URLs.
3629
- * - Files are rehosted on the MindStudio CDN before extraction.
3630
- * - Maximum file size is 50MB per URL.
3631
- */
3632
- extractText(step: ExtractTextStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<ExtractTextStepOutput>>;
3633
- /**
3634
- * [Google] Fetch Google Doc
3635
- *
3636
- * Fetch the contents of an existing Google Document.
3637
- *
3638
- * ## Usage Notes
3639
- * - exportType controls the output format: "html" for HTML markup, "markdown" for Markdown, "json" for structured JSON, "plain" for plain text.
3640
- */
3641
- fetchGoogleDoc(step: FetchGoogleDocStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<FetchGoogleDocStepOutput>>;
3642
- /**
3643
- * [Google] Fetch Google Sheet
3644
- *
3645
- * Fetch contents of a Google Spreadsheet range.
3646
- *
3647
- * ## Usage Notes
3648
- * - range uses A1 notation (e.g. "Sheet1!A1:C10"). Omit to fetch the entire first sheet.
3649
- * - exportType controls the output format: "csv" for comma-separated values, "json" for structured JSON.
3650
- */
3651
- fetchGoogleSheet(step: FetchGoogleSheetStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<FetchGoogleSheetStepOutput>>;
3652
- /**
3653
- * Fetch Slack Channel History
3654
- *
3655
- * Fetch recent message history from a Slack channel.
3656
- *
3657
- * ## Usage Notes
3658
- * - The user is responsible for connecting their Slack workspace and selecting the channel
3659
- */
3660
- fetchSlackChannelHistory(step: FetchSlackChannelHistoryStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<FetchSlackChannelHistoryStepOutput>>;
3661
- /**
3662
- * [YouTube] Fetch Captions
3663
- *
3664
- * Retrieve the captions/transcript for a YouTube video.
3665
- *
3666
- * ## Usage Notes
3667
- * - Supports multiple languages via the language parameter.
3668
- * - "text" export produces timestamped plain text; "json" export produces structured transcript data.
3669
- */
3670
- fetchYoutubeCaptions(step: FetchYoutubeCaptionsStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<FetchYoutubeCaptionsStepOutput>>;
3671
- /**
3672
- * [YouTube] Fetch Channel
3673
- *
3674
- * Retrieve metadata and recent videos for a YouTube channel.
3675
- *
3676
- * ## Usage Notes
3677
- * - Accepts a YouTube channel URL (e.g. https://www.youtube.com/@ChannelName or /channel/ID).
3678
- * - Returns channel info and video listings as a JSON object.
3679
- */
3680
- fetchYoutubeChannel(step: FetchYoutubeChannelStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<FetchYoutubeChannelStepOutput>>;
3681
- /**
3682
- * [YouTube] Fetch Comments
3683
- *
3684
- * Retrieve comments for a YouTube video.
3685
- *
3686
- * ## Usage Notes
3687
- * - Paginates through comments (up to 5 pages).
3688
- * - "text" export produces markdown-formatted text; "json" export produces structured comment data.
3689
- */
3690
- fetchYoutubeComments(step: FetchYoutubeCommentsStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<FetchYoutubeCommentsStepOutput>>;
3691
- /**
3692
- * [YouTube] Fetch Video
3693
- *
3694
- * Retrieve metadata for a YouTube video (title, description, stats, channel info).
3695
- *
3696
- * ## Usage Notes
3697
- * - Returns video metadata, channel info, and engagement stats.
3698
- * - Video format data is excluded from the response.
3699
- */
3700
- fetchYoutubeVideo(step: FetchYoutubeVideoStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<FetchYoutubeVideoStepOutput>>;
3701
- /**
3702
- * Generate Chart
3703
- *
3704
- * Create a chart image using QuickChart (Chart.js) and return the URL.
3705
- *
3706
- * ## Usage Notes
3707
- * - The data field must be a Chart.js-compatible JSON object serialized as a string.
3708
- * - Supported chart types: bar, line, pie.
3709
- */
3710
- generateChart(step: GenerateChartStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<GenerateChartStepOutput>>;
3711
- /**
3712
- * Generate Image
3713
- *
3714
- * Generate an image from a text prompt using an AI model.
3715
- *
3716
- * ## Usage Notes
3717
- * - Prompts should be descriptive but concise (roughly 3–6 sentences).
3718
- * - Images are automatically hosted on a CDN.
3719
- * - In foreground mode, the image is displayed to the user. In background mode, the URL is saved to a variable.
3720
- * - When generateVariants is true with numVariants > 1, multiple images are generated in parallel.
3721
- * - In direct execution, foreground mode behaves as background, and userSelect variant behavior behaves as saveAll.
3722
- */
3723
- generateImage(step: GenerateImageStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<GenerateImageStepOutput>>;
3724
- /**
3725
- * Generate Lipsync
3726
- *
3727
- * Generate a lip sync video from provided audio and image.
3728
- *
3729
- * ## Usage Notes
3730
- * - In foreground mode, the video is displayed to the user. In background mode, the URL is saved to a variable.
3731
- */
3732
- generateLipsync(step: GenerateLipsyncStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<GenerateLipsyncStepOutput>>;
3733
- /**
3734
- * Generate Music
3735
- *
3736
- * Generate an audio file from provided instructions (text) using a music model.
3737
- *
3738
- * ## Usage Notes
3739
- * - The text field contains the instructions (prompt) for the music generation.
3740
- * - In foreground mode, the audio is displayed to the user. In background mode, the URL is saved to a variable.
3741
- */
3742
- generateMusic(step: GenerateMusicStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<GenerateMusicStepOutput>>;
3743
- /**
3744
- * Generate HTML Asset
3745
- *
3746
- * Generate an HTML asset and export it as a webpage, PDF, or image
3747
- *
3748
- * ## Usage Notes
3749
- * - Agents can generate HTML documents and export as webpage, PDFs, images, or videos. They do this by using the "generatePdf" block, which defines an HTML page with variables, and then the generation process renders the page to create the output and save its URL at the specified variable.
3750
- * - The template for the HTML page is generated by a separate process, and it can only use variables that have already been defined in the workflow at the time of its execution. It has full access to handlebars to render the HTML template, including a handlebars helper to render a markdown variable string as HTML (which can be useful for creating templates that render long strings). The template can also create its own simple JavaScript to do things like format dates and strings.
3751
- * - If PDF or composited image generation are part of the workflow, assistant adds the block and leaves the "source" empty. In a separate step, assistant generates a detailed request for the developer who will write the HTML.
3752
- * - Can also auto-generate HTML from a prompt (like a generate text block to generate HTML). In these cases, create a prompt with variables in the dynamicPrompt variable describing, in detail, the document to generate
3753
- * - Can either display output directly to user (foreground mode) or save the URL of the asset to a variable (background mode)
3754
- */
3755
- generatePdf(step: GeneratePdfStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<GeneratePdfStepOutput>>;
3756
- /**
3757
- * Generate Static Video from Image
3758
- *
3759
- * Convert a static image to an MP4
3760
- *
3761
- * ## Usage Notes
3762
- * - Can use to create slides/intertitles/slates for video composition
3763
- */
3764
- generateStaticVideoFromImage(step: GenerateStaticVideoFromImageStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<GenerateStaticVideoFromImageStepOutput>>;
3765
- /**
3766
- * Generate Video
3767
- *
3768
- * Generate a video from a text prompt using an AI model.
3769
- *
3770
- * ## Usage Notes
3771
- * - Prompts should be descriptive but concise (roughly 3–6 sentences).
3772
- * - Videos are automatically hosted on a CDN.
3773
- * - In foreground mode, the video is displayed to the user. In background mode, the URL is saved to a variable.
3774
- * - When generateVariants is true with numVariants > 1, multiple videos are generated in parallel.
3775
- * - In direct execution, foreground mode behaves as background, and userSelect variant behavior behaves as saveAll.
3776
- */
3777
- generateVideo(step: GenerateVideoStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<GenerateVideoStepOutput>>;
3778
- /**
3779
- * [Google Calendar] Get Event
3780
- *
3781
- * Retrieve a specific event from a Google Calendar by event ID.
3782
- *
3783
- * ## Usage Notes
3784
- * - Requires a Google OAuth connection with Calendar events scope.
3785
- * - The variable receives JSON or XML-like text depending on exportType. The direct execution output always returns the structured event.
3786
- */
3787
- getGoogleCalendarEvent(step: GetGoogleCalendarEventStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<GetGoogleCalendarEventStepOutput>>;
3788
- /**
3789
- * Get Media Metadata
3790
- *
3791
- * Get info about a media file
3792
- *
3793
- * ## Usage Notes
3794
- *
3795
- */
3796
- getMediaMetadata(step: GetMediaMetadataStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<GetMediaMetadataStepOutput>>;
3797
- /**
3798
- * HTTP Request
3799
- *
3800
- * Make an HTTP request to an external endpoint and return the response.
3801
- *
3802
- * ## Usage Notes
3803
- * - Supports GET, POST, PATCH, DELETE, and PUT methods.
3804
- * - Body can be raw JSON/text, URL-encoded form data, or multipart form data.
3805
- */
3806
- httpRequest(step: HttpRequestStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<HttpRequestStepOutput>>;
3807
- /**
3808
- * [HubSpot] Create/Update Company
3809
- *
3810
- * Create a new company or update an existing one in HubSpot. Matches by domain.
3811
- *
3812
- * ## Usage Notes
3813
- * - Requires a HubSpot OAuth connection (connectionId).
3814
- * - If a company with the given domain already exists, it is updated. Otherwise, a new one is created.
3815
- * - Property values are type-checked against enabledProperties before being sent to HubSpot.
3816
- */
3817
- hubspotCreateCompany(step: HubspotCreateCompanyStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<HubspotCreateCompanyStepOutput>>;
3818
- /**
3819
- * [HubSpot] Create/Update Contact
3820
- *
3821
- * Create a new contact or update an existing one in HubSpot. Matches by email address.
3822
- *
3823
- * ## Usage Notes
3824
- * - Requires a HubSpot OAuth connection (connectionId).
3825
- * - If a contact with the given email already exists, it is updated. Otherwise, a new one is created.
3826
- * - If companyDomain is provided, the contact is associated with that company (creating the company if needed).
3827
- * - Property values are type-checked against enabledProperties before being sent to HubSpot.
3828
- */
3829
- hubspotCreateContact(step: HubspotCreateContactStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<HubspotCreateContactStepOutput>>;
3830
- /**
3831
- * [HubSpot] Get Company
3832
- *
3833
- * Look up a HubSpot company by domain name or company ID.
3834
- *
3835
- * ## Usage Notes
3836
- * - Requires a HubSpot OAuth connection (connectionId).
3837
- * - Returns null if the company is not found.
3838
- * - When searching by domain, performs a search query then fetches the full company record.
3839
- * - Use additionalProperties to request specific HubSpot properties beyond the defaults.
3840
- */
3841
- hubspotGetCompany(step: HubspotGetCompanyStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<HubspotGetCompanyStepOutput>>;
3842
- /**
3843
- * [HubSpot] Get Contact
3844
- *
3845
- * Look up a HubSpot contact by email address or contact ID.
3846
- *
3847
- * ## Usage Notes
3848
- * - Requires a HubSpot OAuth connection (connectionId).
3849
- * - Returns null if the contact is not found.
3850
- * - Use additionalProperties to request specific HubSpot properties beyond the defaults.
3851
- */
3852
- hubspotGetContact(step: HubspotGetContactStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<HubspotGetContactStepOutput>>;
3853
- /**
3854
- * [Hunter.io] Enrich Company
3855
- *
3856
- * Look up company information by domain using Hunter.io.
3857
- *
3858
- * ## Usage Notes
3859
- * - Returns company name, description, location, industry, size, technologies, and more.
3860
- * - If the domain input is a full URL, the hostname is automatically extracted.
3861
- * - Returns null if the company is not found.
3862
- */
3863
- hunterApiCompanyEnrichment(step: HunterApiCompanyEnrichmentStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<HunterApiCompanyEnrichmentStepOutput>>;
3864
- /**
3865
- * [Hunter.io] Domain Search
3866
- *
3867
- * Search for email addresses associated with a domain using Hunter.io.
3868
- *
3869
- * ## Usage Notes
3870
- * - If the domain input is a full URL, the hostname is automatically extracted.
3871
- * - Returns a list of email addresses found for the domain along with organization info.
3872
- */
3873
- hunterApiDomainSearch(step: HunterApiDomainSearchStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<HunterApiDomainSearchStepOutput>>;
3874
- /**
3875
- * [Hunter.io] Find Email
3876
- *
3877
- * Find an email address for a specific person at a domain using Hunter.io.
3878
- *
3879
- * ## Usage Notes
3880
- * - Requires a first name, last name, and domain.
3881
- * - If the domain input is a full URL, the hostname is automatically extracted.
3882
- * - Returns the most likely email address with a confidence score.
3883
- */
3884
- hunterApiEmailFinder(step: HunterApiEmailFinderStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<HunterApiEmailFinderStepOutput>>;
3885
- /**
3886
- * [Hunter.io] Verify Email
3887
- *
3888
- * Verify whether an email address is valid and deliverable using Hunter.io.
3889
- *
3890
- * ## Usage Notes
3891
- * - Checks email format, MX records, SMTP server, and mailbox deliverability.
3892
- * - Returns a status ("valid", "invalid", "accept_all", "webmail", "disposable", "unknown") and a score.
3893
- */
3894
- hunterApiEmailVerification(step: HunterApiEmailVerificationStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<HunterApiEmailVerificationStepOutput>>;
3895
- /**
3896
- * [Hunter.io] Enrich Person
3897
- *
3898
- * Look up professional information about a person by their email address using Hunter.io.
3899
- *
3900
- * ## Usage Notes
3901
- * - Returns name, job title, social profiles, and company information.
3902
- * - If the person is not found, returns an object with an error message instead of throwing.
3903
- */
3904
- hunterApiPersonEnrichment(step: HunterApiPersonEnrichmentStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<HunterApiPersonEnrichmentStepOutput>>;
3905
- /**
3906
- * Image Face Swap
3907
- *
3908
- * Replace a face in an image with a face from another image using AI.
3909
- *
3910
- * ## Usage Notes
3911
- * - Requires both a target image and a face source image.
3912
- * - Output is re-hosted on the CDN as a PNG.
3913
- */
3914
- imageFaceSwap(step: ImageFaceSwapStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<ImageFaceSwapStepOutput>>;
3915
- /**
3916
- * Remove Image Watermark
3917
- *
3918
- * Remove watermarks from an image using AI.
3919
- *
3920
- * ## Usage Notes
3921
- * - Output is re-hosted on the CDN as a PNG.
3922
- */
3923
- imageRemoveWatermark(step: ImageRemoveWatermarkStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<ImageRemoveWatermarkStepOutput>>;
3924
- /**
3925
- * Insert Video Clips
3926
- *
3927
- * Insert b-roll clips into a base video at a timecode, optionally with an xfade transition.
3928
- *
3929
- * ## Usage Notes
3930
- *
3931
- */
3932
- insertVideoClips(step: InsertVideoClipsStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<InsertVideoClipsStepOutput>>;
3933
- /**
3934
- * [Google Calendar] List Events
3935
- *
3936
- * List upcoming events from a Google Calendar, ordered by start time.
3937
- *
3938
- * ## Usage Notes
3939
- * - Requires a Google OAuth connection with Calendar events scope.
3940
- * - Only returns future events (timeMin = now).
3941
- * - The variable receives JSON or XML-like text depending on exportType. The direct execution output always returns structured events.
3942
- */
3943
- listGoogleCalendarEvents(step: ListGoogleCalendarEventsStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<ListGoogleCalendarEventsStepOutput>>;
3944
- /**
3945
- * Evaluate Logic
3946
- *
3947
- * Use an AI model to evaluate which condition from a list is most true, given a context prompt.
3948
- *
3949
- * ## Usage Notes
3950
- * - This is "fuzzy" logic evaluated by an AI model, not computational logic. The model picks the most accurate statement.
3951
- * - All possible cases must be specified — there is no default/fallback case.
3952
- * - Requires at least two cases.
3953
- * - In workflow mode, transitions to the destinationStepId of the winning case. In direct execution, returns the winning case ID and condition.
3954
- */
3955
- logic(step: LogicStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<LogicStepOutput>>;
3956
- /**
3957
- * Make.com Run Scenario
3958
- *
3959
- * Trigger a Make.com (formerly Integromat) scenario via webhook and return the response.
3960
- *
3961
- * ## Usage Notes
3962
- * - The webhook URL must be configured in your Make.com scenario.
3963
- * - Input key-value pairs are sent as JSON in the POST body.
3964
- * - Response format depends on the Make.com scenario configuration.
3965
- */
3966
- makeDotComRunScenario(step: MakeDotComRunScenarioStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<MakeDotComRunScenarioStepOutput>>;
3967
- /**
3968
- * Merge Audio
3969
- *
3970
- * Merge one or more clips into a single audio file.
3971
- *
3972
- * ## Usage Notes
3973
- *
3974
- */
3975
- mergeAudio(step: MergeAudioStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<MergeAudioStepOutput>>;
3976
- /**
3977
- * Merge Videos
3978
- *
3979
- * Merge one or more clips into a single video.
3980
- *
3981
- * ## Usage Notes
3982
- *
3983
- */
3984
- mergeVideos(step: MergeVideosStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<MergeVideosStepOutput>>;
3985
- /**
3986
- * Mix Audio into Video
3987
- *
3988
- * Mix an audio track into a video
3989
- *
3990
- * ## Usage Notes
3991
- *
3992
- */
3993
- mixAudioIntoVideo(step: MixAudioIntoVideoStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<MixAudioIntoVideoStepOutput>>;
3994
- /**
3995
- * Mute Video
3996
- *
3997
- * Mute a video file
3998
- *
3999
- * ## Usage Notes
4000
- *
4001
- */
4002
- muteVideo(step: MuteVideoStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<MuteVideoStepOutput>>;
4003
- /**
4004
- * N8N Run Node
4005
- *
4006
- * Trigger an n8n workflow node via webhook and return the response.
4007
- *
4008
- * ## Usage Notes
4009
- * - The webhook URL must be configured in your n8n workflow.
4010
- * - Supports GET and POST methods with optional Basic authentication.
4011
- * - For GET requests, input values are sent as query parameters. For POST, they are sent as JSON body.
4012
- */
4013
- n8nRunNode(step: N8nRunNodeStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<N8nRunNodeStepOutput>>;
4014
- /**
4015
- * [Notion] Create Page
4016
- *
4017
- * Create a new page in Notion as a child of an existing page.
4018
- *
4019
- * ## Usage Notes
4020
- * - Requires a Notion OAuth connection (connectionId).
4021
- * - Content is provided as markdown and converted to Notion blocks (headings, paragraphs, lists, code, quotes).
4022
- * - The page is created as a child of the specified parent page (pageId).
4023
- */
4024
- notionCreatePage(step: NotionCreatePageStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<NotionCreatePageStepOutput>>;
4025
- /**
4026
- * [Notion] Update Page
4027
- *
4028
- * Update the content of an existing Notion page.
4029
- *
4030
- * ## Usage Notes
4031
- * - Requires a Notion OAuth connection (connectionId).
4032
- * - Content is provided as markdown and converted to Notion blocks.
4033
- * - "append" mode adds content to the end of the page. "overwrite" mode deletes all existing blocks first.
4034
- */
4035
- notionUpdatePage(step: NotionUpdatePageStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<NotionUpdatePageStepOutput>>;
4036
- /**
4037
- * [Apollo] People Search
4038
- *
4039
- * Search for people matching specific criteria using Apollo.io. Supports natural language queries and advanced filters.
4040
- *
4041
- * ## Usage Notes
4042
- * - Can use a natural language "smartQuery" which is converted to Apollo search parameters by an AI model.
4043
- * - Advanced params can override or supplement the smart query results.
4044
- * - Optionally enriches returned people and/or their organizations for additional detail.
4045
- * - Results are paginated. Use limit and page to control the result window.
4046
- */
4047
- peopleSearch(step: PeopleSearchStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<PeopleSearchStepOutput>>;
4048
- /**
4049
- * [LinkedIn] Create post
4050
- *
4051
- * Create a post on LinkedIn from the connected account.
4052
- *
4053
- * ## Usage Notes
4054
- * - Requires a LinkedIn OAuth connection (connectionId).
4055
- * - Supports text posts, image posts, and video posts.
4056
- * - Visibility controls who can see the post.
4057
- */
4058
- postToLinkedIn(step: PostToLinkedInStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<PostToLinkedInStepOutput>>;
4059
- /**
4060
- * Post to Slack Channel
4061
- *
4062
- * Send a message to a Slack channel via a connected bot.
4063
- *
4064
- * ## Usage Notes
4065
- * - The user is responsible for connecting their Slack workspace and selecting the channel
4066
- * - Supports both simple text messages and slack blocks messages
4067
- * - Text messages can use limited markdown (slack-only fomatting—e.g., headers are just rendered as bold)
4068
- */
4069
- postToSlackChannel(step: PostToSlackChannelStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<PostToSlackChannelStepOutput>>;
4070
- /**
4071
- * [X] Create post
4072
- *
4073
- * Create a post on X (Twitter) from the connected account.
4074
- *
4075
- * ## Usage Notes
4076
- * - Requires an X OAuth connection (connectionId).
4077
- * - Posts are plain text. Maximum 280 characters.
4078
- */
4079
- postToX(step: PostToXStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<PostToXStepOutput>>;
4080
- /**
4081
- * Post to Zapier
4082
- *
4083
- * Send data to a Zapier Zap via webhook and return the response.
4084
- *
4085
- * ## Usage Notes
4086
- * - The webhook URL must be configured in the Zapier Zap settings
4087
- * - Input keys and values are sent as the JSON body of the POST request
4088
- * - The webhook response (JSON or plain text) is returned as the output
4089
- */
4090
- postToZapier(step: PostToZapierStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<PostToZapierStepOutput>>;
4091
- /**
4092
- * Query Data Source
4093
- *
4094
- * Search a vector data source (RAG) and return relevant document chunks.
4095
- *
4096
- * ## Usage Notes
4097
- * - Queries a vectorized data source and returns the most relevant chunks.
4098
- * - Useful for retrieval-augmented generation (RAG) workflows.
4099
- */
4100
- queryDataSource(step: QueryDataSourceStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<QueryDataSourceStepOutput>>;
4101
- /**
4102
- * Query External SQL Database
4103
- *
4104
- * Execute a SQL query against an external database connected to the workspace.
4105
- *
4106
- * ## Usage Notes
4107
- * - Requires a database connection configured in the workspace.
4108
- * - Supports PostgreSQL (including Supabase), MySQL, and MSSQL.
4109
- * - Results can be returned as JSON or CSV.
4110
- */
4111
- queryExternalDatabase(step: QueryExternalDatabaseStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<QueryExternalDatabaseStepOutput>>;
4112
- /**
4113
- * Redact PII
4114
- *
4115
- * Replace personally identifiable information in text with placeholders using Microsoft Presidio.
4116
- *
4117
- * ## Usage Notes
4118
- * - PII is replaced with entity type placeholders (e.g. "Call me at <PHONE_NUMBER>").
4119
- * - If entities is empty, returns empty text immediately without processing.
4120
- */
4121
- redactPII(step: RedactPIIStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<RedactPIIStepOutput>>;
4122
- /**
4123
- * Remove Background From Image
4124
- *
4125
- * Remove the background from an image using AI, producing a transparent PNG.
4126
- *
4127
- * ## Usage Notes
4128
- * - Uses the Bria background removal model via fal.ai.
4129
- * - Output is re-hosted on the CDN as a PNG with transparency.
4130
- */
4131
- removeBackgroundFromImage(step: RemoveBackgroundFromImageStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<RemoveBackgroundFromImageStepOutput>>;
4132
- /**
4133
- * Resize Video
4134
- *
4135
- * Resize a video file
4136
- *
4137
- * ## Usage Notes
4138
- *
4139
- */
4140
- resizeVideo(step: ResizeVideoStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<ResizeVideoStepOutput>>;
4141
- /**
4142
- * Run Packaged Workflow
4143
- *
4144
- * Run a packaged workflow ("custom block")
4145
- *
4146
- * ## Usage Notes
4147
- * - From the user's perspective, packaged workflows are just ordinary blocks. Behind the scenes, they operate like packages/libraries in a programming language, letting the user execute custom functionality.
4148
- * - Some of these packaged workflows are available as part of MindStudio's "Standard Library" and available to every user.
4149
- * - Available packaged workflows are documented here as individual blocks, but the runPackagedWorkflow block is how they need to be wrapped in order to be executed correctly.
4150
- */
4151
- runPackagedWorkflow(step: RunPackagedWorkflowStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<RunPackagedWorkflowStepOutput>>;
4152
- /**
4153
- * Run Workflow
4154
- *
4155
- * Spawn one or more child workflows (advanced)
4156
- *
4157
- * ## Usage Notes
4158
- * - Spawned workflows are executed in their own contexts and scopes, they do not have access to any variables etc from the parent workflow
4159
- * - This is an ADVANCED feature and should not be used unless you really know what you are doing
4160
- * - Child workflows must be set up to receive launch variables and return variables via an end block. The input and output variables properties map variables between scopes
4161
- */
4162
- runWorkflow(step: RunWorkflowStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<RunWorkflowStepOutput>>;
4163
- /**
4164
- * [Facebook] Scrape Page
4165
- *
4166
- * Scrape a Facebook page
4167
- */
4168
- scrapeFacebookPage(step: ScrapeFacebookPageStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<ScrapeFacebookPageStepOutput>>;
4169
- /**
4170
- * [Facebook] Scrape Posts for Page
4171
- *
4172
- * Get all the posts for a Facebook page
4173
- */
4174
- scrapeFacebookPosts(step: ScrapeFacebookPostsStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<ScrapeFacebookPostsStepOutput>>;
4175
- /**
4176
- * [Instagram] Scrape Comments
4177
- *
4178
- * Get all the comments for an Instagram post
4179
- */
4180
- scrapeInstagramComments(step: ScrapeInstagramCommentsStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<ScrapeInstagramCommentsStepOutput>>;
4181
- /**
4182
- * [Instagram] Scrape Mentions
4183
- *
4184
- * Scrape an Instagram profile's mentions
4185
- */
4186
- scrapeInstagramMentions(step: ScrapeInstagramMentionsStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<ScrapeInstagramMentionsStepOutput>>;
4187
- /**
4188
- * [Instagram] Scrape Posts
4189
- *
4190
- * Get all the posts for an Instagram profile
4191
- */
4192
- scrapeInstagramPosts(step: ScrapeInstagramPostsStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<ScrapeInstagramPostsStepOutput>>;
4193
- /**
4194
- * [Instagram] Scrape Profile
4195
- *
4196
- * Scrape an Instagram profile
4197
- */
4198
- scrapeInstagramProfile(step: ScrapeInstagramProfileStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<ScrapeInstagramProfileStepOutput>>;
4199
- /**
4200
- * [Instagram] Scrape Reels
4201
- *
4202
- * Get all the reels for an Instagram profile
4203
- */
4204
- scrapeInstagramReels(step: ScrapeInstagramReelsStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<ScrapeInstagramReelsStepOutput>>;
4205
- /**
4206
- * Scrape LinkedIn Company
4207
- *
4208
- * Scrape public company data from a LinkedIn company page.
4209
- *
4210
- * ## Usage Notes
4211
- * - Requires a LinkedIn company URL (e.g. https://www.linkedin.com/company/mindstudioai).
4212
- * - Returns structured company data including description, employees, updates, and similar companies.
4213
- */
4214
- scrapeLinkedInCompany(step: ScrapeLinkedInCompanyStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<ScrapeLinkedInCompanyStepOutput>>;
4215
- /**
4216
- * Scrape LinkedIn Profile
4217
- *
4218
- * Scrape public profile data from a LinkedIn profile page.
4219
- *
4220
- * ## Usage Notes
4221
- * - Requires a LinkedIn profile URL (e.g. https://www.linkedin.com/in/username).
4222
- * - Returns structured profile data including experience, education, articles, and activities.
4223
- */
4224
- scrapeLinkedInProfile(step: ScrapeLinkedInProfileStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<ScrapeLinkedInProfileStepOutput>>;
4225
- /**
4226
- * [Meta Threads] Scrape Profile
4227
- *
4228
- * Scrape a Meta Threads profile
4229
- */
4230
- scrapeMetaThreadsProfile(step: ScrapeMetaThreadsProfileStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<ScrapeMetaThreadsProfileStepOutput>>;
4231
- /**
4232
- * Scrape URL
4233
- *
4234
- * Extract text, HTML, or structured content from one or more web pages.
4235
- *
4236
- * ## Usage Notes
4237
- * - Accepts a single URL or multiple URLs (as a JSON array, comma-separated, or newline-separated).
4238
- * - Output format controls the result shape: "text" returns markdown, "html" returns raw HTML, "json" returns structured scraper data.
4239
- * - Can optionally capture a screenshot of each page.
4240
- */
4241
- scrapeUrl(step: ScrapeUrlStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<ScrapeUrlStepOutput>>;
4242
- /**
4243
- * Scrape X Post
4244
- *
4245
- * Scrape data from a single X (Twitter) post by URL.
4246
- *
4247
- * ## Usage Notes
4248
- * - Returns structured post data (text, html, optional json/screenshot/metadata).
4249
- * - Optionally saves the text content to a variable.
4250
- */
4251
- scrapeXPost(step: ScrapeXPostStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<ScrapeXPostStepOutput>>;
4252
- /**
4253
- * Scrape X Profile
4254
- *
4255
- * Scrape public profile data from an X (Twitter) account by URL.
4256
- *
4257
- * ## Usage Notes
4258
- * - Returns structured profile data.
4259
- * - Optionally saves the result to a variable.
4260
- */
4261
- scrapeXProfile(step: ScrapeXProfileStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<ScrapeXProfileStepOutput>>;
4262
- /**
4263
- * Search Google
4264
- *
4265
- * Search the web using Google and return structured results.
4266
- *
4267
- * ## Usage Notes
4268
- * - Defaults to us/english, but can optionally specify country and/or language.
4269
- * - Defaults to any time, but can optionally specify last hour, last day, week, month, or year.
4270
- * - Defaults to top 30 results, but can specify 1 to 100 results to return.
4271
- */
4272
- searchGoogle(step: SearchGoogleStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<SearchGoogleStepOutput>>;
4273
- /**
4274
- * Search Google Images
4275
- *
4276
- * Search Google Images and return image results with URLs and metadata.
4277
- *
4278
- * ## Usage Notes
4279
- * - Defaults to us/english, but can optionally specify country and/or language.
4280
- * - Defaults to any time, but can optionally specify last hour, last day, week, month, or year.
4281
- * - Defaults to top 30 results, but can specify 1 to 100 results to return.
4282
- */
4283
- searchGoogleImages(step: SearchGoogleImagesStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<SearchGoogleImagesStepOutput>>;
4284
- /**
4285
- * Search Google News
4286
- *
4287
- * Search Google News for recent news articles matching a query.
4288
- *
4289
- * ## Usage Notes
4290
- * - Defaults to top 30 results, but can specify 1 to 100 results to return.
4291
- */
4292
- searchGoogleNews(step: SearchGoogleNewsStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<SearchGoogleNewsStepOutput>>;
4293
- /**
4294
- * Search Google Trends
4295
- *
4296
- * Fetch Google Trends data for a search term.
4297
- *
4298
- * ## Usage Notes
4299
- * - date accepts shorthand ("now 1-H", "today 1-m", "today 5-y", etc.) or custom "yyyy-mm-dd yyyy-mm-dd" ranges.
4300
- * - data_type controls the shape of returned data: TIMESERIES, GEO_MAP, GEO_MAP_0, RELATED_TOPICS, or RELATED_QUERIES.
4301
- */
4302
- searchGoogleTrends(step: SearchGoogleTrendsStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<SearchGoogleTrendsStepOutput>>;
4303
- /**
4304
- * Search Perplexity
4305
- *
4306
- * Search the web using the Perplexity API and return structured results.
4307
- *
4308
- * ## Usage Notes
4309
- * - Defaults to US results. Use countryCode (ISO code) to filter by country.
4310
- * - Returns 10 results by default, configurable from 1 to 20.
4311
- * - The variable receives text or JSON depending on exportType. The direct execution output always returns structured results.
4312
- */
4313
- searchPerplexity(step: SearchPerplexityStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<SearchPerplexityStepOutput>>;
4314
- /**
4315
- * [X] Search Posts
4316
- *
4317
- * Search recent X (Twitter) posts matching a query.
4318
- *
4319
- * ## Usage Notes
4320
- * - Searches only the past 7 days of posts.
4321
- * - Query supports X API v2 search operators (up to 512 characters).
4322
- *
4323
- * Available search operators in query:
4324
- *
4325
- * | Operator | Description |
4326
- * | -----------------| -------------------------------------------------|
4327
- * | from: | Posts from a specific user (e.g., from:elonmusk) |
4328
- * | to: | Posts sent to a specific user (e.g., to:NASA) |
4329
- * | @ | Mentions a user (e.g., @openai) |
4330
- * | # | Hashtag search (e.g., #AI) |
4331
- * | is:retweet | Filters retweets |
4332
- * | is:reply | Filters replies |
4333
- * | has:media | Posts containing media (images, videos, or GIFs) |
4334
- * | has:links | Posts containing URLs |
4335
- * | lang: | Filters by language (e.g., lang:en) |
4336
- * | - | Excludes specific terms (e.g., -spam) |
4337
- * | () | Groups terms or operators (e.g., (AI OR ML)) |
4338
- * | AND, OR, NOT | Boolean logic for combining or excluding terms |
4339
- *
4340
- * Conjunction-Required Operators (must be combined with a standalone operator):
4341
- *
4342
- * | Operator | Description |
4343
- * | ------------ | -----------------------------------------------|
4344
- * | has:media | Posts containing media (images, videos, or GIFs) |
4345
- * | has:links | Posts containing URLs |
4346
- * | is:retweet | Filters retweets |
4347
- * | is:reply | Filters replies |
4348
- *
4349
- * For example, has:media alone is invalid, but #AI has:media is valid.
4350
- */
4351
- searchXPosts(step: SearchXPostsStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<SearchXPostsStepOutput>>;
4352
- /**
4353
- * [YouTube] Search Videos
4354
- *
4355
- * Search for YouTube videos by keyword.
4356
- *
4357
- * ## Usage Notes
4358
- * - Supports pagination (up to 5 pages) and country/language filters.
4359
- * - Use the filter/filterType fields for YouTube search parameter (sp) filters.
4360
- */
4361
- searchYoutube(step: SearchYoutubeStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<SearchYoutubeStepOutput>>;
4362
- /**
4363
- * [YouTube] Search Trends
4364
- *
4365
- * Retrieve trending videos on YouTube by category and region.
4366
- *
4367
- * ## Usage Notes
4368
- * - Categories: "now" (trending now), "music", "gaming", "films".
4369
- * - Supports country and language filtering.
4370
- */
4371
- searchYoutubeTrends(step: SearchYoutubeTrendsStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<SearchYoutubeTrendsStepOutput>>;
4372
- /**
4373
- * Send Email
4374
- *
4375
- * Send an email to one or more configured recipient addresses.
4376
- *
4377
- * ## Usage Notes
4378
- * - Recipient email addresses are resolved from OAuth connections configured by the app creator. The user running the workflow does not specify the recipient directly.
4379
- * - If the body is a URL to a hosted HTML file on the CDN, the HTML is fetched and used as the email body.
4380
- * - When generateHtml is enabled, the body text is converted to a styled HTML email using an AI model.
4381
- * - connectionId can be a comma-separated list to send to multiple recipients.
4382
- * - The special connectionId "trigger_email" uses the email address that triggered the workflow.
4383
- */
4384
- sendEmail(step: SendEmailStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<SendEmailStepOutput>>;
4385
- /**
4386
- * Send SMS
4387
- *
4388
- * Send an SMS text message to a phone number configured via OAuth connection.
4389
- *
4390
- * ## Usage Notes
4391
- * - User is responsible for configuring the connection to the number (MindStudio requires double opt-in to prevent spam)
4392
- */
4393
- sendSMS(step: SendSMSStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<SendSMSStepOutput>>;
4394
- /**
4395
- * Set Run Title
4396
- *
4397
- * Set the title of the agent run for the user's history
4398
- */
4399
- setRunTitle(step: SetRunTitleStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<SetRunTitleStepOutput>>;
4400
- /**
4401
- * Set Variable
4402
- *
4403
- * Explicitly set a variable to a given value.
4404
- *
4405
- * ## Usage Notes
4406
- * - Useful for bootstrapping global variables or setting constants.
4407
- * - The variable name and value both support variable interpolation.
4408
- * - The type field is a UI hint only (controls input widget in the editor).
4409
- */
4410
- setVariable(step: SetVariableStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<SetVariableStepOutput>>;
4411
- /**
4412
- * Send Telegram Audio
4413
- *
4414
- * Send an audio file to a Telegram chat as music or a voice note via a bot.
4415
- *
4416
- * ## Usage Notes
4417
- * - "audio" mode sends as a standard audio file. "voice" mode sends as a voice message (re-uploads the file for large file support).
4418
- */
4419
- telegramSendAudio(step: TelegramSendAudioStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<TelegramSendAudioStepOutput>>;
4420
- /**
4421
- * Send Telegram File
4422
- *
4423
- * Send a document/file to a Telegram chat via a bot.
4424
- */
4425
- telegramSendFile(step: TelegramSendFileStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<TelegramSendFileStepOutput>>;
4426
- /**
4427
- * Send Telegram Image
4428
- *
4429
- * Send an image to a Telegram chat via a bot.
4430
- */
4431
- telegramSendImage(step: TelegramSendImageStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<TelegramSendImageStepOutput>>;
4432
- /**
4433
- * Send Telegram Message
4434
- *
4435
- * Send a text message to a Telegram chat via a bot.
4436
- *
4437
- * ## Usage Notes
4438
- * - Messages are sent using MarkdownV2 formatting. Special characters are auto-escaped.
4439
- * - botToken format is "botId:token" — both parts are required.
4440
- */
4441
- telegramSendMessage(step: TelegramSendMessageStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<TelegramSendMessageStepOutput>>;
4442
- /**
4443
- * Send Telegram Video
4444
- *
4445
- * Send a video to a Telegram chat via a bot.
4446
- */
4447
- telegramSendVideo(step: TelegramSendVideoStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<TelegramSendVideoStepOutput>>;
4448
- /**
4449
- * Telegram Set Typing
4450
- *
4451
- * Show the "typing..." indicator in a Telegram chat via a bot.
4452
- *
4453
- * ## Usage Notes
4454
- * - The typing indicator automatically expires after a few seconds. Use this right before sending a message for a natural feel.
4455
- */
4456
- telegramSetTyping(step: TelegramSetTypingStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<TelegramSetTypingStepOutput>>;
4457
- /**
4458
- * Text to Speech
4459
- *
4460
- * Generate an audio file from provided text using a speech model.
4461
- *
4462
- * ## Usage Notes
4463
- * - The text field contains the exact words to be spoken (not instructions).
4464
- * - In foreground mode, the audio is displayed to the user. In background mode, the URL is saved to a variable.
4465
- */
4466
- textToSpeech(step: TextToSpeechStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<TextToSpeechStepOutput>>;
4467
- /**
4468
- * Transcribe Audio
4469
- *
4470
- * Convert an audio file to text using a transcription model.
4471
- *
4472
- * ## Usage Notes
4473
- * - The prompt field provides optional context to improve transcription accuracy (e.g. language, speaker names, domain).
4474
- */
4475
- transcribeAudio(step: TranscribeAudioStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<TranscribeAudioStepOutput>>;
4476
- /**
4477
- * Trim Media
4478
- *
4479
- * Trim an audio or video clip
4480
- *
4481
- * ## Usage Notes
4482
- *
4483
- */
4484
- trimMedia(step: TrimMediaStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<TrimMediaStepOutput>>;
4485
- /**
4486
- * [Google Calendar] Update Event
4487
- *
4488
- * Update an existing event on a Google Calendar. Only specified fields are changed.
4489
- *
4490
- * ## Usage Notes
4491
- * - Requires a Google OAuth connection with Calendar events scope.
4492
- * - Fetches the existing event first, then applies only the provided updates. Omitted fields are left unchanged.
4493
- * - Attendees are specified as one email address per line, and replace the entire attendee list.
4494
- */
4495
- updateGoogleCalendarEvent(step: UpdateGoogleCalendarEventStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<UpdateGoogleCalendarEventStepOutput>>;
4496
- /**
4497
- * [Google] Update Google Doc
4498
- *
4499
- * Update the contents of an existing Google Document.
4500
- *
4501
- * ## Usage Notes
4502
- * - operationType controls how content is applied: "addToTop" prepends, "addToBottom" appends, "overwrite" replaces all content.
4503
- * - textType determines how the text field is interpreted: "plain" for plain text, "html" for HTML markup, "markdown" for Markdown.
4504
- */
4505
- updateGoogleDoc(step: UpdateGoogleDocStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<UpdateGoogleDocStepOutput>>;
4506
- /**
4507
- * [Google] Update Google Sheet
4508
- *
4509
- * Update a Google Spreadsheet with new data.
4510
- *
4511
- * ## Usage Notes
4512
- * - operationType controls how data is written: "addToBottom" appends rows, "overwrite" replaces all data, "range" writes to a specific cell range.
4513
- * - Data should be provided as CSV in the text field.
4514
- */
4515
- updateGoogleSheet(step: UpdateGoogleSheetStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<UpdateGoogleSheetStepOutput>>;
4516
- /**
4517
- * Upscale Image
4518
- *
4519
- * Increase the resolution of an image using AI upscaling.
4520
- *
4521
- * ## Usage Notes
4522
- * - Output is re-hosted on the CDN as a PNG.
4523
- */
4524
- upscaleImage(step: UpscaleImageStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<UpscaleImageStepOutput>>;
4525
- /**
4526
- * Upscale Video
4527
- *
4528
- * Upscale a video file
4529
- *
4530
- * ## Usage Notes
4531
- *
4532
- */
4533
- upscaleVideo(step: UpscaleVideoStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<UpscaleVideoStepOutput>>;
4534
- /**
4535
- * User Message
4536
- *
4537
- * Send a message to an AI model and return the response, or echo a system message.
4538
- *
4539
- * ## Usage Notes
4540
- * - Source "user" sends the message to an LLM and returns the model's response.
4541
- * - Source "system" echoes the message content directly (no AI call).
4542
- * - Mode "background" saves the result to a variable. Mode "foreground" streams it to the user (not available in direct execution).
4543
- * - Structured output (JSON/CSV) can be enforced via structuredOutputType and structuredOutputExample.
4544
- */
4545
- userMessage(step: UserMessageStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<UserMessageStepOutput>>;
4546
- /**
4547
- * Video Face Swap
4548
- *
4549
- * Swap faces in a video file
4550
- *
4551
- * ## Usage Notes
4552
- *
4553
- */
4554
- videoFaceSwap(step: VideoFaceSwapStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<VideoFaceSwapStepOutput>>;
4555
- /**
4556
- * Remove Video Background
4557
- *
4558
- * Remove or replace background from a video
4559
- *
4560
- * ## Usage Notes
4561
- *
4562
- */
4563
- videoRemoveBackground(step: VideoRemoveBackgroundStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<VideoRemoveBackgroundStepOutput>>;
4564
- /**
4565
- * Remove Video Watermark
4566
- *
4567
- * Remove a watermark from a video
4568
- *
4569
- * ## Usage Notes
4570
- *
4571
- */
4572
- videoRemoveWatermark(step: VideoRemoveWatermarkStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<VideoRemoveWatermarkStepOutput>>;
4573
- /**
4574
- * Watermark Image
4575
- *
4576
- * Overlay a watermark image onto another image.
4577
- *
4578
- * ## Usage Notes
4579
- * - The watermark is placed at the specified corner with configurable padding and width.
4580
- */
4581
- watermarkImage(step: WatermarkImageStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<WatermarkImageStepOutput>>;
4582
- /**
4583
- * Watermark Video
4584
- *
4585
- * Add an image watermark to a video
4586
- *
4587
- * ## Usage Notes
4588
- *
4589
- */
4590
- watermarkVideo(step: WatermarkVideoStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<WatermarkVideoStepOutput>>;
4591
- }
4592
- }
4593
- /** @internal Attaches typed step methods to the MindStudioAgent prototype. */
4594
- declare function applyStepMethods(AgentClass: new (...args: any[]) => any): void;
4595
-
4596
- /** An AI model available on MindStudio. */
4597
- interface MindStudioModel {
4598
- id?: string;
4599
- /** Display name of the model. */
4600
- name?: string;
4601
- /** Full model identifier from the provider. */
4602
- rawName?: string;
4603
- /** One of: `llm_chat`, `image_generation`, `video_generation`, `video_analysis`, `text_to_speech`, `vision`, `transcription`. */
4604
- type?: "llm_chat" | "image_generation" | "video_generation" | "video_analysis" | "text_to_speech" | "vision" | "transcription";
4605
- publisher?: string;
4606
- maxTemperature?: number;
4607
- maxResponseSize?: number;
4608
- /** Accepted input types for this model (text, imageUrl, videoUrl, etc.). */
4609
- inputs?: Record<string, unknown>[];
4610
- contextWindow?: number;
4611
- tags?: string;
4612
- }
4613
- /** Supported model type categories for filtering. */
4614
- type ModelType = "llm_chat" | "image_generation" | "video_generation" | "video_analysis" | "text_to_speech" | "vision" | "transcription";
4615
- declare module "../client.js" {
4616
- interface MindStudioAgent {
4617
- /**
4618
- * List all available AI models.
4619
- *
4620
- * Returns models across all categories (chat, image generation, video, etc.).
4621
- * Use `listModelsByType()` to filter by category.
4622
- */
4623
- listModels(): Promise<{
4624
- models: MindStudioModel[];
4625
- }>;
4626
- /**
4627
- * List AI models filtered by type.
4628
- *
4629
- * @param modelType - The category to filter by (e.g. "llm_chat", "image_generation").
4630
- */
4631
- listModelsByType(modelType: ModelType): Promise<{
4632
- models: MindStudioModel[];
4633
- }>;
4634
- /**
4635
- * List all available connector services (Slack, Google, HubSpot, etc.).
4636
- */
4637
- listConnectors(): Promise<{
4638
- services: Array<{
4639
- service: Record<string, unknown>;
4640
- actions: Record<string, unknown>[];
4641
- }>;
4642
- }>;
4643
- /**
4644
- * Get details for a single connector service.
4645
- *
4646
- * @param serviceId - The connector service ID.
4647
- */
4648
- getConnector(serviceId: string): Promise<{
4649
- service: Record<string, unknown>;
4650
- }>;
4651
- }
4652
- }
4653
- /** @internal Attaches helper methods to the MindStudioAgent prototype. */
4654
- declare function applyHelperMethods(AgentClass: new (...args: any[]) => any): void;
4655
-
4656
- /**
4657
- * Client for the MindStudio direct step execution API.
4658
- *
4659
- * Create an instance and call typed step methods directly:
4660
- *
4661
- * ```ts
4662
- * const agent = new MindStudioAgent({ apiKey: "your-key" });
4663
- * const result = await agent.generateImage({ prompt: "a sunset", mode: "background" });
4664
- * console.log(result.output.imageUrl);
4665
- * ```
4666
- *
4667
- * Authentication is resolved in order:
4668
- * 1. `apiKey` passed to the constructor
4669
- * 2. `MINDSTUDIO_API_KEY` environment variable
4670
- * 3. `CALLBACK_TOKEN` environment variable (auto-set inside MindStudio custom functions)
4671
- *
4672
- * Base URL is resolved in order:
4673
- * 1. `baseUrl` passed to the constructor
4674
- * 2. `MINDSTUDIO_BASE_URL` environment variable
4675
- * 3. `REMOTE_HOSTNAME` environment variable (auto-set inside MindStudio custom functions)
4676
- * 4. `https://v1.mindstudio-api.com` (production default)
4677
- */
4678
- declare class MindStudioAgent {
4679
- /** @internal */
4680
- readonly _httpConfig: HttpClientConfig;
4681
- constructor(options?: AgentOptions);
3185
+ interface StepMethods {
4682
3186
  /**
4683
- * Execute any step by its type name. This is the low-level method that all
4684
- * typed step methods delegate to. Use it as an escape hatch for step types
4685
- * not yet covered by the generated methods.
3187
+ * [ActiveCampaign] Add Note
4686
3188
  *
4687
- * ```ts
4688
- * const result = await agent.executeStep("generateImage", { prompt: "hello", mode: "background" });
4689
- * ```
3189
+ * Add a note to an existing contact in ActiveCampaign.
3190
+ *
3191
+ * ## Usage Notes
3192
+ * - Requires an ActiveCampaign OAuth connection (connectionId).
3193
+ * - The contact must already exist — use the contact ID from a previous create or search step.
4690
3194
  */
4691
- executeStep<TOutput = unknown>(stepType: string, step: Record<string, unknown>, options?: StepExecutionOptions): Promise<StepExecutionResult<TOutput>>;
4692
- /** @internal Used by generated helper methods. */
4693
- _request<T>(method: 'GET' | 'POST', path: string, body?: unknown): Promise<{
4694
- data: T;
4695
- headers: Headers;
4696
- }>;
4697
- }
4698
-
4699
- /**
4700
- * Error thrown when a MindStudio API request fails.
4701
- *
4702
- * Contains the HTTP status code, an error code from the API,
4703
- * and any additional details returned in the response body.
4704
- */
4705
- declare class MindStudioError extends Error {
4706
- /** Machine-readable error code from the API (e.g. "invalid_step_config"). */
4707
- readonly code: string;
4708
- /** HTTP status code of the failed request. */
4709
- readonly status: number;
4710
- /** Raw error body from the API, if available. */
4711
- readonly details?: unknown | undefined;
4712
- readonly name = "MindStudioError";
4713
- constructor(message: string,
4714
- /** Machine-readable error code from the API (e.g. "invalid_step_config"). */
4715
- code: string,
4716
- /** HTTP status code of the failed request. */
4717
- status: number,
4718
- /** Raw error body from the API, if available. */
4719
- details?: unknown | undefined);
4720
- }
3195
+ activeCampaignAddNote(step: ActiveCampaignAddNoteStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<ActiveCampaignAddNoteStepOutput>>;
3196
+ /**
3197
+ * [ActiveCampaign] Create Contact
3198
+ *
3199
+ * Create or sync a contact in ActiveCampaign.
3200
+ *
3201
+ * ## Usage Notes
3202
+ * - Requires an ActiveCampaign OAuth connection (connectionId).
3203
+ * - If a contact with the email already exists, it may be updated depending on ActiveCampaign settings.
3204
+ * - Custom fields are passed as a key-value map where keys are field IDs.
3205
+ */
3206
+ activeCampaignCreateContact(step: ActiveCampaignCreateContactStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<ActiveCampaignCreateContactStepOutput>>;
3207
+ /**
3208
+ * Add Subtitles To Video
3209
+ *
3210
+ * Automatically add subtitles to a video
3211
+ *
3212
+ * ## Usage Notes
3213
+ * - Can control style of text and animation
3214
+ */
3215
+ addSubtitlesToVideo(step: AddSubtitlesToVideoStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<AddSubtitlesToVideoStepOutput>>;
3216
+ /**
3217
+ * [Airtable] Create/Update record
3218
+ *
3219
+ * Create a new record or update an existing record in an Airtable table.
3220
+ *
3221
+ * ## Usage Notes
3222
+ * - If recordId is provided, updates that record. Otherwise, creates a new one.
3223
+ * - When updating with updateMode "onlySpecified", unspecified fields are left as-is. With "all", unspecified fields are cleared.
3224
+ * - Array fields (e.g. multipleAttachments) accept arrays of values.
3225
+ */
3226
+ airtableCreateUpdateRecord(step: AirtableCreateUpdateRecordStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<AirtableCreateUpdateRecordStepOutput>>;
3227
+ /**
3228
+ * [Airtable] Delete record
3229
+ *
3230
+ * Delete a record from an Airtable table by its record ID.
3231
+ *
3232
+ * ## Usage Notes
3233
+ * - Requires an active Airtable OAuth connection (connectionId).
3234
+ * - Silently succeeds if the record does not exist.
3235
+ */
3236
+ airtableDeleteRecord(step: AirtableDeleteRecordStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<AirtableDeleteRecordStepOutput>>;
3237
+ /**
3238
+ * [Airtable] Get record
3239
+ *
3240
+ * Fetch a single record from an Airtable table by its record ID.
3241
+ *
3242
+ * ## Usage Notes
3243
+ * - Requires an active Airtable OAuth connection (connectionId).
3244
+ * - If the record is not found, returns a string message instead of a record object.
3245
+ */
3246
+ airtableGetRecord(step: AirtableGetRecordStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<AirtableGetRecordStepOutput>>;
3247
+ /**
3248
+ * [Airtable] Get table records
3249
+ *
3250
+ * Fetch multiple records from an Airtable table with optional pagination.
3251
+ *
3252
+ * ## Usage Notes
3253
+ * - Requires an active Airtable OAuth connection (connectionId).
3254
+ * - Default limit is 100 records. Maximum is 1000.
3255
+ * - When outputFormat is 'csv', the variable receives CSV text. The direct execution output always returns parsed records.
3256
+ */
3257
+ airtableGetTableRecords(step: AirtableGetTableRecordsStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<AirtableGetTableRecordsStepOutput>>;
3258
+ /**
3259
+ * Analyze Image
3260
+ *
3261
+ * Analyze an image using a vision model based on a text prompt.
3262
+ *
3263
+ * ## Usage Notes
3264
+ * - Uses the configured vision model to generate a text analysis of the image.
3265
+ * - The prompt should describe what to look for or extract from the image.
3266
+ */
3267
+ analyzeImage(step: AnalyzeImageStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<AnalyzeImageStepOutput>>;
3268
+ /**
3269
+ * Analyze Video
3270
+ *
3271
+ * Analyze a video using a video analysis model based on a text prompt.
3272
+ *
3273
+ * ## Usage Notes
3274
+ * - Uses the configured video analysis model to generate a text analysis of the video.
3275
+ * - The prompt should describe what to look for or extract from the video.
3276
+ */
3277
+ analyzeVideo(step: AnalyzeVideoStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<AnalyzeVideoStepOutput>>;
3278
+ /**
3279
+ * Get Image from Video Frame
3280
+ *
3281
+ * Capture a thumbnail from a video at a specified timestamp
3282
+ *
3283
+ * ## Usage Notes
3284
+ *
3285
+ */
3286
+ captureThumbnail(step: CaptureThumbnailStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<CaptureThumbnailStepOutput>>;
3287
+ /**
3288
+ * [Coda] Create/Update page
3289
+ *
3290
+ * Create a new page or update an existing page in a Coda document.
3291
+ *
3292
+ * ## Usage Notes
3293
+ * - Requires a Coda OAuth connection (connectionId).
3294
+ * - If pageData.pageId is provided, updates that page. Otherwise, creates a new one.
3295
+ * - Page content is provided as markdown and converted to Coda's canvas format.
3296
+ * - When updating, insertionMode controls how content is applied (default: 'append').
3297
+ */
3298
+ codaCreateUpdatePage(step: CodaCreateUpdatePageStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<CodaCreateUpdatePageStepOutput>>;
3299
+ /**
3300
+ * [Coda] Create/Update row
3301
+ *
3302
+ * Create a new row or update an existing row in a Coda table.
3303
+ *
3304
+ * ## Usage Notes
3305
+ * - Requires a Coda OAuth connection (connectionId).
3306
+ * - If rowId is provided, updates that row. Otherwise, creates a new one.
3307
+ * - Row data keys are column IDs. Empty values are excluded.
3308
+ */
3309
+ codaCreateUpdateRow(step: CodaCreateUpdateRowStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<CodaCreateUpdateRowStepOutput>>;
3310
+ /**
3311
+ * [Coda] Find row
3312
+ *
3313
+ * Search for a row in a Coda table by matching column values.
3314
+ *
3315
+ * ## Usage Notes
3316
+ * - Requires a Coda OAuth connection (connectionId).
3317
+ * - Returns the first row matching all specified column values, or null if no match.
3318
+ * - Search criteria in rowData are ANDed together.
3319
+ */
3320
+ codaFindRow(step: CodaFindRowStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<CodaFindRowStepOutput>>;
3321
+ /**
3322
+ * [Coda] Get page
3323
+ *
3324
+ * Export and read the contents of a page from a Coda document.
3325
+ *
3326
+ * ## Usage Notes
3327
+ * - Requires a Coda OAuth connection (connectionId).
3328
+ * - Page export is asynchronous on Coda's side — there may be a brief delay while it processes.
3329
+ * - If a page was just created in a prior step, there is an automatic 20-second retry if the first export attempt fails.
3330
+ */
3331
+ codaGetPage(step: CodaGetPageStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<CodaGetPageStepOutput>>;
3332
+ /**
3333
+ * [Coda] Get table rows
3334
+ *
3335
+ * Fetch rows from a Coda table with optional pagination.
3336
+ *
3337
+ * ## Usage Notes
3338
+ * - Requires a Coda OAuth connection (connectionId).
3339
+ * - Default limit is 10000 rows. Rows are fetched in pages of 500.
3340
+ * - When outputFormat is 'csv', the variable receives CSV text. The direct execution output always returns parsed rows.
3341
+ */
3342
+ codaGetTableRows(step: CodaGetTableRowsStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<CodaGetTableRowsStepOutput>>;
3343
+ /**
3344
+ * Convert PDF to Images
3345
+ *
3346
+ * Convert each page of a PDF document into a PNG image.
3347
+ *
3348
+ * ## Usage Notes
3349
+ * - Each page is converted to a separate PNG and re-hosted on the CDN.
3350
+ * - Returns an array of image URLs, one per page.
3351
+ */
3352
+ convertPdfToImages(step: ConvertPdfToImagesStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<ConvertPdfToImagesStepOutput>>;
3353
+ /**
3354
+ * [Google Calendar] Create Event
3355
+ *
3356
+ * Create a new event on a Google Calendar.
3357
+ *
3358
+ * ## Usage Notes
3359
+ * - Requires a Google OAuth connection with Calendar events scope.
3360
+ * - Date/time values must be ISO 8601 format (e.g. "2025-07-02T10:00:00-07:00").
3361
+ * - Attendees are specified as one email address per line in a single string.
3362
+ * - Set addMeetLink to true to automatically attach a Google Meet video call.
3363
+ */
3364
+ createGoogleCalendarEvent(step: CreateGoogleCalendarEventStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<CreateGoogleCalendarEventStepOutput>>;
3365
+ /**
3366
+ * [Google] Create Google Doc
3367
+ *
3368
+ * Create a new Google Document and optionally populate it with content.
3369
+ *
3370
+ * ## Usage Notes
3371
+ * - textType determines how the text field is interpreted: "plain" for plain text, "html" for HTML markup, "markdown" for Markdown.
3372
+ */
3373
+ createGoogleDoc(step: CreateGoogleDocStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<CreateGoogleDocStepOutput>>;
3374
+ /**
3375
+ * [Google] Create Google Sheet
3376
+ *
3377
+ * Create a new Google Spreadsheet and populate it with CSV data.
3378
+ */
3379
+ createGoogleSheet(step: CreateGoogleSheetStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<CreateGoogleSheetStepOutput>>;
3380
+ /**
3381
+ * [Google Calendar] Get Event
3382
+ *
3383
+ * Retrieve a specific event from a Google Calendar by event ID.
3384
+ *
3385
+ * ## Usage Notes
3386
+ * - Requires a Google OAuth connection with Calendar events scope.
3387
+ * - The variable receives JSON or XML-like text depending on exportType. The direct execution output always returns the structured event.
3388
+ */
3389
+ deleteGoogleCalendarEvent(step: DeleteGoogleCalendarEventStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<DeleteGoogleCalendarEventStepOutput>>;
3390
+ /**
3391
+ * Detect PII
3392
+ *
3393
+ * Scan text for personally identifiable information using Microsoft Presidio.
3394
+ *
3395
+ * ## Usage Notes
3396
+ * - In workflow mode, transitions to detectedStepId if PII is found, notDetectedStepId otherwise.
3397
+ * - In direct execution, returns the detection results without transitioning.
3398
+ * - If entities is empty, returns immediately with no detections.
3399
+ */
3400
+ detectPII(step: DetectPIIStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<DetectPIIStepOutput>>;
3401
+ /**
3402
+ * Download Video
3403
+ *
3404
+ * Download a video file
3405
+ *
3406
+ * ## Usage Notes
3407
+ * - Works with YouTube, TikTok, etc., by using ytdlp behind the scenes
3408
+ * - Can save as mp4 or mp3
3409
+ */
3410
+ downloadVideo(step: DownloadVideoStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<DownloadVideoStepOutput>>;
3411
+ /**
3412
+ * Enhance Image Prompt
3413
+ *
3414
+ * Auto-enhance an image generation prompt using a language model. Optionally generates a negative prompt.
3415
+ *
3416
+ * ## Usage Notes
3417
+ * - Rewrites the user's prompt with added detail about style, lighting, colors, and composition.
3418
+ * - When includeNegativePrompt is true, a second model call generates a negative prompt.
3419
+ */
3420
+ enhanceImageGenerationPrompt(step: EnhanceImageGenerationPromptStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<EnhanceImageGenerationPromptStepOutput>>;
3421
+ /**
3422
+ * Enhance Video Prompt
3423
+ *
3424
+ * Auto-enhance a video generation prompt using a language model. Optionally generates a negative prompt.
3425
+ *
3426
+ * ## Usage Notes
3427
+ * - Rewrites the user's prompt with added detail about style, camera movement, lighting, and composition.
3428
+ * - When includeNegativePrompt is true, a second model call generates a negative prompt.
3429
+ */
3430
+ enhanceVideoGenerationPrompt(step: EnhanceVideoGenerationPromptStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<EnhanceVideoGenerationPromptStepOutput>>;
3431
+ /**
3432
+ * [Apollo] Enrich Person
3433
+ *
3434
+ * Look up professional information about a person using Apollo.io. Search by ID, name, LinkedIn URL, email, or domain.
3435
+ *
3436
+ * ## Usage Notes
3437
+ * - At least one search parameter must be provided.
3438
+ * - Returns enriched data from Apollo including contact details, employment info, and social profiles.
3439
+ */
3440
+ enrichPerson(step: EnrichPersonStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<EnrichPersonStepOutput>>;
3441
+ /**
3442
+ * Extract Audio from Video
3443
+ *
3444
+ * Extract audio MP3 from a video file
3445
+ *
3446
+ * ## Usage Notes
3447
+ *
3448
+ */
3449
+ extractAudioFromVideo(step: ExtractAudioFromVideoStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<ExtractAudioFromVideoStepOutput>>;
3450
+ /**
3451
+ * Extract Text from URL
3452
+ *
3453
+ * Download a file from a URL and extract its text content. Supports PDFs, plain text files, and other document formats.
3454
+ *
3455
+ * ## Usage Notes
3456
+ * - Best suited for PDFs and raw text/document files. For web pages, use the scrapeUrl step instead.
3457
+ * - Accepts a single URL, a comma-separated list of URLs, or a JSON array of URLs.
3458
+ * - Files are rehosted on the MindStudio CDN before extraction.
3459
+ * - Maximum file size is 50MB per URL.
3460
+ */
3461
+ extractText(step: ExtractTextStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<ExtractTextStepOutput>>;
3462
+ /**
3463
+ * [Google] Fetch Google Doc
3464
+ *
3465
+ * Fetch the contents of an existing Google Document.
3466
+ *
3467
+ * ## Usage Notes
3468
+ * - exportType controls the output format: "html" for HTML markup, "markdown" for Markdown, "json" for structured JSON, "plain" for plain text.
3469
+ */
3470
+ fetchGoogleDoc(step: FetchGoogleDocStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<FetchGoogleDocStepOutput>>;
3471
+ /**
3472
+ * [Google] Fetch Google Sheet
3473
+ *
3474
+ * Fetch contents of a Google Spreadsheet range.
3475
+ *
3476
+ * ## Usage Notes
3477
+ * - range uses A1 notation (e.g. "Sheet1!A1:C10"). Omit to fetch the entire first sheet.
3478
+ * - exportType controls the output format: "csv" for comma-separated values, "json" for structured JSON.
3479
+ */
3480
+ fetchGoogleSheet(step: FetchGoogleSheetStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<FetchGoogleSheetStepOutput>>;
3481
+ /**
3482
+ * Fetch Slack Channel History
3483
+ *
3484
+ * Fetch recent message history from a Slack channel.
3485
+ *
3486
+ * ## Usage Notes
3487
+ * - The user is responsible for connecting their Slack workspace and selecting the channel
3488
+ */
3489
+ fetchSlackChannelHistory(step: FetchSlackChannelHistoryStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<FetchSlackChannelHistoryStepOutput>>;
3490
+ /**
3491
+ * [YouTube] Fetch Captions
3492
+ *
3493
+ * Retrieve the captions/transcript for a YouTube video.
3494
+ *
3495
+ * ## Usage Notes
3496
+ * - Supports multiple languages via the language parameter.
3497
+ * - "text" export produces timestamped plain text; "json" export produces structured transcript data.
3498
+ */
3499
+ fetchYoutubeCaptions(step: FetchYoutubeCaptionsStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<FetchYoutubeCaptionsStepOutput>>;
3500
+ /**
3501
+ * [YouTube] Fetch Channel
3502
+ *
3503
+ * Retrieve metadata and recent videos for a YouTube channel.
3504
+ *
3505
+ * ## Usage Notes
3506
+ * - Accepts a YouTube channel URL (e.g. https://www.youtube.com/@ChannelName or /channel/ID).
3507
+ * - Returns channel info and video listings as a JSON object.
3508
+ */
3509
+ fetchYoutubeChannel(step: FetchYoutubeChannelStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<FetchYoutubeChannelStepOutput>>;
3510
+ /**
3511
+ * [YouTube] Fetch Comments
3512
+ *
3513
+ * Retrieve comments for a YouTube video.
3514
+ *
3515
+ * ## Usage Notes
3516
+ * - Paginates through comments (up to 5 pages).
3517
+ * - "text" export produces markdown-formatted text; "json" export produces structured comment data.
3518
+ */
3519
+ fetchYoutubeComments(step: FetchYoutubeCommentsStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<FetchYoutubeCommentsStepOutput>>;
3520
+ /**
3521
+ * [YouTube] Fetch Video
3522
+ *
3523
+ * Retrieve metadata for a YouTube video (title, description, stats, channel info).
3524
+ *
3525
+ * ## Usage Notes
3526
+ * - Returns video metadata, channel info, and engagement stats.
3527
+ * - Video format data is excluded from the response.
3528
+ */
3529
+ fetchYoutubeVideo(step: FetchYoutubeVideoStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<FetchYoutubeVideoStepOutput>>;
3530
+ /**
3531
+ * Generate Chart
3532
+ *
3533
+ * Create a chart image using QuickChart (Chart.js) and return the URL.
3534
+ *
3535
+ * ## Usage Notes
3536
+ * - The data field must be a Chart.js-compatible JSON object serialized as a string.
3537
+ * - Supported chart types: bar, line, pie.
3538
+ */
3539
+ generateChart(step: GenerateChartStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<GenerateChartStepOutput>>;
3540
+ /**
3541
+ * Generate Image
3542
+ *
3543
+ * Generate an image from a text prompt using an AI model.
3544
+ *
3545
+ * ## Usage Notes
3546
+ * - Prompts should be descriptive but concise (roughly 3–6 sentences).
3547
+ * - Images are automatically hosted on a CDN.
3548
+ * - In foreground mode, the image is displayed to the user. In background mode, the URL is saved to a variable.
3549
+ * - When generateVariants is true with numVariants > 1, multiple images are generated in parallel.
3550
+ * - In direct execution, foreground mode behaves as background, and userSelect variant behavior behaves as saveAll.
3551
+ */
3552
+ generateImage(step: GenerateImageStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<GenerateImageStepOutput>>;
3553
+ /**
3554
+ * Generate Lipsync
3555
+ *
3556
+ * Generate a lip sync video from provided audio and image.
3557
+ *
3558
+ * ## Usage Notes
3559
+ * - In foreground mode, the video is displayed to the user. In background mode, the URL is saved to a variable.
3560
+ */
3561
+ generateLipsync(step: GenerateLipsyncStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<GenerateLipsyncStepOutput>>;
3562
+ /**
3563
+ * Generate Music
3564
+ *
3565
+ * Generate an audio file from provided instructions (text) using a music model.
3566
+ *
3567
+ * ## Usage Notes
3568
+ * - The text field contains the instructions (prompt) for the music generation.
3569
+ * - In foreground mode, the audio is displayed to the user. In background mode, the URL is saved to a variable.
3570
+ */
3571
+ generateMusic(step: GenerateMusicStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<GenerateMusicStepOutput>>;
3572
+ /**
3573
+ * Generate HTML Asset
3574
+ *
3575
+ * Generate an HTML asset and export it as a webpage, PDF, or image
3576
+ *
3577
+ * ## Usage Notes
3578
+ * - Agents can generate HTML documents and export as webpage, PDFs, images, or videos. They do this by using the "generatePdf" block, which defines an HTML page with variables, and then the generation process renders the page to create the output and save its URL at the specified variable.
3579
+ * - The template for the HTML page is generated by a separate process, and it can only use variables that have already been defined in the workflow at the time of its execution. It has full access to handlebars to render the HTML template, including a handlebars helper to render a markdown variable string as HTML (which can be useful for creating templates that render long strings). The template can also create its own simple JavaScript to do things like format dates and strings.
3580
+ * - If PDF or composited image generation are part of the workflow, assistant adds the block and leaves the "source" empty. In a separate step, assistant generates a detailed request for the developer who will write the HTML.
3581
+ * - Can also auto-generate HTML from a prompt (like a generate text block to generate HTML). In these cases, create a prompt with variables in the dynamicPrompt variable describing, in detail, the document to generate
3582
+ * - Can either display output directly to user (foreground mode) or save the URL of the asset to a variable (background mode)
3583
+ */
3584
+ generatePdf(step: GeneratePdfStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<GeneratePdfStepOutput>>;
3585
+ /**
3586
+ * Generate Static Video from Image
3587
+ *
3588
+ * Convert a static image to an MP4
3589
+ *
3590
+ * ## Usage Notes
3591
+ * - Can use to create slides/intertitles/slates for video composition
3592
+ */
3593
+ generateStaticVideoFromImage(step: GenerateStaticVideoFromImageStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<GenerateStaticVideoFromImageStepOutput>>;
3594
+ /**
3595
+ * Generate Video
3596
+ *
3597
+ * Generate a video from a text prompt using an AI model.
3598
+ *
3599
+ * ## Usage Notes
3600
+ * - Prompts should be descriptive but concise (roughly 3–6 sentences).
3601
+ * - Videos are automatically hosted on a CDN.
3602
+ * - In foreground mode, the video is displayed to the user. In background mode, the URL is saved to a variable.
3603
+ * - When generateVariants is true with numVariants > 1, multiple videos are generated in parallel.
3604
+ * - In direct execution, foreground mode behaves as background, and userSelect variant behavior behaves as saveAll.
3605
+ */
3606
+ generateVideo(step: GenerateVideoStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<GenerateVideoStepOutput>>;
3607
+ /**
3608
+ * [Google Calendar] Get Event
3609
+ *
3610
+ * Retrieve a specific event from a Google Calendar by event ID.
3611
+ *
3612
+ * ## Usage Notes
3613
+ * - Requires a Google OAuth connection with Calendar events scope.
3614
+ * - The variable receives JSON or XML-like text depending on exportType. The direct execution output always returns the structured event.
3615
+ */
3616
+ getGoogleCalendarEvent(step: GetGoogleCalendarEventStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<GetGoogleCalendarEventStepOutput>>;
3617
+ /**
3618
+ * Get Media Metadata
3619
+ *
3620
+ * Get info about a media file
3621
+ *
3622
+ * ## Usage Notes
3623
+ *
3624
+ */
3625
+ getMediaMetadata(step: GetMediaMetadataStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<GetMediaMetadataStepOutput>>;
3626
+ /**
3627
+ * HTTP Request
3628
+ *
3629
+ * Make an HTTP request to an external endpoint and return the response.
3630
+ *
3631
+ * ## Usage Notes
3632
+ * - Supports GET, POST, PATCH, DELETE, and PUT methods.
3633
+ * - Body can be raw JSON/text, URL-encoded form data, or multipart form data.
3634
+ */
3635
+ httpRequest(step: HttpRequestStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<HttpRequestStepOutput>>;
3636
+ /**
3637
+ * [HubSpot] Create/Update Company
3638
+ *
3639
+ * Create a new company or update an existing one in HubSpot. Matches by domain.
3640
+ *
3641
+ * ## Usage Notes
3642
+ * - Requires a HubSpot OAuth connection (connectionId).
3643
+ * - If a company with the given domain already exists, it is updated. Otherwise, a new one is created.
3644
+ * - Property values are type-checked against enabledProperties before being sent to HubSpot.
3645
+ */
3646
+ hubspotCreateCompany(step: HubspotCreateCompanyStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<HubspotCreateCompanyStepOutput>>;
3647
+ /**
3648
+ * [HubSpot] Create/Update Contact
3649
+ *
3650
+ * Create a new contact or update an existing one in HubSpot. Matches by email address.
3651
+ *
3652
+ * ## Usage Notes
3653
+ * - Requires a HubSpot OAuth connection (connectionId).
3654
+ * - If a contact with the given email already exists, it is updated. Otherwise, a new one is created.
3655
+ * - If companyDomain is provided, the contact is associated with that company (creating the company if needed).
3656
+ * - Property values are type-checked against enabledProperties before being sent to HubSpot.
3657
+ */
3658
+ hubspotCreateContact(step: HubspotCreateContactStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<HubspotCreateContactStepOutput>>;
3659
+ /**
3660
+ * [HubSpot] Get Company
3661
+ *
3662
+ * Look up a HubSpot company by domain name or company ID.
3663
+ *
3664
+ * ## Usage Notes
3665
+ * - Requires a HubSpot OAuth connection (connectionId).
3666
+ * - Returns null if the company is not found.
3667
+ * - When searching by domain, performs a search query then fetches the full company record.
3668
+ * - Use additionalProperties to request specific HubSpot properties beyond the defaults.
3669
+ */
3670
+ hubspotGetCompany(step: HubspotGetCompanyStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<HubspotGetCompanyStepOutput>>;
3671
+ /**
3672
+ * [HubSpot] Get Contact
3673
+ *
3674
+ * Look up a HubSpot contact by email address or contact ID.
3675
+ *
3676
+ * ## Usage Notes
3677
+ * - Requires a HubSpot OAuth connection (connectionId).
3678
+ * - Returns null if the contact is not found.
3679
+ * - Use additionalProperties to request specific HubSpot properties beyond the defaults.
3680
+ */
3681
+ hubspotGetContact(step: HubspotGetContactStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<HubspotGetContactStepOutput>>;
3682
+ /**
3683
+ * [Hunter.io] Enrich Company
3684
+ *
3685
+ * Look up company information by domain using Hunter.io.
3686
+ *
3687
+ * ## Usage Notes
3688
+ * - Returns company name, description, location, industry, size, technologies, and more.
3689
+ * - If the domain input is a full URL, the hostname is automatically extracted.
3690
+ * - Returns null if the company is not found.
3691
+ */
3692
+ hunterApiCompanyEnrichment(step: HunterApiCompanyEnrichmentStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<HunterApiCompanyEnrichmentStepOutput>>;
3693
+ /**
3694
+ * [Hunter.io] Domain Search
3695
+ *
3696
+ * Search for email addresses associated with a domain using Hunter.io.
3697
+ *
3698
+ * ## Usage Notes
3699
+ * - If the domain input is a full URL, the hostname is automatically extracted.
3700
+ * - Returns a list of email addresses found for the domain along with organization info.
3701
+ */
3702
+ hunterApiDomainSearch(step: HunterApiDomainSearchStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<HunterApiDomainSearchStepOutput>>;
3703
+ /**
3704
+ * [Hunter.io] Find Email
3705
+ *
3706
+ * Find an email address for a specific person at a domain using Hunter.io.
3707
+ *
3708
+ * ## Usage Notes
3709
+ * - Requires a first name, last name, and domain.
3710
+ * - If the domain input is a full URL, the hostname is automatically extracted.
3711
+ * - Returns the most likely email address with a confidence score.
3712
+ */
3713
+ hunterApiEmailFinder(step: HunterApiEmailFinderStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<HunterApiEmailFinderStepOutput>>;
3714
+ /**
3715
+ * [Hunter.io] Verify Email
3716
+ *
3717
+ * Verify whether an email address is valid and deliverable using Hunter.io.
3718
+ *
3719
+ * ## Usage Notes
3720
+ * - Checks email format, MX records, SMTP server, and mailbox deliverability.
3721
+ * - Returns a status ("valid", "invalid", "accept_all", "webmail", "disposable", "unknown") and a score.
3722
+ */
3723
+ hunterApiEmailVerification(step: HunterApiEmailVerificationStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<HunterApiEmailVerificationStepOutput>>;
3724
+ /**
3725
+ * [Hunter.io] Enrich Person
3726
+ *
3727
+ * Look up professional information about a person by their email address using Hunter.io.
3728
+ *
3729
+ * ## Usage Notes
3730
+ * - Returns name, job title, social profiles, and company information.
3731
+ * - If the person is not found, returns an object with an error message instead of throwing.
3732
+ */
3733
+ hunterApiPersonEnrichment(step: HunterApiPersonEnrichmentStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<HunterApiPersonEnrichmentStepOutput>>;
3734
+ /**
3735
+ * Image Face Swap
3736
+ *
3737
+ * Replace a face in an image with a face from another image using AI.
3738
+ *
3739
+ * ## Usage Notes
3740
+ * - Requires both a target image and a face source image.
3741
+ * - Output is re-hosted on the CDN as a PNG.
3742
+ */
3743
+ imageFaceSwap(step: ImageFaceSwapStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<ImageFaceSwapStepOutput>>;
3744
+ /**
3745
+ * Remove Image Watermark
3746
+ *
3747
+ * Remove watermarks from an image using AI.
3748
+ *
3749
+ * ## Usage Notes
3750
+ * - Output is re-hosted on the CDN as a PNG.
3751
+ */
3752
+ imageRemoveWatermark(step: ImageRemoveWatermarkStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<ImageRemoveWatermarkStepOutput>>;
3753
+ /**
3754
+ * Insert Video Clips
3755
+ *
3756
+ * Insert b-roll clips into a base video at a timecode, optionally with an xfade transition.
3757
+ *
3758
+ * ## Usage Notes
3759
+ *
3760
+ */
3761
+ insertVideoClips(step: InsertVideoClipsStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<InsertVideoClipsStepOutput>>;
3762
+ /**
3763
+ * [Google Calendar] List Events
3764
+ *
3765
+ * List upcoming events from a Google Calendar, ordered by start time.
3766
+ *
3767
+ * ## Usage Notes
3768
+ * - Requires a Google OAuth connection with Calendar events scope.
3769
+ * - Only returns future events (timeMin = now).
3770
+ * - The variable receives JSON or XML-like text depending on exportType. The direct execution output always returns structured events.
3771
+ */
3772
+ listGoogleCalendarEvents(step: ListGoogleCalendarEventsStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<ListGoogleCalendarEventsStepOutput>>;
3773
+ /**
3774
+ * Evaluate Logic
3775
+ *
3776
+ * Use an AI model to evaluate which condition from a list is most true, given a context prompt.
3777
+ *
3778
+ * ## Usage Notes
3779
+ * - This is "fuzzy" logic evaluated by an AI model, not computational logic. The model picks the most accurate statement.
3780
+ * - All possible cases must be specified — there is no default/fallback case.
3781
+ * - Requires at least two cases.
3782
+ * - In workflow mode, transitions to the destinationStepId of the winning case. In direct execution, returns the winning case ID and condition.
3783
+ */
3784
+ logic(step: LogicStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<LogicStepOutput>>;
3785
+ /**
3786
+ * Make.com Run Scenario
3787
+ *
3788
+ * Trigger a Make.com (formerly Integromat) scenario via webhook and return the response.
3789
+ *
3790
+ * ## Usage Notes
3791
+ * - The webhook URL must be configured in your Make.com scenario.
3792
+ * - Input key-value pairs are sent as JSON in the POST body.
3793
+ * - Response format depends on the Make.com scenario configuration.
3794
+ */
3795
+ makeDotComRunScenario(step: MakeDotComRunScenarioStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<MakeDotComRunScenarioStepOutput>>;
3796
+ /**
3797
+ * Merge Audio
3798
+ *
3799
+ * Merge one or more clips into a single audio file.
3800
+ *
3801
+ * ## Usage Notes
3802
+ *
3803
+ */
3804
+ mergeAudio(step: MergeAudioStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<MergeAudioStepOutput>>;
3805
+ /**
3806
+ * Merge Videos
3807
+ *
3808
+ * Merge one or more clips into a single video.
3809
+ *
3810
+ * ## Usage Notes
3811
+ *
3812
+ */
3813
+ mergeVideos(step: MergeVideosStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<MergeVideosStepOutput>>;
3814
+ /**
3815
+ * Mix Audio into Video
3816
+ *
3817
+ * Mix an audio track into a video
3818
+ *
3819
+ * ## Usage Notes
3820
+ *
3821
+ */
3822
+ mixAudioIntoVideo(step: MixAudioIntoVideoStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<MixAudioIntoVideoStepOutput>>;
3823
+ /**
3824
+ * Mute Video
3825
+ *
3826
+ * Mute a video file
3827
+ *
3828
+ * ## Usage Notes
3829
+ *
3830
+ */
3831
+ muteVideo(step: MuteVideoStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<MuteVideoStepOutput>>;
3832
+ /**
3833
+ * N8N Run Node
3834
+ *
3835
+ * Trigger an n8n workflow node via webhook and return the response.
3836
+ *
3837
+ * ## Usage Notes
3838
+ * - The webhook URL must be configured in your n8n workflow.
3839
+ * - Supports GET and POST methods with optional Basic authentication.
3840
+ * - For GET requests, input values are sent as query parameters. For POST, they are sent as JSON body.
3841
+ */
3842
+ n8nRunNode(step: N8nRunNodeStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<N8nRunNodeStepOutput>>;
3843
+ /**
3844
+ * [Notion] Create Page
3845
+ *
3846
+ * Create a new page in Notion as a child of an existing page.
3847
+ *
3848
+ * ## Usage Notes
3849
+ * - Requires a Notion OAuth connection (connectionId).
3850
+ * - Content is provided as markdown and converted to Notion blocks (headings, paragraphs, lists, code, quotes).
3851
+ * - The page is created as a child of the specified parent page (pageId).
3852
+ */
3853
+ notionCreatePage(step: NotionCreatePageStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<NotionCreatePageStepOutput>>;
3854
+ /**
3855
+ * [Notion] Update Page
3856
+ *
3857
+ * Update the content of an existing Notion page.
3858
+ *
3859
+ * ## Usage Notes
3860
+ * - Requires a Notion OAuth connection (connectionId).
3861
+ * - Content is provided as markdown and converted to Notion blocks.
3862
+ * - "append" mode adds content to the end of the page. "overwrite" mode deletes all existing blocks first.
3863
+ */
3864
+ notionUpdatePage(step: NotionUpdatePageStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<NotionUpdatePageStepOutput>>;
3865
+ /**
3866
+ * [Apollo] People Search
3867
+ *
3868
+ * Search for people matching specific criteria using Apollo.io. Supports natural language queries and advanced filters.
3869
+ *
3870
+ * ## Usage Notes
3871
+ * - Can use a natural language "smartQuery" which is converted to Apollo search parameters by an AI model.
3872
+ * - Advanced params can override or supplement the smart query results.
3873
+ * - Optionally enriches returned people and/or their organizations for additional detail.
3874
+ * - Results are paginated. Use limit and page to control the result window.
3875
+ */
3876
+ peopleSearch(step: PeopleSearchStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<PeopleSearchStepOutput>>;
3877
+ /**
3878
+ * [LinkedIn] Create post
3879
+ *
3880
+ * Create a post on LinkedIn from the connected account.
3881
+ *
3882
+ * ## Usage Notes
3883
+ * - Requires a LinkedIn OAuth connection (connectionId).
3884
+ * - Supports text posts, image posts, and video posts.
3885
+ * - Visibility controls who can see the post.
3886
+ */
3887
+ postToLinkedIn(step: PostToLinkedInStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<PostToLinkedInStepOutput>>;
3888
+ /**
3889
+ * Post to Slack Channel
3890
+ *
3891
+ * Send a message to a Slack channel via a connected bot.
3892
+ *
3893
+ * ## Usage Notes
3894
+ * - The user is responsible for connecting their Slack workspace and selecting the channel
3895
+ * - Supports both simple text messages and slack blocks messages
3896
+ * - Text messages can use limited markdown (slack-only fomatting—e.g., headers are just rendered as bold)
3897
+ */
3898
+ postToSlackChannel(step: PostToSlackChannelStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<PostToSlackChannelStepOutput>>;
3899
+ /**
3900
+ * [X] Create post
3901
+ *
3902
+ * Create a post on X (Twitter) from the connected account.
3903
+ *
3904
+ * ## Usage Notes
3905
+ * - Requires an X OAuth connection (connectionId).
3906
+ * - Posts are plain text. Maximum 280 characters.
3907
+ */
3908
+ postToX(step: PostToXStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<PostToXStepOutput>>;
3909
+ /**
3910
+ * Post to Zapier
3911
+ *
3912
+ * Send data to a Zapier Zap via webhook and return the response.
3913
+ *
3914
+ * ## Usage Notes
3915
+ * - The webhook URL must be configured in the Zapier Zap settings
3916
+ * - Input keys and values are sent as the JSON body of the POST request
3917
+ * - The webhook response (JSON or plain text) is returned as the output
3918
+ */
3919
+ postToZapier(step: PostToZapierStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<PostToZapierStepOutput>>;
3920
+ /**
3921
+ * Query Data Source
3922
+ *
3923
+ * Search a vector data source (RAG) and return relevant document chunks.
3924
+ *
3925
+ * ## Usage Notes
3926
+ * - Queries a vectorized data source and returns the most relevant chunks.
3927
+ * - Useful for retrieval-augmented generation (RAG) workflows.
3928
+ */
3929
+ queryDataSource(step: QueryDataSourceStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<QueryDataSourceStepOutput>>;
3930
+ /**
3931
+ * Query External SQL Database
3932
+ *
3933
+ * Execute a SQL query against an external database connected to the workspace.
3934
+ *
3935
+ * ## Usage Notes
3936
+ * - Requires a database connection configured in the workspace.
3937
+ * - Supports PostgreSQL (including Supabase), MySQL, and MSSQL.
3938
+ * - Results can be returned as JSON or CSV.
3939
+ */
3940
+ queryExternalDatabase(step: QueryExternalDatabaseStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<QueryExternalDatabaseStepOutput>>;
3941
+ /**
3942
+ * Redact PII
3943
+ *
3944
+ * Replace personally identifiable information in text with placeholders using Microsoft Presidio.
3945
+ *
3946
+ * ## Usage Notes
3947
+ * - PII is replaced with entity type placeholders (e.g. "Call me at <PHONE_NUMBER>").
3948
+ * - If entities is empty, returns empty text immediately without processing.
3949
+ */
3950
+ redactPII(step: RedactPIIStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<RedactPIIStepOutput>>;
3951
+ /**
3952
+ * Remove Background From Image
3953
+ *
3954
+ * Remove the background from an image using AI, producing a transparent PNG.
3955
+ *
3956
+ * ## Usage Notes
3957
+ * - Uses the Bria background removal model via fal.ai.
3958
+ * - Output is re-hosted on the CDN as a PNG with transparency.
3959
+ */
3960
+ removeBackgroundFromImage(step: RemoveBackgroundFromImageStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<RemoveBackgroundFromImageStepOutput>>;
3961
+ /**
3962
+ * Resize Video
3963
+ *
3964
+ * Resize a video file
3965
+ *
3966
+ * ## Usage Notes
3967
+ *
3968
+ */
3969
+ resizeVideo(step: ResizeVideoStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<ResizeVideoStepOutput>>;
3970
+ /**
3971
+ * Run Packaged Workflow
3972
+ *
3973
+ * Run a packaged workflow ("custom block")
3974
+ *
3975
+ * ## Usage Notes
3976
+ * - From the user's perspective, packaged workflows are just ordinary blocks. Behind the scenes, they operate like packages/libraries in a programming language, letting the user execute custom functionality.
3977
+ * - Some of these packaged workflows are available as part of MindStudio's "Standard Library" and available to every user.
3978
+ * - Available packaged workflows are documented here as individual blocks, but the runPackagedWorkflow block is how they need to be wrapped in order to be executed correctly.
3979
+ */
3980
+ runPackagedWorkflow(step: RunPackagedWorkflowStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<RunPackagedWorkflowStepOutput>>;
3981
+ /**
3982
+ * Run Workflow
3983
+ *
3984
+ * Spawn one or more child workflows (advanced)
3985
+ *
3986
+ * ## Usage Notes
3987
+ * - Spawned workflows are executed in their own contexts and scopes, they do not have access to any variables etc from the parent workflow
3988
+ * - This is an ADVANCED feature and should not be used unless you really know what you are doing
3989
+ * - Child workflows must be set up to receive launch variables and return variables via an end block. The input and output variables properties map variables between scopes
3990
+ */
3991
+ runWorkflow(step: RunWorkflowStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<RunWorkflowStepOutput>>;
3992
+ /**
3993
+ * [Facebook] Scrape Page
3994
+ *
3995
+ * Scrape a Facebook page
3996
+ */
3997
+ scrapeFacebookPage(step: ScrapeFacebookPageStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<ScrapeFacebookPageStepOutput>>;
3998
+ /**
3999
+ * [Facebook] Scrape Posts for Page
4000
+ *
4001
+ * Get all the posts for a Facebook page
4002
+ */
4003
+ scrapeFacebookPosts(step: ScrapeFacebookPostsStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<ScrapeFacebookPostsStepOutput>>;
4004
+ /**
4005
+ * [Instagram] Scrape Comments
4006
+ *
4007
+ * Get all the comments for an Instagram post
4008
+ */
4009
+ scrapeInstagramComments(step: ScrapeInstagramCommentsStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<ScrapeInstagramCommentsStepOutput>>;
4010
+ /**
4011
+ * [Instagram] Scrape Mentions
4012
+ *
4013
+ * Scrape an Instagram profile's mentions
4014
+ */
4015
+ scrapeInstagramMentions(step: ScrapeInstagramMentionsStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<ScrapeInstagramMentionsStepOutput>>;
4016
+ /**
4017
+ * [Instagram] Scrape Posts
4018
+ *
4019
+ * Get all the posts for an Instagram profile
4020
+ */
4021
+ scrapeInstagramPosts(step: ScrapeInstagramPostsStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<ScrapeInstagramPostsStepOutput>>;
4022
+ /**
4023
+ * [Instagram] Scrape Profile
4024
+ *
4025
+ * Scrape an Instagram profile
4026
+ */
4027
+ scrapeInstagramProfile(step: ScrapeInstagramProfileStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<ScrapeInstagramProfileStepOutput>>;
4028
+ /**
4029
+ * [Instagram] Scrape Reels
4030
+ *
4031
+ * Get all the reels for an Instagram profile
4032
+ */
4033
+ scrapeInstagramReels(step: ScrapeInstagramReelsStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<ScrapeInstagramReelsStepOutput>>;
4034
+ /**
4035
+ * Scrape LinkedIn Company
4036
+ *
4037
+ * Scrape public company data from a LinkedIn company page.
4038
+ *
4039
+ * ## Usage Notes
4040
+ * - Requires a LinkedIn company URL (e.g. https://www.linkedin.com/company/mindstudioai).
4041
+ * - Returns structured company data including description, employees, updates, and similar companies.
4042
+ */
4043
+ scrapeLinkedInCompany(step: ScrapeLinkedInCompanyStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<ScrapeLinkedInCompanyStepOutput>>;
4044
+ /**
4045
+ * Scrape LinkedIn Profile
4046
+ *
4047
+ * Scrape public profile data from a LinkedIn profile page.
4048
+ *
4049
+ * ## Usage Notes
4050
+ * - Requires a LinkedIn profile URL (e.g. https://www.linkedin.com/in/username).
4051
+ * - Returns structured profile data including experience, education, articles, and activities.
4052
+ */
4053
+ scrapeLinkedInProfile(step: ScrapeLinkedInProfileStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<ScrapeLinkedInProfileStepOutput>>;
4054
+ /**
4055
+ * [Meta Threads] Scrape Profile
4056
+ *
4057
+ * Scrape a Meta Threads profile
4058
+ */
4059
+ scrapeMetaThreadsProfile(step: ScrapeMetaThreadsProfileStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<ScrapeMetaThreadsProfileStepOutput>>;
4060
+ /**
4061
+ * Scrape URL
4062
+ *
4063
+ * Extract text, HTML, or structured content from one or more web pages.
4064
+ *
4065
+ * ## Usage Notes
4066
+ * - Accepts a single URL or multiple URLs (as a JSON array, comma-separated, or newline-separated).
4067
+ * - Output format controls the result shape: "text" returns markdown, "html" returns raw HTML, "json" returns structured scraper data.
4068
+ * - Can optionally capture a screenshot of each page.
4069
+ */
4070
+ scrapeUrl(step: ScrapeUrlStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<ScrapeUrlStepOutput>>;
4071
+ /**
4072
+ * Scrape X Post
4073
+ *
4074
+ * Scrape data from a single X (Twitter) post by URL.
4075
+ *
4076
+ * ## Usage Notes
4077
+ * - Returns structured post data (text, html, optional json/screenshot/metadata).
4078
+ * - Optionally saves the text content to a variable.
4079
+ */
4080
+ scrapeXPost(step: ScrapeXPostStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<ScrapeXPostStepOutput>>;
4081
+ /**
4082
+ * Scrape X Profile
4083
+ *
4084
+ * Scrape public profile data from an X (Twitter) account by URL.
4085
+ *
4086
+ * ## Usage Notes
4087
+ * - Returns structured profile data.
4088
+ * - Optionally saves the result to a variable.
4089
+ */
4090
+ scrapeXProfile(step: ScrapeXProfileStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<ScrapeXProfileStepOutput>>;
4091
+ /**
4092
+ * Search Google
4093
+ *
4094
+ * Search the web using Google and return structured results.
4095
+ *
4096
+ * ## Usage Notes
4097
+ * - Defaults to us/english, but can optionally specify country and/or language.
4098
+ * - Defaults to any time, but can optionally specify last hour, last day, week, month, or year.
4099
+ * - Defaults to top 30 results, but can specify 1 to 100 results to return.
4100
+ */
4101
+ searchGoogle(step: SearchGoogleStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<SearchGoogleStepOutput>>;
4102
+ /**
4103
+ * Search Google Images
4104
+ *
4105
+ * Search Google Images and return image results with URLs and metadata.
4106
+ *
4107
+ * ## Usage Notes
4108
+ * - Defaults to us/english, but can optionally specify country and/or language.
4109
+ * - Defaults to any time, but can optionally specify last hour, last day, week, month, or year.
4110
+ * - Defaults to top 30 results, but can specify 1 to 100 results to return.
4111
+ */
4112
+ searchGoogleImages(step: SearchGoogleImagesStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<SearchGoogleImagesStepOutput>>;
4113
+ /**
4114
+ * Search Google News
4115
+ *
4116
+ * Search Google News for recent news articles matching a query.
4117
+ *
4118
+ * ## Usage Notes
4119
+ * - Defaults to top 30 results, but can specify 1 to 100 results to return.
4120
+ */
4121
+ searchGoogleNews(step: SearchGoogleNewsStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<SearchGoogleNewsStepOutput>>;
4122
+ /**
4123
+ * Search Google Trends
4124
+ *
4125
+ * Fetch Google Trends data for a search term.
4126
+ *
4127
+ * ## Usage Notes
4128
+ * - date accepts shorthand ("now 1-H", "today 1-m", "today 5-y", etc.) or custom "yyyy-mm-dd yyyy-mm-dd" ranges.
4129
+ * - data_type controls the shape of returned data: TIMESERIES, GEO_MAP, GEO_MAP_0, RELATED_TOPICS, or RELATED_QUERIES.
4130
+ */
4131
+ searchGoogleTrends(step: SearchGoogleTrendsStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<SearchGoogleTrendsStepOutput>>;
4132
+ /**
4133
+ * Search Perplexity
4134
+ *
4135
+ * Search the web using the Perplexity API and return structured results.
4136
+ *
4137
+ * ## Usage Notes
4138
+ * - Defaults to US results. Use countryCode (ISO code) to filter by country.
4139
+ * - Returns 10 results by default, configurable from 1 to 20.
4140
+ * - The variable receives text or JSON depending on exportType. The direct execution output always returns structured results.
4141
+ */
4142
+ searchPerplexity(step: SearchPerplexityStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<SearchPerplexityStepOutput>>;
4143
+ /**
4144
+ * [X] Search Posts
4145
+ *
4146
+ * Search recent X (Twitter) posts matching a query.
4147
+ *
4148
+ * ## Usage Notes
4149
+ * - Searches only the past 7 days of posts.
4150
+ * - Query supports X API v2 search operators (up to 512 characters).
4151
+ *
4152
+ * Available search operators in query:
4153
+ *
4154
+ * | Operator | Description |
4155
+ * | -----------------| -------------------------------------------------|
4156
+ * | from: | Posts from a specific user (e.g., from:elonmusk) |
4157
+ * | to: | Posts sent to a specific user (e.g., to:NASA) |
4158
+ * | @ | Mentions a user (e.g., @openai) |
4159
+ * | # | Hashtag search (e.g., #AI) |
4160
+ * | is:retweet | Filters retweets |
4161
+ * | is:reply | Filters replies |
4162
+ * | has:media | Posts containing media (images, videos, or GIFs) |
4163
+ * | has:links | Posts containing URLs |
4164
+ * | lang: | Filters by language (e.g., lang:en) |
4165
+ * | - | Excludes specific terms (e.g., -spam) |
4166
+ * | () | Groups terms or operators (e.g., (AI OR ML)) |
4167
+ * | AND, OR, NOT | Boolean logic for combining or excluding terms |
4168
+ *
4169
+ * Conjunction-Required Operators (must be combined with a standalone operator):
4170
+ *
4171
+ * | Operator | Description |
4172
+ * | ------------ | -----------------------------------------------|
4173
+ * | has:media | Posts containing media (images, videos, or GIFs) |
4174
+ * | has:links | Posts containing URLs |
4175
+ * | is:retweet | Filters retweets |
4176
+ * | is:reply | Filters replies |
4177
+ *
4178
+ * For example, has:media alone is invalid, but #AI has:media is valid.
4179
+ */
4180
+ searchXPosts(step: SearchXPostsStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<SearchXPostsStepOutput>>;
4181
+ /**
4182
+ * [YouTube] Search Videos
4183
+ *
4184
+ * Search for YouTube videos by keyword.
4185
+ *
4186
+ * ## Usage Notes
4187
+ * - Supports pagination (up to 5 pages) and country/language filters.
4188
+ * - Use the filter/filterType fields for YouTube search parameter (sp) filters.
4189
+ */
4190
+ searchYoutube(step: SearchYoutubeStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<SearchYoutubeStepOutput>>;
4191
+ /**
4192
+ * [YouTube] Search Trends
4193
+ *
4194
+ * Retrieve trending videos on YouTube by category and region.
4195
+ *
4196
+ * ## Usage Notes
4197
+ * - Categories: "now" (trending now), "music", "gaming", "films".
4198
+ * - Supports country and language filtering.
4199
+ */
4200
+ searchYoutubeTrends(step: SearchYoutubeTrendsStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<SearchYoutubeTrendsStepOutput>>;
4201
+ /**
4202
+ * Send Email
4203
+ *
4204
+ * Send an email to one or more configured recipient addresses.
4205
+ *
4206
+ * ## Usage Notes
4207
+ * - Recipient email addresses are resolved from OAuth connections configured by the app creator. The user running the workflow does not specify the recipient directly.
4208
+ * - If the body is a URL to a hosted HTML file on the CDN, the HTML is fetched and used as the email body.
4209
+ * - When generateHtml is enabled, the body text is converted to a styled HTML email using an AI model.
4210
+ * - connectionId can be a comma-separated list to send to multiple recipients.
4211
+ * - The special connectionId "trigger_email" uses the email address that triggered the workflow.
4212
+ */
4213
+ sendEmail(step: SendEmailStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<SendEmailStepOutput>>;
4214
+ /**
4215
+ * Send SMS
4216
+ *
4217
+ * Send an SMS text message to a phone number configured via OAuth connection.
4218
+ *
4219
+ * ## Usage Notes
4220
+ * - User is responsible for configuring the connection to the number (MindStudio requires double opt-in to prevent spam)
4221
+ */
4222
+ sendSMS(step: SendSMSStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<SendSMSStepOutput>>;
4223
+ /**
4224
+ * Set Run Title
4225
+ *
4226
+ * Set the title of the agent run for the user's history
4227
+ */
4228
+ setRunTitle(step: SetRunTitleStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<SetRunTitleStepOutput>>;
4229
+ /**
4230
+ * Set Variable
4231
+ *
4232
+ * Explicitly set a variable to a given value.
4233
+ *
4234
+ * ## Usage Notes
4235
+ * - Useful for bootstrapping global variables or setting constants.
4236
+ * - The variable name and value both support variable interpolation.
4237
+ * - The type field is a UI hint only (controls input widget in the editor).
4238
+ */
4239
+ setVariable(step: SetVariableStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<SetVariableStepOutput>>;
4240
+ /**
4241
+ * Send Telegram Audio
4242
+ *
4243
+ * Send an audio file to a Telegram chat as music or a voice note via a bot.
4244
+ *
4245
+ * ## Usage Notes
4246
+ * - "audio" mode sends as a standard audio file. "voice" mode sends as a voice message (re-uploads the file for large file support).
4247
+ */
4248
+ telegramSendAudio(step: TelegramSendAudioStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<TelegramSendAudioStepOutput>>;
4249
+ /**
4250
+ * Send Telegram File
4251
+ *
4252
+ * Send a document/file to a Telegram chat via a bot.
4253
+ */
4254
+ telegramSendFile(step: TelegramSendFileStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<TelegramSendFileStepOutput>>;
4255
+ /**
4256
+ * Send Telegram Image
4257
+ *
4258
+ * Send an image to a Telegram chat via a bot.
4259
+ */
4260
+ telegramSendImage(step: TelegramSendImageStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<TelegramSendImageStepOutput>>;
4261
+ /**
4262
+ * Send Telegram Message
4263
+ *
4264
+ * Send a text message to a Telegram chat via a bot.
4265
+ *
4266
+ * ## Usage Notes
4267
+ * - Messages are sent using MarkdownV2 formatting. Special characters are auto-escaped.
4268
+ * - botToken format is "botId:token" — both parts are required.
4269
+ */
4270
+ telegramSendMessage(step: TelegramSendMessageStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<TelegramSendMessageStepOutput>>;
4271
+ /**
4272
+ * Send Telegram Video
4273
+ *
4274
+ * Send a video to a Telegram chat via a bot.
4275
+ */
4276
+ telegramSendVideo(step: TelegramSendVideoStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<TelegramSendVideoStepOutput>>;
4277
+ /**
4278
+ * Telegram Set Typing
4279
+ *
4280
+ * Show the "typing..." indicator in a Telegram chat via a bot.
4281
+ *
4282
+ * ## Usage Notes
4283
+ * - The typing indicator automatically expires after a few seconds. Use this right before sending a message for a natural feel.
4284
+ */
4285
+ telegramSetTyping(step: TelegramSetTypingStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<TelegramSetTypingStepOutput>>;
4286
+ /**
4287
+ * Text to Speech
4288
+ *
4289
+ * Generate an audio file from provided text using a speech model.
4290
+ *
4291
+ * ## Usage Notes
4292
+ * - The text field contains the exact words to be spoken (not instructions).
4293
+ * - In foreground mode, the audio is displayed to the user. In background mode, the URL is saved to a variable.
4294
+ */
4295
+ textToSpeech(step: TextToSpeechStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<TextToSpeechStepOutput>>;
4296
+ /**
4297
+ * Transcribe Audio
4298
+ *
4299
+ * Convert an audio file to text using a transcription model.
4300
+ *
4301
+ * ## Usage Notes
4302
+ * - The prompt field provides optional context to improve transcription accuracy (e.g. language, speaker names, domain).
4303
+ */
4304
+ transcribeAudio(step: TranscribeAudioStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<TranscribeAudioStepOutput>>;
4305
+ /**
4306
+ * Trim Media
4307
+ *
4308
+ * Trim an audio or video clip
4309
+ *
4310
+ * ## Usage Notes
4311
+ *
4312
+ */
4313
+ trimMedia(step: TrimMediaStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<TrimMediaStepOutput>>;
4314
+ /**
4315
+ * [Google Calendar] Update Event
4316
+ *
4317
+ * Update an existing event on a Google Calendar. Only specified fields are changed.
4318
+ *
4319
+ * ## Usage Notes
4320
+ * - Requires a Google OAuth connection with Calendar events scope.
4321
+ * - Fetches the existing event first, then applies only the provided updates. Omitted fields are left unchanged.
4322
+ * - Attendees are specified as one email address per line, and replace the entire attendee list.
4323
+ */
4324
+ updateGoogleCalendarEvent(step: UpdateGoogleCalendarEventStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<UpdateGoogleCalendarEventStepOutput>>;
4325
+ /**
4326
+ * [Google] Update Google Doc
4327
+ *
4328
+ * Update the contents of an existing Google Document.
4329
+ *
4330
+ * ## Usage Notes
4331
+ * - operationType controls how content is applied: "addToTop" prepends, "addToBottom" appends, "overwrite" replaces all content.
4332
+ * - textType determines how the text field is interpreted: "plain" for plain text, "html" for HTML markup, "markdown" for Markdown.
4333
+ */
4334
+ updateGoogleDoc(step: UpdateGoogleDocStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<UpdateGoogleDocStepOutput>>;
4335
+ /**
4336
+ * [Google] Update Google Sheet
4337
+ *
4338
+ * Update a Google Spreadsheet with new data.
4339
+ *
4340
+ * ## Usage Notes
4341
+ * - operationType controls how data is written: "addToBottom" appends rows, "overwrite" replaces all data, "range" writes to a specific cell range.
4342
+ * - Data should be provided as CSV in the text field.
4343
+ */
4344
+ updateGoogleSheet(step: UpdateGoogleSheetStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<UpdateGoogleSheetStepOutput>>;
4345
+ /**
4346
+ * Upscale Image
4347
+ *
4348
+ * Increase the resolution of an image using AI upscaling.
4349
+ *
4350
+ * ## Usage Notes
4351
+ * - Output is re-hosted on the CDN as a PNG.
4352
+ */
4353
+ upscaleImage(step: UpscaleImageStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<UpscaleImageStepOutput>>;
4354
+ /**
4355
+ * Upscale Video
4356
+ *
4357
+ * Upscale a video file
4358
+ *
4359
+ * ## Usage Notes
4360
+ *
4361
+ */
4362
+ upscaleVideo(step: UpscaleVideoStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<UpscaleVideoStepOutput>>;
4363
+ /**
4364
+ * User Message
4365
+ *
4366
+ * Send a message to an AI model and return the response, or echo a system message.
4367
+ *
4368
+ * ## Usage Notes
4369
+ * - Source "user" sends the message to an LLM and returns the model's response.
4370
+ * - Source "system" echoes the message content directly (no AI call).
4371
+ * - Mode "background" saves the result to a variable. Mode "foreground" streams it to the user (not available in direct execution).
4372
+ * - Structured output (JSON/CSV) can be enforced via structuredOutputType and structuredOutputExample.
4373
+ */
4374
+ userMessage(step: UserMessageStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<UserMessageStepOutput>>;
4375
+ /**
4376
+ * Video Face Swap
4377
+ *
4378
+ * Swap faces in a video file
4379
+ *
4380
+ * ## Usage Notes
4381
+ *
4382
+ */
4383
+ videoFaceSwap(step: VideoFaceSwapStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<VideoFaceSwapStepOutput>>;
4384
+ /**
4385
+ * Remove Video Background
4386
+ *
4387
+ * Remove or replace background from a video
4388
+ *
4389
+ * ## Usage Notes
4390
+ *
4391
+ */
4392
+ videoRemoveBackground(step: VideoRemoveBackgroundStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<VideoRemoveBackgroundStepOutput>>;
4393
+ /**
4394
+ * Remove Video Watermark
4395
+ *
4396
+ * Remove a watermark from a video
4397
+ *
4398
+ * ## Usage Notes
4399
+ *
4400
+ */
4401
+ videoRemoveWatermark(step: VideoRemoveWatermarkStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<VideoRemoveWatermarkStepOutput>>;
4402
+ /**
4403
+ * Watermark Image
4404
+ *
4405
+ * Overlay a watermark image onto another image.
4406
+ *
4407
+ * ## Usage Notes
4408
+ * - The watermark is placed at the specified corner with configurable padding and width.
4409
+ */
4410
+ watermarkImage(step: WatermarkImageStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<WatermarkImageStepOutput>>;
4411
+ /**
4412
+ * Watermark Video
4413
+ *
4414
+ * Add an image watermark to a video
4415
+ *
4416
+ * ## Usage Notes
4417
+ *
4418
+ */
4419
+ watermarkVideo(step: WatermarkVideoStepInput, options?: StepExecutionOptions): Promise<StepExecutionResult<WatermarkVideoStepOutput>>;
4420
+ }
4421
+
4422
+ /** An AI model available on MindStudio. */
4423
+ interface MindStudioModel {
4424
+ id?: string;
4425
+ /** Display name of the model. */
4426
+ name?: string;
4427
+ /** Full model identifier from the provider. */
4428
+ rawName?: string;
4429
+ /** One of: `llm_chat`, `image_generation`, `video_generation`, `video_analysis`, `text_to_speech`, `vision`, `transcription`. */
4430
+ type?: "llm_chat" | "image_generation" | "video_generation" | "video_analysis" | "text_to_speech" | "vision" | "transcription";
4431
+ publisher?: string;
4432
+ maxTemperature?: number;
4433
+ maxResponseSize?: number;
4434
+ /** Accepted input types for this model (text, imageUrl, videoUrl, etc.). */
4435
+ inputs?: Record<string, unknown>[];
4436
+ contextWindow?: number;
4437
+ tags?: string;
4438
+ }
4439
+ /** Supported model type categories for filtering. */
4440
+ type ModelType = "llm_chat" | "image_generation" | "video_generation" | "video_analysis" | "text_to_speech" | "vision" | "transcription";
4441
+ interface HelperMethods {
4442
+ /**
4443
+ * List all available AI models.
4444
+ *
4445
+ * Returns models across all categories (chat, image generation, video, etc.).
4446
+ * Use `listModelsByType()` to filter by category.
4447
+ */
4448
+ listModels(): Promise<{
4449
+ models: MindStudioModel[];
4450
+ }>;
4451
+ /**
4452
+ * List AI models filtered by type.
4453
+ *
4454
+ * @param modelType - The category to filter by (e.g. "llm_chat", "image_generation").
4455
+ */
4456
+ listModelsByType(modelType: ModelType): Promise<{
4457
+ models: MindStudioModel[];
4458
+ }>;
4459
+ /**
4460
+ * List all available connector services (Slack, Google, HubSpot, etc.).
4461
+ */
4462
+ listConnectors(): Promise<{
4463
+ services: Array<{
4464
+ service: Record<string, unknown>;
4465
+ actions: Record<string, unknown>[];
4466
+ }>;
4467
+ }>;
4468
+ /**
4469
+ * Get details for a single connector service.
4470
+ *
4471
+ * @param serviceId - The connector service ID.
4472
+ */
4473
+ getConnector(serviceId: string): Promise<{
4474
+ service: Record<string, unknown>;
4475
+ }>;
4476
+ }
4477
+
4478
+ /**
4479
+ * Error thrown when a MindStudio API request fails.
4480
+ *
4481
+ * Contains the HTTP status code, an error code from the API,
4482
+ * and any additional details returned in the response body.
4483
+ */
4484
+ declare class MindStudioError extends Error {
4485
+ /** Machine-readable error code from the API (e.g. "invalid_step_config"). */
4486
+ readonly code: string;
4487
+ /** HTTP status code of the failed request. */
4488
+ readonly status: number;
4489
+ /** Raw error body from the API, if available. */
4490
+ readonly details?: unknown | undefined;
4491
+ readonly name = "MindStudioError";
4492
+ constructor(message: string,
4493
+ /** Machine-readable error code from the API (e.g. "invalid_step_config"). */
4494
+ code: string,
4495
+ /** HTTP status code of the failed request. */
4496
+ status: number,
4497
+ /** Raw error body from the API, if available. */
4498
+ details?: unknown | undefined);
4499
+ }
4500
+
4501
+ /** MindStudioAgent with all generated step and helper methods. */
4502
+ type MindStudioAgent = MindStudioAgent$1 & StepMethods & HelperMethods;
4503
+ /** {@inheritDoc MindStudioAgent} */
4504
+ declare const MindStudioAgent: {
4505
+ new (options?: AgentOptions): MindStudioAgent;
4506
+ };
4721
4507
 
4722
- export { type ActiveCampaignAddNoteStepInput, type ActiveCampaignAddNoteStepOutput, type ActiveCampaignCreateContactStepInput, type ActiveCampaignCreateContactStepOutput, type AddSubtitlesToVideoStepInput, type AddSubtitlesToVideoStepOutput, type AgentOptions, type AirtableCreateUpdateRecordStepInput, type AirtableCreateUpdateRecordStepOutput, type AirtableDeleteRecordStepInput, type AirtableDeleteRecordStepOutput, type AirtableGetRecordStepInput, type AirtableGetRecordStepOutput, type AirtableGetTableRecordsStepInput, type AirtableGetTableRecordsStepOutput, type AnalyzeImageStepInput, type AnalyzeImageStepOutput, type AnalyzeVideoStepInput, type AnalyzeVideoStepOutput, type CaptureThumbnailStepInput, type CaptureThumbnailStepOutput, type CodaCreateUpdatePageStepInput, type CodaCreateUpdatePageStepOutput, type CodaCreateUpdateRowStepInput, type CodaCreateUpdateRowStepOutput, type CodaFindRowStepInput, type CodaFindRowStepOutput, type CodaGetPageStepInput, type CodaGetPageStepOutput, type CodaGetTableRowsStepInput, type CodaGetTableRowsStepOutput, type ConvertPdfToImagesStepInput, type ConvertPdfToImagesStepOutput, type CreateGoogleCalendarEventStepInput, type CreateGoogleCalendarEventStepOutput, type CreateGoogleDocStepInput, type CreateGoogleDocStepOutput, type CreateGoogleSheetStepInput, type CreateGoogleSheetStepOutput, type DeleteGoogleCalendarEventStepInput, type DeleteGoogleCalendarEventStepOutput, type DetectPIIStepInput, type DetectPIIStepOutput, type DownloadVideoStepInput, type DownloadVideoStepOutput, type EnhanceImageGenerationPromptStepInput, type EnhanceImageGenerationPromptStepOutput, type EnhanceVideoGenerationPromptStepInput, type EnhanceVideoGenerationPromptStepOutput, type EnrichPersonStepInput, type EnrichPersonStepOutput, type ExtractAudioFromVideoStepInput, type ExtractAudioFromVideoStepOutput, type ExtractTextStepInput, type ExtractTextStepOutput, type FetchGoogleDocStepInput, type FetchGoogleDocStepOutput, type FetchGoogleSheetStepInput, type FetchGoogleSheetStepOutput, type FetchSlackChannelHistoryStepInput, type FetchSlackChannelHistoryStepOutput, type FetchYoutubeCaptionsStepInput, type FetchYoutubeCaptionsStepOutput, type FetchYoutubeChannelStepInput, type FetchYoutubeChannelStepOutput, type FetchYoutubeCommentsStepInput, type FetchYoutubeCommentsStepOutput, type FetchYoutubeVideoStepInput, type FetchYoutubeVideoStepOutput, type GenerateChartStepInput, type GenerateChartStepOutput, type GenerateImageStepInput, type GenerateImageStepOutput, type GenerateLipsyncStepInput, type GenerateLipsyncStepOutput, type GenerateMusicStepInput, type GenerateMusicStepOutput, type GeneratePdfStepInput, type GeneratePdfStepOutput, type GenerateStaticVideoFromImageStepInput, type GenerateStaticVideoFromImageStepOutput, type GenerateVideoStepInput, type GenerateVideoStepOutput, type GetGoogleCalendarEventStepInput, type GetGoogleCalendarEventStepOutput, type GetMediaMetadataStepInput, type GetMediaMetadataStepOutput, type HttpRequestStepInput, type HttpRequestStepOutput, type HubspotCreateCompanyStepInput, type HubspotCreateCompanyStepOutput, type HubspotCreateContactStepInput, type HubspotCreateContactStepOutput, type HubspotGetCompanyStepInput, type HubspotGetCompanyStepOutput, type HubspotGetContactStepInput, type HubspotGetContactStepOutput, type HunterApiCompanyEnrichmentStepInput, type HunterApiCompanyEnrichmentStepOutput, type HunterApiDomainSearchStepInput, type HunterApiDomainSearchStepOutput, type HunterApiEmailFinderStepInput, type HunterApiEmailFinderStepOutput, type HunterApiEmailVerificationStepInput, type HunterApiEmailVerificationStepOutput, type HunterApiPersonEnrichmentStepInput, type HunterApiPersonEnrichmentStepOutput, type ImageFaceSwapStepInput, type ImageFaceSwapStepOutput, type ImageRemoveWatermarkStepInput, type ImageRemoveWatermarkStepOutput, type InsertVideoClipsStepInput, type InsertVideoClipsStepOutput, type ListGoogleCalendarEventsStepInput, type ListGoogleCalendarEventsStepOutput, type LogicStepInput, type LogicStepOutput, type MakeDotComRunScenarioStepInput, type MakeDotComRunScenarioStepOutput, type MergeAudioStepInput, type MergeAudioStepOutput, type MergeVideosStepInput, type MergeVideosStepOutput, MindStudioAgent, MindStudioError, type MindStudioModel, type MixAudioIntoVideoStepInput, type MixAudioIntoVideoStepOutput, type ModelType, type MuteVideoStepInput, type MuteVideoStepOutput, type N8nRunNodeStepInput, type N8nRunNodeStepOutput, type NotionCreatePageStepInput, type NotionCreatePageStepOutput, type NotionUpdatePageStepInput, type NotionUpdatePageStepOutput, type PeopleSearchStepInput, type PeopleSearchStepOutput, type PostToLinkedInStepInput, type PostToLinkedInStepOutput, type PostToSlackChannelStepInput, type PostToSlackChannelStepOutput, type PostToXStepInput, type PostToXStepOutput, type PostToZapierStepInput, type PostToZapierStepOutput, type QueryDataSourceStepInput, type QueryDataSourceStepOutput, type QueryExternalDatabaseStepInput, type QueryExternalDatabaseStepOutput, type RedactPIIStepInput, type RedactPIIStepOutput, type RemoveBackgroundFromImageStepInput, type RemoveBackgroundFromImageStepOutput, type ResizeVideoStepInput, type ResizeVideoStepOutput, type RunPackagedWorkflowStepInput, type RunPackagedWorkflowStepOutput, type RunWorkflowStepInput, type RunWorkflowStepOutput, type ScrapeFacebookPageStepInput, type ScrapeFacebookPageStepOutput, type ScrapeFacebookPostsStepInput, type ScrapeFacebookPostsStepOutput, type ScrapeInstagramCommentsStepInput, type ScrapeInstagramCommentsStepOutput, type ScrapeInstagramMentionsStepInput, type ScrapeInstagramMentionsStepOutput, type ScrapeInstagramPostsStepInput, type ScrapeInstagramPostsStepOutput, type ScrapeInstagramProfileStepInput, type ScrapeInstagramProfileStepOutput, type ScrapeInstagramReelsStepInput, type ScrapeInstagramReelsStepOutput, type ScrapeLinkedInCompanyStepInput, type ScrapeLinkedInCompanyStepOutput, type ScrapeLinkedInProfileStepInput, type ScrapeLinkedInProfileStepOutput, type ScrapeMetaThreadsProfileStepInput, type ScrapeMetaThreadsProfileStepOutput, type ScrapeUrlStepInput, type ScrapeUrlStepOutput, type ScrapeXPostStepInput, type ScrapeXPostStepOutput, type ScrapeXProfileStepInput, type ScrapeXProfileStepOutput, type SearchGoogleImagesStepInput, type SearchGoogleImagesStepOutput, type SearchGoogleNewsStepInput, type SearchGoogleNewsStepOutput, type SearchGoogleStepInput, type SearchGoogleStepOutput, type SearchGoogleTrendsStepInput, type SearchGoogleTrendsStepOutput, type SearchPerplexityStepInput, type SearchPerplexityStepOutput, type SearchXPostsStepInput, type SearchXPostsStepOutput, type SearchYoutubeStepInput, type SearchYoutubeStepOutput, type SearchYoutubeTrendsStepInput, type SearchYoutubeTrendsStepOutput, type SendEmailStepInput, type SendEmailStepOutput, type SendSMSStepInput, type SendSMSStepOutput, type SetRunTitleStepInput, type SetRunTitleStepOutput, type SetVariableStepInput, type SetVariableStepOutput, type StepExecutionOptions, type StepExecutionResult, type StepInputMap, type StepName, type StepOutputMap, type TelegramSendAudioStepInput, type TelegramSendAudioStepOutput, type TelegramSendFileStepInput, type TelegramSendFileStepOutput, type TelegramSendImageStepInput, type TelegramSendImageStepOutput, type TelegramSendMessageStepInput, type TelegramSendMessageStepOutput, type TelegramSendVideoStepInput, type TelegramSendVideoStepOutput, type TelegramSetTypingStepInput, type TelegramSetTypingStepOutput, type TextToSpeechStepInput, type TextToSpeechStepOutput, type TranscribeAudioStepInput, type TranscribeAudioStepOutput, type TrimMediaStepInput, type TrimMediaStepOutput, type UpdateGoogleCalendarEventStepInput, type UpdateGoogleCalendarEventStepOutput, type UpdateGoogleDocStepInput, type UpdateGoogleDocStepOutput, type UpdateGoogleSheetStepInput, type UpdateGoogleSheetStepOutput, type UpscaleImageStepInput, type UpscaleImageStepOutput, type UpscaleVideoStepInput, type UpscaleVideoStepOutput, type UserMessageStepInput, type UserMessageStepOutput, type VideoFaceSwapStepInput, type VideoFaceSwapStepOutput, type VideoRemoveBackgroundStepInput, type VideoRemoveBackgroundStepOutput, type VideoRemoveWatermarkStepInput, type VideoRemoveWatermarkStepOutput, type WatermarkImageStepInput, type WatermarkImageStepOutput, type WatermarkVideoStepInput, type WatermarkVideoStepOutput, applyHelperMethods, applyStepMethods };
4508
+ export { type ActiveCampaignAddNoteStepInput, type ActiveCampaignAddNoteStepOutput, type ActiveCampaignCreateContactStepInput, type ActiveCampaignCreateContactStepOutput, type AddSubtitlesToVideoStepInput, type AddSubtitlesToVideoStepOutput, type AgentOptions, type AirtableCreateUpdateRecordStepInput, type AirtableCreateUpdateRecordStepOutput, type AirtableDeleteRecordStepInput, type AirtableDeleteRecordStepOutput, type AirtableGetRecordStepInput, type AirtableGetRecordStepOutput, type AirtableGetTableRecordsStepInput, type AirtableGetTableRecordsStepOutput, type AnalyzeImageStepInput, type AnalyzeImageStepOutput, type AnalyzeVideoStepInput, type AnalyzeVideoStepOutput, type CaptureThumbnailStepInput, type CaptureThumbnailStepOutput, type CodaCreateUpdatePageStepInput, type CodaCreateUpdatePageStepOutput, type CodaCreateUpdateRowStepInput, type CodaCreateUpdateRowStepOutput, type CodaFindRowStepInput, type CodaFindRowStepOutput, type CodaGetPageStepInput, type CodaGetPageStepOutput, type CodaGetTableRowsStepInput, type CodaGetTableRowsStepOutput, type ConvertPdfToImagesStepInput, type ConvertPdfToImagesStepOutput, type CreateGoogleCalendarEventStepInput, type CreateGoogleCalendarEventStepOutput, type CreateGoogleDocStepInput, type CreateGoogleDocStepOutput, type CreateGoogleSheetStepInput, type CreateGoogleSheetStepOutput, type DeleteGoogleCalendarEventStepInput, type DeleteGoogleCalendarEventStepOutput, type DetectPIIStepInput, type DetectPIIStepOutput, type DownloadVideoStepInput, type DownloadVideoStepOutput, type EnhanceImageGenerationPromptStepInput, type EnhanceImageGenerationPromptStepOutput, type EnhanceVideoGenerationPromptStepInput, type EnhanceVideoGenerationPromptStepOutput, type EnrichPersonStepInput, type EnrichPersonStepOutput, type ExtractAudioFromVideoStepInput, type ExtractAudioFromVideoStepOutput, type ExtractTextStepInput, type ExtractTextStepOutput, type FetchGoogleDocStepInput, type FetchGoogleDocStepOutput, type FetchGoogleSheetStepInput, type FetchGoogleSheetStepOutput, type FetchSlackChannelHistoryStepInput, type FetchSlackChannelHistoryStepOutput, type FetchYoutubeCaptionsStepInput, type FetchYoutubeCaptionsStepOutput, type FetchYoutubeChannelStepInput, type FetchYoutubeChannelStepOutput, type FetchYoutubeCommentsStepInput, type FetchYoutubeCommentsStepOutput, type FetchYoutubeVideoStepInput, type FetchYoutubeVideoStepOutput, type GenerateChartStepInput, type GenerateChartStepOutput, type GenerateImageStepInput, type GenerateImageStepOutput, type GenerateLipsyncStepInput, type GenerateLipsyncStepOutput, type GenerateMusicStepInput, type GenerateMusicStepOutput, type GeneratePdfStepInput, type GeneratePdfStepOutput, type GenerateStaticVideoFromImageStepInput, type GenerateStaticVideoFromImageStepOutput, type GenerateVideoStepInput, type GenerateVideoStepOutput, type GetGoogleCalendarEventStepInput, type GetGoogleCalendarEventStepOutput, type GetMediaMetadataStepInput, type GetMediaMetadataStepOutput, type HelperMethods, type HttpRequestStepInput, type HttpRequestStepOutput, type HubspotCreateCompanyStepInput, type HubspotCreateCompanyStepOutput, type HubspotCreateContactStepInput, type HubspotCreateContactStepOutput, type HubspotGetCompanyStepInput, type HubspotGetCompanyStepOutput, type HubspotGetContactStepInput, type HubspotGetContactStepOutput, type HunterApiCompanyEnrichmentStepInput, type HunterApiCompanyEnrichmentStepOutput, type HunterApiDomainSearchStepInput, type HunterApiDomainSearchStepOutput, type HunterApiEmailFinderStepInput, type HunterApiEmailFinderStepOutput, type HunterApiEmailVerificationStepInput, type HunterApiEmailVerificationStepOutput, type HunterApiPersonEnrichmentStepInput, type HunterApiPersonEnrichmentStepOutput, type ImageFaceSwapStepInput, type ImageFaceSwapStepOutput, type ImageRemoveWatermarkStepInput, type ImageRemoveWatermarkStepOutput, type InsertVideoClipsStepInput, type InsertVideoClipsStepOutput, type ListGoogleCalendarEventsStepInput, type ListGoogleCalendarEventsStepOutput, type LogicStepInput, type LogicStepOutput, type MakeDotComRunScenarioStepInput, type MakeDotComRunScenarioStepOutput, type MergeAudioStepInput, type MergeAudioStepOutput, type MergeVideosStepInput, type MergeVideosStepOutput, MindStudioAgent, MindStudioError, type MindStudioModel, type MixAudioIntoVideoStepInput, type MixAudioIntoVideoStepOutput, type ModelType, type MuteVideoStepInput, type MuteVideoStepOutput, type N8nRunNodeStepInput, type N8nRunNodeStepOutput, type NotionCreatePageStepInput, type NotionCreatePageStepOutput, type NotionUpdatePageStepInput, type NotionUpdatePageStepOutput, type PeopleSearchStepInput, type PeopleSearchStepOutput, type PostToLinkedInStepInput, type PostToLinkedInStepOutput, type PostToSlackChannelStepInput, type PostToSlackChannelStepOutput, type PostToXStepInput, type PostToXStepOutput, type PostToZapierStepInput, type PostToZapierStepOutput, type QueryDataSourceStepInput, type QueryDataSourceStepOutput, type QueryExternalDatabaseStepInput, type QueryExternalDatabaseStepOutput, type RedactPIIStepInput, type RedactPIIStepOutput, type RemoveBackgroundFromImageStepInput, type RemoveBackgroundFromImageStepOutput, type ResizeVideoStepInput, type ResizeVideoStepOutput, type RunPackagedWorkflowStepInput, type RunPackagedWorkflowStepOutput, type RunWorkflowStepInput, type RunWorkflowStepOutput, type ScrapeFacebookPageStepInput, type ScrapeFacebookPageStepOutput, type ScrapeFacebookPostsStepInput, type ScrapeFacebookPostsStepOutput, type ScrapeInstagramCommentsStepInput, type ScrapeInstagramCommentsStepOutput, type ScrapeInstagramMentionsStepInput, type ScrapeInstagramMentionsStepOutput, type ScrapeInstagramPostsStepInput, type ScrapeInstagramPostsStepOutput, type ScrapeInstagramProfileStepInput, type ScrapeInstagramProfileStepOutput, type ScrapeInstagramReelsStepInput, type ScrapeInstagramReelsStepOutput, type ScrapeLinkedInCompanyStepInput, type ScrapeLinkedInCompanyStepOutput, type ScrapeLinkedInProfileStepInput, type ScrapeLinkedInProfileStepOutput, type ScrapeMetaThreadsProfileStepInput, type ScrapeMetaThreadsProfileStepOutput, type ScrapeUrlStepInput, type ScrapeUrlStepOutput, type ScrapeXPostStepInput, type ScrapeXPostStepOutput, type ScrapeXProfileStepInput, type ScrapeXProfileStepOutput, type SearchGoogleImagesStepInput, type SearchGoogleImagesStepOutput, type SearchGoogleNewsStepInput, type SearchGoogleNewsStepOutput, type SearchGoogleStepInput, type SearchGoogleStepOutput, type SearchGoogleTrendsStepInput, type SearchGoogleTrendsStepOutput, type SearchPerplexityStepInput, type SearchPerplexityStepOutput, type SearchXPostsStepInput, type SearchXPostsStepOutput, type SearchYoutubeStepInput, type SearchYoutubeStepOutput, type SearchYoutubeTrendsStepInput, type SearchYoutubeTrendsStepOutput, type SendEmailStepInput, type SendEmailStepOutput, type SendSMSStepInput, type SendSMSStepOutput, type SetRunTitleStepInput, type SetRunTitleStepOutput, type SetVariableStepInput, type SetVariableStepOutput, type StepExecutionMeta, type StepExecutionOptions, type StepExecutionResult, type StepInputMap, type StepMethods, type StepName, type StepOutputMap, type TelegramSendAudioStepInput, type TelegramSendAudioStepOutput, type TelegramSendFileStepInput, type TelegramSendFileStepOutput, type TelegramSendImageStepInput, type TelegramSendImageStepOutput, type TelegramSendMessageStepInput, type TelegramSendMessageStepOutput, type TelegramSendVideoStepInput, type TelegramSendVideoStepOutput, type TelegramSetTypingStepInput, type TelegramSetTypingStepOutput, type TextToSpeechStepInput, type TextToSpeechStepOutput, type TranscribeAudioStepInput, type TranscribeAudioStepOutput, type TrimMediaStepInput, type TrimMediaStepOutput, type UpdateGoogleCalendarEventStepInput, type UpdateGoogleCalendarEventStepOutput, type UpdateGoogleDocStepInput, type UpdateGoogleDocStepOutput, type UpdateGoogleSheetStepInput, type UpdateGoogleSheetStepOutput, type UpscaleImageStepInput, type UpscaleImageStepOutput, type UpscaleVideoStepInput, type UpscaleVideoStepOutput, type UserMessageStepInput, type UserMessageStepOutput, type VideoFaceSwapStepInput, type VideoFaceSwapStepOutput, type VideoRemoveBackgroundStepInput, type VideoRemoveBackgroundStepOutput, type VideoRemoveWatermarkStepInput, type VideoRemoveWatermarkStepOutput, type WatermarkImageStepInput, type WatermarkImageStepOutput, type WatermarkVideoStepInput, type WatermarkVideoStepOutput };