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