@vcp-dev/contracts 0.6.9 → 0.6.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/dist/api-response.d.ts +11 -0
  2. package/dist/cms-collection-binding.d.ts +2 -2
  3. package/dist/cms-page-directory.d.ts +245 -0
  4. package/dist/cms-site-id.d.ts +4 -0
  5. package/dist/connect-dynamic-collection.d.ts +13 -9
  6. package/dist/connect-form.d.ts +5 -3
  7. package/dist/crawler-task-service.d.ts +352 -0
  8. package/dist/custom-domain.d.ts +36 -2
  9. package/dist/customer-materials.d.ts +196 -0
  10. package/dist/deployment-progress.d.ts +51 -0
  11. package/dist/designer-component-library.d.ts +9 -7
  12. package/dist/designer-page-library.d.ts +36 -40
  13. package/dist/external-site-edit.d.ts +258 -0
  14. package/dist/firecrawl-internal.d.ts +103 -0
  15. package/dist/form-design.d.ts +106 -108
  16. package/dist/google-search-console.d.ts +316 -0
  17. package/dist/index.d.ts +5493 -1916
  18. package/dist/index.js +1 -1
  19. package/dist/input-context-bundle.d.ts +15 -15
  20. package/dist/internal-entity-id.d.ts +37 -0
  21. package/dist/launcher-prompt-templates.d.ts +639 -0
  22. package/dist/media-library.d.ts +164 -0
  23. package/dist/product-search.d.ts +227 -0
  24. package/dist/publish-quality.d.ts +92 -0
  25. package/dist/site-edit-capability.d.ts +6 -6
  26. package/dist/site-edit-event.d.ts +15 -7
  27. package/dist/site-edit-operation.d.ts +57 -15
  28. package/dist/site-edit-patch-plan.d.ts +2 -2
  29. package/dist/site-edit-render-document.d.ts +27 -23
  30. package/dist/site-edit-version.d.ts +1 -1
  31. package/dist/site-preview.d.ts +50 -0
  32. package/dist/site-workflow.d.ts +1006 -0
  33. package/dist/sitemap-navigation.d.ts +9 -0
  34. package/dist/step2-site-initialization.d.ts +209 -0
  35. package/dist/step3-digital-employee-analysis.d.ts +695 -0
  36. package/dist/step4-diagnosis.d.ts +204 -0
  37. package/dist/step5-strategy.d.ts +2697 -0
  38. package/dist/step6-design.d.ts +672 -0
  39. package/dist/template-upgrade-observability.d.ts +4 -4
  40. package/dist/user-facing-copy.d.ts +1 -0
  41. package/dist/workspace-design-apply.d.ts +1 -1
  42. package/dist/workspace-resource-operation.d.ts +722 -0
  43. package/package.json +2 -1
  44. package/dist/publish-plan.d.ts +0 -54
@@ -0,0 +1,2697 @@
1
+ import { z } from "zod";
2
+ export declare const STEP5_STRATEGY_KEYS: readonly ["goal", "market", "persona", "product", "brand", "competition", "structure", "language", "seogeo", "content", "conversion", "risk"];
3
+ export declare const Step5StrategyKeySchema: z.ZodEnum<{
4
+ product: "product";
5
+ content: "content";
6
+ language: "language";
7
+ goal: "goal";
8
+ market: "market";
9
+ persona: "persona";
10
+ brand: "brand";
11
+ competition: "competition";
12
+ structure: "structure";
13
+ seogeo: "seogeo";
14
+ conversion: "conversion";
15
+ risk: "risk";
16
+ }>;
17
+ export type Step5StrategyKey = z.infer<typeof Step5StrategyKeySchema>;
18
+ export declare const STEP5_STRATEGY_OPTION_IDS: readonly ["recommended", "conservative", "focused"];
19
+ export declare const Step5StrategyOptionIdSchema: z.ZodEnum<{
20
+ recommended: "recommended";
21
+ conservative: "conservative";
22
+ focused: "focused";
23
+ }>;
24
+ export type Step5StrategyOptionId = z.infer<typeof Step5StrategyOptionIdSchema>;
25
+ export declare const Step5StrategyOptionSchema: z.ZodObject<{
26
+ id: z.ZodEnum<{
27
+ recommended: "recommended";
28
+ conservative: "conservative";
29
+ focused: "focused";
30
+ }>;
31
+ label: z.ZodString;
32
+ note: z.ZodString;
33
+ impact: z.ZodOptional<z.ZodNullable<z.ZodString>>;
34
+ set_value: z.ZodOptional<z.ZodNullable<z.ZodString>>;
35
+ }, z.core.$strict>;
36
+ export type Step5StrategyOption = z.infer<typeof Step5StrategyOptionSchema>;
37
+ export declare const Step5StrategyPlanSchema: z.ZodObject<{
38
+ lead: z.ZodString;
39
+ title: z.ZodString;
40
+ columns: z.ZodArray<z.ZodString>;
41
+ rows: z.ZodArray<z.ZodArray<z.ZodString>>;
42
+ }, z.core.$strict>;
43
+ export type Step5StrategyPlan = z.infer<typeof Step5StrategyPlanSchema>;
44
+ export declare const Step5EvidenceReferenceSchema: z.ZodObject<{
45
+ source_type: z.ZodEnum<{
46
+ step2: "step2";
47
+ step3: "step3";
48
+ }>;
49
+ source_id: z.ZodString;
50
+ field_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
51
+ }, z.core.$strict>;
52
+ export type Step5EvidenceReference = z.infer<typeof Step5EvidenceReferenceSchema>;
53
+ export declare const Step5SemrushRecommendationStatusSchema: z.ZodEnum<{
54
+ ready: "ready";
55
+ failed: "failed";
56
+ disabled: "disabled";
57
+ empty: "empty";
58
+ timeout: "timeout";
59
+ rate_limited: "rate_limited";
60
+ quota_exhausted: "quota_exhausted";
61
+ }>;
62
+ export declare const Step5SemrushSearchIntentSchema: z.ZodEnum<{
63
+ INFORMATIONAL: "INFORMATIONAL";
64
+ NAVIGATIONAL: "NAVIGATIONAL";
65
+ COMMERCIAL: "COMMERCIAL";
66
+ TRANSACTIONAL: "TRANSACTIONAL";
67
+ }>;
68
+ export declare const Step5SemrushRecommendationSeedSchema: z.ZodObject<{
69
+ id: z.ZodString;
70
+ term: z.ZodString;
71
+ source_type: z.ZodEnum<{
72
+ step2: "step2";
73
+ step3: "step3";
74
+ step5: "step5";
75
+ }>;
76
+ source_id: z.ZodString;
77
+ field_path: z.ZodString;
78
+ }, z.core.$strict>;
79
+ export declare const Step5SemrushKeywordRecommendationSchema: z.ZodObject<{
80
+ keyword: z.ZodString;
81
+ normalized_keyword: z.ZodString;
82
+ intents: z.ZodArray<z.ZodEnum<{
83
+ INFORMATIONAL: "INFORMATIONAL";
84
+ NAVIGATIONAL: "NAVIGATIONAL";
85
+ COMMERCIAL: "COMMERCIAL";
86
+ TRANSACTIONAL: "TRANSACTIONAL";
87
+ }>>;
88
+ search_volume: z.ZodNumber;
89
+ keyword_difficulty: z.ZodNumber;
90
+ cpc: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
91
+ trend: z.ZodArray<z.ZodNumber>;
92
+ serp_features: z.ZodArray<z.ZodString>;
93
+ fit: z.ZodObject<{
94
+ seo: z.ZodNumber;
95
+ geo: z.ZodNumber;
96
+ buyer: z.ZodNumber;
97
+ }, z.core.$strict>;
98
+ recommended_channel: z.ZodEnum<{
99
+ SEO: "SEO";
100
+ GEO: "GEO";
101
+ DUAL: "DUAL";
102
+ }>;
103
+ priority: z.ZodEnum<{
104
+ P0: "P0";
105
+ P1: "P1";
106
+ P2: "P2";
107
+ P3: "P3";
108
+ }>;
109
+ already_in_plan: z.ZodBoolean;
110
+ page_level: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
111
+ }, z.core.$strict>;
112
+ export declare const Step5SemrushIntentGroupSchema: z.ZodObject<{
113
+ id: z.ZodString;
114
+ intent: z.ZodEnum<{
115
+ INFORMATIONAL: "INFORMATIONAL";
116
+ NAVIGATIONAL: "NAVIGATIONAL";
117
+ COMMERCIAL: "COMMERCIAL";
118
+ TRANSACTIONAL: "TRANSACTIONAL";
119
+ }>;
120
+ title: z.ZodString;
121
+ landing_page_type: z.ZodEnum<{
122
+ product: "product";
123
+ category: "category";
124
+ blog: "blog";
125
+ landing: "landing";
126
+ }>;
127
+ keywords: z.ZodArray<z.ZodObject<{
128
+ keyword: z.ZodString;
129
+ normalized_keyword: z.ZodString;
130
+ intents: z.ZodArray<z.ZodEnum<{
131
+ INFORMATIONAL: "INFORMATIONAL";
132
+ NAVIGATIONAL: "NAVIGATIONAL";
133
+ COMMERCIAL: "COMMERCIAL";
134
+ TRANSACTIONAL: "TRANSACTIONAL";
135
+ }>>;
136
+ search_volume: z.ZodNumber;
137
+ keyword_difficulty: z.ZodNumber;
138
+ cpc: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
139
+ trend: z.ZodArray<z.ZodNumber>;
140
+ serp_features: z.ZodArray<z.ZodString>;
141
+ fit: z.ZodObject<{
142
+ seo: z.ZodNumber;
143
+ geo: z.ZodNumber;
144
+ buyer: z.ZodNumber;
145
+ }, z.core.$strict>;
146
+ recommended_channel: z.ZodEnum<{
147
+ SEO: "SEO";
148
+ GEO: "GEO";
149
+ DUAL: "DUAL";
150
+ }>;
151
+ priority: z.ZodEnum<{
152
+ P0: "P0";
153
+ P1: "P1";
154
+ P2: "P2";
155
+ P3: "P3";
156
+ }>;
157
+ already_in_plan: z.ZodBoolean;
158
+ page_level: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
159
+ }, z.core.$strict>>;
160
+ }, z.core.$strict>;
161
+ export declare const Step5SemrushRecommendationSnapshotSchema: z.ZodObject<{
162
+ schema_version: z.ZodLiteral<1>;
163
+ provider: z.ZodLiteral<"semrush">;
164
+ api_version: z.ZodLiteral<"v4">;
165
+ database: z.ZodString;
166
+ country: z.ZodString;
167
+ fetched_at: z.ZodString;
168
+ context_hash: z.ZodString;
169
+ status: z.ZodEnum<{
170
+ ready: "ready";
171
+ failed: "failed";
172
+ disabled: "disabled";
173
+ empty: "empty";
174
+ timeout: "timeout";
175
+ rate_limited: "rate_limited";
176
+ quota_exhausted: "quota_exhausted";
177
+ }>;
178
+ seeds: z.ZodArray<z.ZodObject<{
179
+ id: z.ZodString;
180
+ term: z.ZodString;
181
+ source_type: z.ZodEnum<{
182
+ step2: "step2";
183
+ step3: "step3";
184
+ step5: "step5";
185
+ }>;
186
+ source_id: z.ZodString;
187
+ field_path: z.ZodString;
188
+ }, z.core.$strict>>;
189
+ intent_groups: z.ZodArray<z.ZodObject<{
190
+ id: z.ZodString;
191
+ intent: z.ZodEnum<{
192
+ INFORMATIONAL: "INFORMATIONAL";
193
+ NAVIGATIONAL: "NAVIGATIONAL";
194
+ COMMERCIAL: "COMMERCIAL";
195
+ TRANSACTIONAL: "TRANSACTIONAL";
196
+ }>;
197
+ title: z.ZodString;
198
+ landing_page_type: z.ZodEnum<{
199
+ product: "product";
200
+ category: "category";
201
+ blog: "blog";
202
+ landing: "landing";
203
+ }>;
204
+ keywords: z.ZodArray<z.ZodObject<{
205
+ keyword: z.ZodString;
206
+ normalized_keyword: z.ZodString;
207
+ intents: z.ZodArray<z.ZodEnum<{
208
+ INFORMATIONAL: "INFORMATIONAL";
209
+ NAVIGATIONAL: "NAVIGATIONAL";
210
+ COMMERCIAL: "COMMERCIAL";
211
+ TRANSACTIONAL: "TRANSACTIONAL";
212
+ }>>;
213
+ search_volume: z.ZodNumber;
214
+ keyword_difficulty: z.ZodNumber;
215
+ cpc: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
216
+ trend: z.ZodArray<z.ZodNumber>;
217
+ serp_features: z.ZodArray<z.ZodString>;
218
+ fit: z.ZodObject<{
219
+ seo: z.ZodNumber;
220
+ geo: z.ZodNumber;
221
+ buyer: z.ZodNumber;
222
+ }, z.core.$strict>;
223
+ recommended_channel: z.ZodEnum<{
224
+ SEO: "SEO";
225
+ GEO: "GEO";
226
+ DUAL: "DUAL";
227
+ }>;
228
+ priority: z.ZodEnum<{
229
+ P0: "P0";
230
+ P1: "P1";
231
+ P2: "P2";
232
+ P3: "P3";
233
+ }>;
234
+ already_in_plan: z.ZodBoolean;
235
+ page_level: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
236
+ }, z.core.$strict>>;
237
+ }, z.core.$strict>>;
238
+ error_code: z.ZodOptional<z.ZodNullable<z.ZodString>>;
239
+ }, z.core.$strict>;
240
+ export type Step5SemrushRecommendationSnapshot = z.infer<typeof Step5SemrushRecommendationSnapshotSchema>;
241
+ export declare const Step5StrategyItemSchema: z.ZodObject<{
242
+ key: z.ZodEnum<{
243
+ product: "product";
244
+ content: "content";
245
+ language: "language";
246
+ goal: "goal";
247
+ market: "market";
248
+ persona: "persona";
249
+ brand: "brand";
250
+ competition: "competition";
251
+ structure: "structure";
252
+ seogeo: "seogeo";
253
+ conversion: "conversion";
254
+ risk: "risk";
255
+ }>;
256
+ position: z.ZodNumber;
257
+ category: z.ZodString;
258
+ title: z.ZodString;
259
+ summary: z.ZodString;
260
+ rationale: z.ZodString;
261
+ parameter: z.ZodOptional<z.ZodNullable<z.ZodString>>;
262
+ options: z.ZodTuple<[z.ZodObject<{
263
+ id: z.ZodEnum<{
264
+ recommended: "recommended";
265
+ conservative: "conservative";
266
+ focused: "focused";
267
+ }>;
268
+ label: z.ZodString;
269
+ note: z.ZodString;
270
+ impact: z.ZodOptional<z.ZodNullable<z.ZodString>>;
271
+ set_value: z.ZodOptional<z.ZodNullable<z.ZodString>>;
272
+ }, z.core.$strict>, z.ZodObject<{
273
+ id: z.ZodEnum<{
274
+ recommended: "recommended";
275
+ conservative: "conservative";
276
+ focused: "focused";
277
+ }>;
278
+ label: z.ZodString;
279
+ note: z.ZodString;
280
+ impact: z.ZodOptional<z.ZodNullable<z.ZodString>>;
281
+ set_value: z.ZodOptional<z.ZodNullable<z.ZodString>>;
282
+ }, z.core.$strict>, z.ZodObject<{
283
+ id: z.ZodEnum<{
284
+ recommended: "recommended";
285
+ conservative: "conservative";
286
+ focused: "focused";
287
+ }>;
288
+ label: z.ZodString;
289
+ note: z.ZodString;
290
+ impact: z.ZodOptional<z.ZodNullable<z.ZodString>>;
291
+ set_value: z.ZodOptional<z.ZodNullable<z.ZodString>>;
292
+ }, z.core.$strict>], null>;
293
+ plan: z.ZodOptional<z.ZodNullable<z.ZodObject<{
294
+ lead: z.ZodString;
295
+ title: z.ZodString;
296
+ columns: z.ZodArray<z.ZodString>;
297
+ rows: z.ZodArray<z.ZodArray<z.ZodString>>;
298
+ }, z.core.$strict>>>;
299
+ note_tips: z.ZodArray<z.ZodString>;
300
+ note_placeholder: z.ZodString;
301
+ evidence_refs: z.ZodArray<z.ZodObject<{
302
+ source_type: z.ZodEnum<{
303
+ step2: "step2";
304
+ step3: "step3";
305
+ }>;
306
+ source_id: z.ZodString;
307
+ field_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
308
+ }, z.core.$strict>>;
309
+ semrush_recommendations: z.ZodOptional<z.ZodNullable<z.ZodObject<{
310
+ schema_version: z.ZodLiteral<1>;
311
+ provider: z.ZodLiteral<"semrush">;
312
+ api_version: z.ZodLiteral<"v4">;
313
+ database: z.ZodString;
314
+ country: z.ZodString;
315
+ fetched_at: z.ZodString;
316
+ context_hash: z.ZodString;
317
+ status: z.ZodEnum<{
318
+ ready: "ready";
319
+ failed: "failed";
320
+ disabled: "disabled";
321
+ empty: "empty";
322
+ timeout: "timeout";
323
+ rate_limited: "rate_limited";
324
+ quota_exhausted: "quota_exhausted";
325
+ }>;
326
+ seeds: z.ZodArray<z.ZodObject<{
327
+ id: z.ZodString;
328
+ term: z.ZodString;
329
+ source_type: z.ZodEnum<{
330
+ step2: "step2";
331
+ step3: "step3";
332
+ step5: "step5";
333
+ }>;
334
+ source_id: z.ZodString;
335
+ field_path: z.ZodString;
336
+ }, z.core.$strict>>;
337
+ intent_groups: z.ZodArray<z.ZodObject<{
338
+ id: z.ZodString;
339
+ intent: z.ZodEnum<{
340
+ INFORMATIONAL: "INFORMATIONAL";
341
+ NAVIGATIONAL: "NAVIGATIONAL";
342
+ COMMERCIAL: "COMMERCIAL";
343
+ TRANSACTIONAL: "TRANSACTIONAL";
344
+ }>;
345
+ title: z.ZodString;
346
+ landing_page_type: z.ZodEnum<{
347
+ product: "product";
348
+ category: "category";
349
+ blog: "blog";
350
+ landing: "landing";
351
+ }>;
352
+ keywords: z.ZodArray<z.ZodObject<{
353
+ keyword: z.ZodString;
354
+ normalized_keyword: z.ZodString;
355
+ intents: z.ZodArray<z.ZodEnum<{
356
+ INFORMATIONAL: "INFORMATIONAL";
357
+ NAVIGATIONAL: "NAVIGATIONAL";
358
+ COMMERCIAL: "COMMERCIAL";
359
+ TRANSACTIONAL: "TRANSACTIONAL";
360
+ }>>;
361
+ search_volume: z.ZodNumber;
362
+ keyword_difficulty: z.ZodNumber;
363
+ cpc: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
364
+ trend: z.ZodArray<z.ZodNumber>;
365
+ serp_features: z.ZodArray<z.ZodString>;
366
+ fit: z.ZodObject<{
367
+ seo: z.ZodNumber;
368
+ geo: z.ZodNumber;
369
+ buyer: z.ZodNumber;
370
+ }, z.core.$strict>;
371
+ recommended_channel: z.ZodEnum<{
372
+ SEO: "SEO";
373
+ GEO: "GEO";
374
+ DUAL: "DUAL";
375
+ }>;
376
+ priority: z.ZodEnum<{
377
+ P0: "P0";
378
+ P1: "P1";
379
+ P2: "P2";
380
+ P3: "P3";
381
+ }>;
382
+ already_in_plan: z.ZodBoolean;
383
+ page_level: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
384
+ }, z.core.$strict>>;
385
+ }, z.core.$strict>>;
386
+ error_code: z.ZodOptional<z.ZodNullable<z.ZodString>>;
387
+ }, z.core.$strict>>>;
388
+ }, z.core.$strict>;
389
+ export type Step5StrategyItem = z.infer<typeof Step5StrategyItemSchema>;
390
+ export declare const STEP5_PRIMARY_INTENT_PAGE_LIMIT = 9;
391
+ export declare const Step5SeoGeoPlanRowSchema: z.ZodObject<{
392
+ id: z.ZodString;
393
+ type: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
394
+ cells: z.ZodTuple<[z.ZodString, z.ZodString, z.ZodString, z.ZodString, z.ZodString, z.ZodString], null>;
395
+ }, z.core.$strict>;
396
+ export type Step5SeoGeoPlanRow = z.infer<typeof Step5SeoGeoPlanRowSchema>;
397
+ export declare const Step5DecisionCustomPayloadSchema: z.ZodObject<{
398
+ rows: z.ZodOptional<z.ZodArray<z.ZodObject<{
399
+ id: z.ZodString;
400
+ type: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
401
+ cells: z.ZodTuple<[z.ZodString, z.ZodString, z.ZodString, z.ZodString, z.ZodString, z.ZodString], null>;
402
+ }, z.core.$strict>>>;
403
+ }, z.core.$strict>;
404
+ export type Step5DecisionCustomPayload = z.infer<typeof Step5DecisionCustomPayloadSchema>;
405
+ export declare const Step5DecisionCustomPayloadInputSchema: z.ZodObject<{
406
+ rows: z.ZodOptional<z.ZodArray<z.ZodObject<{
407
+ id: z.ZodString;
408
+ type: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
409
+ cells: z.ZodTuple<[z.ZodString, z.ZodString, z.ZodString, z.ZodString, z.ZodString, z.ZodString], null>;
410
+ }, z.core.$strict>>>;
411
+ }, z.core.$strict>;
412
+ export declare const Step5StrategyDecisionInputSchema: z.ZodObject<{
413
+ item_key: z.ZodEnum<{
414
+ product: "product";
415
+ content: "content";
416
+ language: "language";
417
+ goal: "goal";
418
+ market: "market";
419
+ persona: "persona";
420
+ brand: "brand";
421
+ competition: "competition";
422
+ structure: "structure";
423
+ seogeo: "seogeo";
424
+ conversion: "conversion";
425
+ risk: "risk";
426
+ }>;
427
+ selected_option_id: z.ZodEnum<{
428
+ recommended: "recommended";
429
+ conservative: "conservative";
430
+ focused: "focused";
431
+ }>;
432
+ note: z.ZodString;
433
+ custom_payload: z.ZodOptional<z.ZodObject<{
434
+ rows: z.ZodOptional<z.ZodArray<z.ZodObject<{
435
+ id: z.ZodString;
436
+ type: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
437
+ cells: z.ZodTuple<[z.ZodString, z.ZodString, z.ZodString, z.ZodString, z.ZodString, z.ZodString], null>;
438
+ }, z.core.$strict>>>;
439
+ }, z.core.$strict>>;
440
+ }, z.core.$strict>;
441
+ export type Step5StrategyDecisionInput = z.infer<typeof Step5StrategyDecisionInputSchema>;
442
+ export declare const Step5StrategyDecisionSchema: z.ZodObject<{
443
+ item_key: z.ZodEnum<{
444
+ product: "product";
445
+ content: "content";
446
+ language: "language";
447
+ goal: "goal";
448
+ market: "market";
449
+ persona: "persona";
450
+ brand: "brand";
451
+ competition: "competition";
452
+ structure: "structure";
453
+ seogeo: "seogeo";
454
+ conversion: "conversion";
455
+ risk: "risk";
456
+ }>;
457
+ selected_option_id: z.ZodEnum<{
458
+ recommended: "recommended";
459
+ conservative: "conservative";
460
+ focused: "focused";
461
+ }>;
462
+ note: z.ZodString;
463
+ custom_payload: z.ZodOptional<z.ZodObject<{
464
+ rows: z.ZodOptional<z.ZodArray<z.ZodObject<{
465
+ id: z.ZodString;
466
+ type: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
467
+ cells: z.ZodTuple<[z.ZodString, z.ZodString, z.ZodString, z.ZodString, z.ZodString, z.ZodString], null>;
468
+ }, z.core.$strict>>>;
469
+ }, z.core.$strict>>;
470
+ selected_value: z.ZodNullable<z.ZodUnknown>;
471
+ accepted_at: z.ZodString;
472
+ }, z.core.$strict>;
473
+ export type Step5StrategyDecision = z.infer<typeof Step5StrategyDecisionSchema>;
474
+ export declare const Step5JobStatusSchema: z.ZodEnum<{
475
+ failed: "failed";
476
+ succeeded: "succeeded";
477
+ running: "running";
478
+ }>;
479
+ export type Step5JobStatus = z.infer<typeof Step5JobStatusSchema>;
480
+ export declare const Step5StrategyVersionSnapshotSchema: z.ZodObject<{
481
+ schema_version: z.ZodLiteral<1>;
482
+ source_job_id: z.ZodString;
483
+ site_id: z.ZodString;
484
+ items: z.ZodArray<z.ZodObject<{
485
+ key: z.ZodEnum<{
486
+ product: "product";
487
+ content: "content";
488
+ language: "language";
489
+ goal: "goal";
490
+ market: "market";
491
+ persona: "persona";
492
+ brand: "brand";
493
+ competition: "competition";
494
+ structure: "structure";
495
+ seogeo: "seogeo";
496
+ conversion: "conversion";
497
+ risk: "risk";
498
+ }>;
499
+ position: z.ZodNumber;
500
+ category: z.ZodString;
501
+ title: z.ZodString;
502
+ summary: z.ZodString;
503
+ rationale: z.ZodString;
504
+ parameter: z.ZodOptional<z.ZodNullable<z.ZodString>>;
505
+ options: z.ZodTuple<[z.ZodObject<{
506
+ id: z.ZodEnum<{
507
+ recommended: "recommended";
508
+ conservative: "conservative";
509
+ focused: "focused";
510
+ }>;
511
+ label: z.ZodString;
512
+ note: z.ZodString;
513
+ impact: z.ZodOptional<z.ZodNullable<z.ZodString>>;
514
+ set_value: z.ZodOptional<z.ZodNullable<z.ZodString>>;
515
+ }, z.core.$strict>, z.ZodObject<{
516
+ id: z.ZodEnum<{
517
+ recommended: "recommended";
518
+ conservative: "conservative";
519
+ focused: "focused";
520
+ }>;
521
+ label: z.ZodString;
522
+ note: z.ZodString;
523
+ impact: z.ZodOptional<z.ZodNullable<z.ZodString>>;
524
+ set_value: z.ZodOptional<z.ZodNullable<z.ZodString>>;
525
+ }, z.core.$strict>, z.ZodObject<{
526
+ id: z.ZodEnum<{
527
+ recommended: "recommended";
528
+ conservative: "conservative";
529
+ focused: "focused";
530
+ }>;
531
+ label: z.ZodString;
532
+ note: z.ZodString;
533
+ impact: z.ZodOptional<z.ZodNullable<z.ZodString>>;
534
+ set_value: z.ZodOptional<z.ZodNullable<z.ZodString>>;
535
+ }, z.core.$strict>], null>;
536
+ plan: z.ZodOptional<z.ZodNullable<z.ZodObject<{
537
+ lead: z.ZodString;
538
+ title: z.ZodString;
539
+ columns: z.ZodArray<z.ZodString>;
540
+ rows: z.ZodArray<z.ZodArray<z.ZodString>>;
541
+ }, z.core.$strict>>>;
542
+ note_tips: z.ZodArray<z.ZodString>;
543
+ note_placeholder: z.ZodString;
544
+ evidence_refs: z.ZodArray<z.ZodObject<{
545
+ source_type: z.ZodEnum<{
546
+ step2: "step2";
547
+ step3: "step3";
548
+ }>;
549
+ source_id: z.ZodString;
550
+ field_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
551
+ }, z.core.$strict>>;
552
+ semrush_recommendations: z.ZodOptional<z.ZodNullable<z.ZodObject<{
553
+ schema_version: z.ZodLiteral<1>;
554
+ provider: z.ZodLiteral<"semrush">;
555
+ api_version: z.ZodLiteral<"v4">;
556
+ database: z.ZodString;
557
+ country: z.ZodString;
558
+ fetched_at: z.ZodString;
559
+ context_hash: z.ZodString;
560
+ status: z.ZodEnum<{
561
+ ready: "ready";
562
+ failed: "failed";
563
+ disabled: "disabled";
564
+ empty: "empty";
565
+ timeout: "timeout";
566
+ rate_limited: "rate_limited";
567
+ quota_exhausted: "quota_exhausted";
568
+ }>;
569
+ seeds: z.ZodArray<z.ZodObject<{
570
+ id: z.ZodString;
571
+ term: z.ZodString;
572
+ source_type: z.ZodEnum<{
573
+ step2: "step2";
574
+ step3: "step3";
575
+ step5: "step5";
576
+ }>;
577
+ source_id: z.ZodString;
578
+ field_path: z.ZodString;
579
+ }, z.core.$strict>>;
580
+ intent_groups: z.ZodArray<z.ZodObject<{
581
+ id: z.ZodString;
582
+ intent: z.ZodEnum<{
583
+ INFORMATIONAL: "INFORMATIONAL";
584
+ NAVIGATIONAL: "NAVIGATIONAL";
585
+ COMMERCIAL: "COMMERCIAL";
586
+ TRANSACTIONAL: "TRANSACTIONAL";
587
+ }>;
588
+ title: z.ZodString;
589
+ landing_page_type: z.ZodEnum<{
590
+ product: "product";
591
+ category: "category";
592
+ blog: "blog";
593
+ landing: "landing";
594
+ }>;
595
+ keywords: z.ZodArray<z.ZodObject<{
596
+ keyword: z.ZodString;
597
+ normalized_keyword: z.ZodString;
598
+ intents: z.ZodArray<z.ZodEnum<{
599
+ INFORMATIONAL: "INFORMATIONAL";
600
+ NAVIGATIONAL: "NAVIGATIONAL";
601
+ COMMERCIAL: "COMMERCIAL";
602
+ TRANSACTIONAL: "TRANSACTIONAL";
603
+ }>>;
604
+ search_volume: z.ZodNumber;
605
+ keyword_difficulty: z.ZodNumber;
606
+ cpc: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
607
+ trend: z.ZodArray<z.ZodNumber>;
608
+ serp_features: z.ZodArray<z.ZodString>;
609
+ fit: z.ZodObject<{
610
+ seo: z.ZodNumber;
611
+ geo: z.ZodNumber;
612
+ buyer: z.ZodNumber;
613
+ }, z.core.$strict>;
614
+ recommended_channel: z.ZodEnum<{
615
+ SEO: "SEO";
616
+ GEO: "GEO";
617
+ DUAL: "DUAL";
618
+ }>;
619
+ priority: z.ZodEnum<{
620
+ P0: "P0";
621
+ P1: "P1";
622
+ P2: "P2";
623
+ P3: "P3";
624
+ }>;
625
+ already_in_plan: z.ZodBoolean;
626
+ page_level: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
627
+ }, z.core.$strict>>;
628
+ }, z.core.$strict>>;
629
+ error_code: z.ZodOptional<z.ZodNullable<z.ZodString>>;
630
+ }, z.core.$strict>>>;
631
+ }, z.core.$strict>>;
632
+ decisions: z.ZodArray<z.ZodObject<{
633
+ item_key: z.ZodEnum<{
634
+ product: "product";
635
+ content: "content";
636
+ language: "language";
637
+ goal: "goal";
638
+ market: "market";
639
+ persona: "persona";
640
+ brand: "brand";
641
+ competition: "competition";
642
+ structure: "structure";
643
+ seogeo: "seogeo";
644
+ conversion: "conversion";
645
+ risk: "risk";
646
+ }>;
647
+ selected_option_id: z.ZodEnum<{
648
+ recommended: "recommended";
649
+ conservative: "conservative";
650
+ focused: "focused";
651
+ }>;
652
+ note: z.ZodString;
653
+ custom_payload: z.ZodOptional<z.ZodObject<{
654
+ rows: z.ZodOptional<z.ZodArray<z.ZodObject<{
655
+ id: z.ZodString;
656
+ type: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
657
+ cells: z.ZodTuple<[z.ZodString, z.ZodString, z.ZodString, z.ZodString, z.ZodString, z.ZodString], null>;
658
+ }, z.core.$strict>>>;
659
+ }, z.core.$strict>>;
660
+ selected_value: z.ZodNullable<z.ZodUnknown>;
661
+ accepted_at: z.ZodString;
662
+ }, z.core.$strict>>;
663
+ }, z.core.$strict>;
664
+ export type Step5StrategyVersionSnapshot = z.infer<typeof Step5StrategyVersionSnapshotSchema>;
665
+ export declare const Step5CommittedVersionSchema: z.ZodObject<{
666
+ strategy_version_id: z.ZodString;
667
+ site_id: z.ZodString;
668
+ source_job_id: z.ZodString;
669
+ version: z.ZodNumber;
670
+ checksum: z.ZodString;
671
+ snapshot: z.ZodObject<{
672
+ schema_version: z.ZodLiteral<1>;
673
+ source_job_id: z.ZodString;
674
+ site_id: z.ZodString;
675
+ items: z.ZodArray<z.ZodObject<{
676
+ key: z.ZodEnum<{
677
+ product: "product";
678
+ content: "content";
679
+ language: "language";
680
+ goal: "goal";
681
+ market: "market";
682
+ persona: "persona";
683
+ brand: "brand";
684
+ competition: "competition";
685
+ structure: "structure";
686
+ seogeo: "seogeo";
687
+ conversion: "conversion";
688
+ risk: "risk";
689
+ }>;
690
+ position: z.ZodNumber;
691
+ category: z.ZodString;
692
+ title: z.ZodString;
693
+ summary: z.ZodString;
694
+ rationale: z.ZodString;
695
+ parameter: z.ZodOptional<z.ZodNullable<z.ZodString>>;
696
+ options: z.ZodTuple<[z.ZodObject<{
697
+ id: z.ZodEnum<{
698
+ recommended: "recommended";
699
+ conservative: "conservative";
700
+ focused: "focused";
701
+ }>;
702
+ label: z.ZodString;
703
+ note: z.ZodString;
704
+ impact: z.ZodOptional<z.ZodNullable<z.ZodString>>;
705
+ set_value: z.ZodOptional<z.ZodNullable<z.ZodString>>;
706
+ }, z.core.$strict>, z.ZodObject<{
707
+ id: z.ZodEnum<{
708
+ recommended: "recommended";
709
+ conservative: "conservative";
710
+ focused: "focused";
711
+ }>;
712
+ label: z.ZodString;
713
+ note: z.ZodString;
714
+ impact: z.ZodOptional<z.ZodNullable<z.ZodString>>;
715
+ set_value: z.ZodOptional<z.ZodNullable<z.ZodString>>;
716
+ }, z.core.$strict>, z.ZodObject<{
717
+ id: z.ZodEnum<{
718
+ recommended: "recommended";
719
+ conservative: "conservative";
720
+ focused: "focused";
721
+ }>;
722
+ label: z.ZodString;
723
+ note: z.ZodString;
724
+ impact: z.ZodOptional<z.ZodNullable<z.ZodString>>;
725
+ set_value: z.ZodOptional<z.ZodNullable<z.ZodString>>;
726
+ }, z.core.$strict>], null>;
727
+ plan: z.ZodOptional<z.ZodNullable<z.ZodObject<{
728
+ lead: z.ZodString;
729
+ title: z.ZodString;
730
+ columns: z.ZodArray<z.ZodString>;
731
+ rows: z.ZodArray<z.ZodArray<z.ZodString>>;
732
+ }, z.core.$strict>>>;
733
+ note_tips: z.ZodArray<z.ZodString>;
734
+ note_placeholder: z.ZodString;
735
+ evidence_refs: z.ZodArray<z.ZodObject<{
736
+ source_type: z.ZodEnum<{
737
+ step2: "step2";
738
+ step3: "step3";
739
+ }>;
740
+ source_id: z.ZodString;
741
+ field_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
742
+ }, z.core.$strict>>;
743
+ semrush_recommendations: z.ZodOptional<z.ZodNullable<z.ZodObject<{
744
+ schema_version: z.ZodLiteral<1>;
745
+ provider: z.ZodLiteral<"semrush">;
746
+ api_version: z.ZodLiteral<"v4">;
747
+ database: z.ZodString;
748
+ country: z.ZodString;
749
+ fetched_at: z.ZodString;
750
+ context_hash: z.ZodString;
751
+ status: z.ZodEnum<{
752
+ ready: "ready";
753
+ failed: "failed";
754
+ disabled: "disabled";
755
+ empty: "empty";
756
+ timeout: "timeout";
757
+ rate_limited: "rate_limited";
758
+ quota_exhausted: "quota_exhausted";
759
+ }>;
760
+ seeds: z.ZodArray<z.ZodObject<{
761
+ id: z.ZodString;
762
+ term: z.ZodString;
763
+ source_type: z.ZodEnum<{
764
+ step2: "step2";
765
+ step3: "step3";
766
+ step5: "step5";
767
+ }>;
768
+ source_id: z.ZodString;
769
+ field_path: z.ZodString;
770
+ }, z.core.$strict>>;
771
+ intent_groups: z.ZodArray<z.ZodObject<{
772
+ id: z.ZodString;
773
+ intent: z.ZodEnum<{
774
+ INFORMATIONAL: "INFORMATIONAL";
775
+ NAVIGATIONAL: "NAVIGATIONAL";
776
+ COMMERCIAL: "COMMERCIAL";
777
+ TRANSACTIONAL: "TRANSACTIONAL";
778
+ }>;
779
+ title: z.ZodString;
780
+ landing_page_type: z.ZodEnum<{
781
+ product: "product";
782
+ category: "category";
783
+ blog: "blog";
784
+ landing: "landing";
785
+ }>;
786
+ keywords: z.ZodArray<z.ZodObject<{
787
+ keyword: z.ZodString;
788
+ normalized_keyword: z.ZodString;
789
+ intents: z.ZodArray<z.ZodEnum<{
790
+ INFORMATIONAL: "INFORMATIONAL";
791
+ NAVIGATIONAL: "NAVIGATIONAL";
792
+ COMMERCIAL: "COMMERCIAL";
793
+ TRANSACTIONAL: "TRANSACTIONAL";
794
+ }>>;
795
+ search_volume: z.ZodNumber;
796
+ keyword_difficulty: z.ZodNumber;
797
+ cpc: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
798
+ trend: z.ZodArray<z.ZodNumber>;
799
+ serp_features: z.ZodArray<z.ZodString>;
800
+ fit: z.ZodObject<{
801
+ seo: z.ZodNumber;
802
+ geo: z.ZodNumber;
803
+ buyer: z.ZodNumber;
804
+ }, z.core.$strict>;
805
+ recommended_channel: z.ZodEnum<{
806
+ SEO: "SEO";
807
+ GEO: "GEO";
808
+ DUAL: "DUAL";
809
+ }>;
810
+ priority: z.ZodEnum<{
811
+ P0: "P0";
812
+ P1: "P1";
813
+ P2: "P2";
814
+ P3: "P3";
815
+ }>;
816
+ already_in_plan: z.ZodBoolean;
817
+ page_level: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
818
+ }, z.core.$strict>>;
819
+ }, z.core.$strict>>;
820
+ error_code: z.ZodOptional<z.ZodNullable<z.ZodString>>;
821
+ }, z.core.$strict>>>;
822
+ }, z.core.$strict>>;
823
+ decisions: z.ZodArray<z.ZodObject<{
824
+ item_key: z.ZodEnum<{
825
+ product: "product";
826
+ content: "content";
827
+ language: "language";
828
+ goal: "goal";
829
+ market: "market";
830
+ persona: "persona";
831
+ brand: "brand";
832
+ competition: "competition";
833
+ structure: "structure";
834
+ seogeo: "seogeo";
835
+ conversion: "conversion";
836
+ risk: "risk";
837
+ }>;
838
+ selected_option_id: z.ZodEnum<{
839
+ recommended: "recommended";
840
+ conservative: "conservative";
841
+ focused: "focused";
842
+ }>;
843
+ note: z.ZodString;
844
+ custom_payload: z.ZodOptional<z.ZodObject<{
845
+ rows: z.ZodOptional<z.ZodArray<z.ZodObject<{
846
+ id: z.ZodString;
847
+ type: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
848
+ cells: z.ZodTuple<[z.ZodString, z.ZodString, z.ZodString, z.ZodString, z.ZodString, z.ZodString], null>;
849
+ }, z.core.$strict>>>;
850
+ }, z.core.$strict>>;
851
+ selected_value: z.ZodNullable<z.ZodUnknown>;
852
+ accepted_at: z.ZodString;
853
+ }, z.core.$strict>>;
854
+ }, z.core.$strict>;
855
+ committed_at: z.ZodString;
856
+ }, z.core.$strict>;
857
+ export type Step5CommittedVersion = z.infer<typeof Step5CommittedVersionSchema>;
858
+ export declare const Step5StrategyJobSchema: z.ZodObject<{
859
+ job_id: z.ZodString;
860
+ site_id: z.ZodString;
861
+ status: z.ZodEnum<{
862
+ failed: "failed";
863
+ succeeded: "succeeded";
864
+ running: "running";
865
+ }>;
866
+ revision: z.ZodNumber;
867
+ items: z.ZodArray<z.ZodObject<{
868
+ key: z.ZodEnum<{
869
+ product: "product";
870
+ content: "content";
871
+ language: "language";
872
+ goal: "goal";
873
+ market: "market";
874
+ persona: "persona";
875
+ brand: "brand";
876
+ competition: "competition";
877
+ structure: "structure";
878
+ seogeo: "seogeo";
879
+ conversion: "conversion";
880
+ risk: "risk";
881
+ }>;
882
+ position: z.ZodNumber;
883
+ category: z.ZodString;
884
+ title: z.ZodString;
885
+ summary: z.ZodString;
886
+ rationale: z.ZodString;
887
+ parameter: z.ZodOptional<z.ZodNullable<z.ZodString>>;
888
+ options: z.ZodTuple<[z.ZodObject<{
889
+ id: z.ZodEnum<{
890
+ recommended: "recommended";
891
+ conservative: "conservative";
892
+ focused: "focused";
893
+ }>;
894
+ label: z.ZodString;
895
+ note: z.ZodString;
896
+ impact: z.ZodOptional<z.ZodNullable<z.ZodString>>;
897
+ set_value: z.ZodOptional<z.ZodNullable<z.ZodString>>;
898
+ }, z.core.$strict>, z.ZodObject<{
899
+ id: z.ZodEnum<{
900
+ recommended: "recommended";
901
+ conservative: "conservative";
902
+ focused: "focused";
903
+ }>;
904
+ label: z.ZodString;
905
+ note: z.ZodString;
906
+ impact: z.ZodOptional<z.ZodNullable<z.ZodString>>;
907
+ set_value: z.ZodOptional<z.ZodNullable<z.ZodString>>;
908
+ }, z.core.$strict>, z.ZodObject<{
909
+ id: z.ZodEnum<{
910
+ recommended: "recommended";
911
+ conservative: "conservative";
912
+ focused: "focused";
913
+ }>;
914
+ label: z.ZodString;
915
+ note: z.ZodString;
916
+ impact: z.ZodOptional<z.ZodNullable<z.ZodString>>;
917
+ set_value: z.ZodOptional<z.ZodNullable<z.ZodString>>;
918
+ }, z.core.$strict>], null>;
919
+ plan: z.ZodOptional<z.ZodNullable<z.ZodObject<{
920
+ lead: z.ZodString;
921
+ title: z.ZodString;
922
+ columns: z.ZodArray<z.ZodString>;
923
+ rows: z.ZodArray<z.ZodArray<z.ZodString>>;
924
+ }, z.core.$strict>>>;
925
+ note_tips: z.ZodArray<z.ZodString>;
926
+ note_placeholder: z.ZodString;
927
+ evidence_refs: z.ZodArray<z.ZodObject<{
928
+ source_type: z.ZodEnum<{
929
+ step2: "step2";
930
+ step3: "step3";
931
+ }>;
932
+ source_id: z.ZodString;
933
+ field_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
934
+ }, z.core.$strict>>;
935
+ semrush_recommendations: z.ZodOptional<z.ZodNullable<z.ZodObject<{
936
+ schema_version: z.ZodLiteral<1>;
937
+ provider: z.ZodLiteral<"semrush">;
938
+ api_version: z.ZodLiteral<"v4">;
939
+ database: z.ZodString;
940
+ country: z.ZodString;
941
+ fetched_at: z.ZodString;
942
+ context_hash: z.ZodString;
943
+ status: z.ZodEnum<{
944
+ ready: "ready";
945
+ failed: "failed";
946
+ disabled: "disabled";
947
+ empty: "empty";
948
+ timeout: "timeout";
949
+ rate_limited: "rate_limited";
950
+ quota_exhausted: "quota_exhausted";
951
+ }>;
952
+ seeds: z.ZodArray<z.ZodObject<{
953
+ id: z.ZodString;
954
+ term: z.ZodString;
955
+ source_type: z.ZodEnum<{
956
+ step2: "step2";
957
+ step3: "step3";
958
+ step5: "step5";
959
+ }>;
960
+ source_id: z.ZodString;
961
+ field_path: z.ZodString;
962
+ }, z.core.$strict>>;
963
+ intent_groups: z.ZodArray<z.ZodObject<{
964
+ id: z.ZodString;
965
+ intent: z.ZodEnum<{
966
+ INFORMATIONAL: "INFORMATIONAL";
967
+ NAVIGATIONAL: "NAVIGATIONAL";
968
+ COMMERCIAL: "COMMERCIAL";
969
+ TRANSACTIONAL: "TRANSACTIONAL";
970
+ }>;
971
+ title: z.ZodString;
972
+ landing_page_type: z.ZodEnum<{
973
+ product: "product";
974
+ category: "category";
975
+ blog: "blog";
976
+ landing: "landing";
977
+ }>;
978
+ keywords: z.ZodArray<z.ZodObject<{
979
+ keyword: z.ZodString;
980
+ normalized_keyword: z.ZodString;
981
+ intents: z.ZodArray<z.ZodEnum<{
982
+ INFORMATIONAL: "INFORMATIONAL";
983
+ NAVIGATIONAL: "NAVIGATIONAL";
984
+ COMMERCIAL: "COMMERCIAL";
985
+ TRANSACTIONAL: "TRANSACTIONAL";
986
+ }>>;
987
+ search_volume: z.ZodNumber;
988
+ keyword_difficulty: z.ZodNumber;
989
+ cpc: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
990
+ trend: z.ZodArray<z.ZodNumber>;
991
+ serp_features: z.ZodArray<z.ZodString>;
992
+ fit: z.ZodObject<{
993
+ seo: z.ZodNumber;
994
+ geo: z.ZodNumber;
995
+ buyer: z.ZodNumber;
996
+ }, z.core.$strict>;
997
+ recommended_channel: z.ZodEnum<{
998
+ SEO: "SEO";
999
+ GEO: "GEO";
1000
+ DUAL: "DUAL";
1001
+ }>;
1002
+ priority: z.ZodEnum<{
1003
+ P0: "P0";
1004
+ P1: "P1";
1005
+ P2: "P2";
1006
+ P3: "P3";
1007
+ }>;
1008
+ already_in_plan: z.ZodBoolean;
1009
+ page_level: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
1010
+ }, z.core.$strict>>;
1011
+ }, z.core.$strict>>;
1012
+ error_code: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1013
+ }, z.core.$strict>>>;
1014
+ }, z.core.$strict>>;
1015
+ decisions: z.ZodArray<z.ZodObject<{
1016
+ item_key: z.ZodEnum<{
1017
+ product: "product";
1018
+ content: "content";
1019
+ language: "language";
1020
+ goal: "goal";
1021
+ market: "market";
1022
+ persona: "persona";
1023
+ brand: "brand";
1024
+ competition: "competition";
1025
+ structure: "structure";
1026
+ seogeo: "seogeo";
1027
+ conversion: "conversion";
1028
+ risk: "risk";
1029
+ }>;
1030
+ selected_option_id: z.ZodEnum<{
1031
+ recommended: "recommended";
1032
+ conservative: "conservative";
1033
+ focused: "focused";
1034
+ }>;
1035
+ note: z.ZodString;
1036
+ custom_payload: z.ZodOptional<z.ZodObject<{
1037
+ rows: z.ZodOptional<z.ZodArray<z.ZodObject<{
1038
+ id: z.ZodString;
1039
+ type: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
1040
+ cells: z.ZodTuple<[z.ZodString, z.ZodString, z.ZodString, z.ZodString, z.ZodString, z.ZodString], null>;
1041
+ }, z.core.$strict>>>;
1042
+ }, z.core.$strict>>;
1043
+ selected_value: z.ZodNullable<z.ZodUnknown>;
1044
+ accepted_at: z.ZodString;
1045
+ }, z.core.$strict>>;
1046
+ output_checksum: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1047
+ error_code: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1048
+ error_message: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1049
+ committed_version: z.ZodOptional<z.ZodNullable<z.ZodObject<{
1050
+ strategy_version_id: z.ZodString;
1051
+ site_id: z.ZodString;
1052
+ source_job_id: z.ZodString;
1053
+ version: z.ZodNumber;
1054
+ checksum: z.ZodString;
1055
+ snapshot: z.ZodObject<{
1056
+ schema_version: z.ZodLiteral<1>;
1057
+ source_job_id: z.ZodString;
1058
+ site_id: z.ZodString;
1059
+ items: z.ZodArray<z.ZodObject<{
1060
+ key: z.ZodEnum<{
1061
+ product: "product";
1062
+ content: "content";
1063
+ language: "language";
1064
+ goal: "goal";
1065
+ market: "market";
1066
+ persona: "persona";
1067
+ brand: "brand";
1068
+ competition: "competition";
1069
+ structure: "structure";
1070
+ seogeo: "seogeo";
1071
+ conversion: "conversion";
1072
+ risk: "risk";
1073
+ }>;
1074
+ position: z.ZodNumber;
1075
+ category: z.ZodString;
1076
+ title: z.ZodString;
1077
+ summary: z.ZodString;
1078
+ rationale: z.ZodString;
1079
+ parameter: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1080
+ options: z.ZodTuple<[z.ZodObject<{
1081
+ id: z.ZodEnum<{
1082
+ recommended: "recommended";
1083
+ conservative: "conservative";
1084
+ focused: "focused";
1085
+ }>;
1086
+ label: z.ZodString;
1087
+ note: z.ZodString;
1088
+ impact: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1089
+ set_value: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1090
+ }, z.core.$strict>, z.ZodObject<{
1091
+ id: z.ZodEnum<{
1092
+ recommended: "recommended";
1093
+ conservative: "conservative";
1094
+ focused: "focused";
1095
+ }>;
1096
+ label: z.ZodString;
1097
+ note: z.ZodString;
1098
+ impact: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1099
+ set_value: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1100
+ }, z.core.$strict>, z.ZodObject<{
1101
+ id: z.ZodEnum<{
1102
+ recommended: "recommended";
1103
+ conservative: "conservative";
1104
+ focused: "focused";
1105
+ }>;
1106
+ label: z.ZodString;
1107
+ note: z.ZodString;
1108
+ impact: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1109
+ set_value: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1110
+ }, z.core.$strict>], null>;
1111
+ plan: z.ZodOptional<z.ZodNullable<z.ZodObject<{
1112
+ lead: z.ZodString;
1113
+ title: z.ZodString;
1114
+ columns: z.ZodArray<z.ZodString>;
1115
+ rows: z.ZodArray<z.ZodArray<z.ZodString>>;
1116
+ }, z.core.$strict>>>;
1117
+ note_tips: z.ZodArray<z.ZodString>;
1118
+ note_placeholder: z.ZodString;
1119
+ evidence_refs: z.ZodArray<z.ZodObject<{
1120
+ source_type: z.ZodEnum<{
1121
+ step2: "step2";
1122
+ step3: "step3";
1123
+ }>;
1124
+ source_id: z.ZodString;
1125
+ field_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1126
+ }, z.core.$strict>>;
1127
+ semrush_recommendations: z.ZodOptional<z.ZodNullable<z.ZodObject<{
1128
+ schema_version: z.ZodLiteral<1>;
1129
+ provider: z.ZodLiteral<"semrush">;
1130
+ api_version: z.ZodLiteral<"v4">;
1131
+ database: z.ZodString;
1132
+ country: z.ZodString;
1133
+ fetched_at: z.ZodString;
1134
+ context_hash: z.ZodString;
1135
+ status: z.ZodEnum<{
1136
+ ready: "ready";
1137
+ failed: "failed";
1138
+ disabled: "disabled";
1139
+ empty: "empty";
1140
+ timeout: "timeout";
1141
+ rate_limited: "rate_limited";
1142
+ quota_exhausted: "quota_exhausted";
1143
+ }>;
1144
+ seeds: z.ZodArray<z.ZodObject<{
1145
+ id: z.ZodString;
1146
+ term: z.ZodString;
1147
+ source_type: z.ZodEnum<{
1148
+ step2: "step2";
1149
+ step3: "step3";
1150
+ step5: "step5";
1151
+ }>;
1152
+ source_id: z.ZodString;
1153
+ field_path: z.ZodString;
1154
+ }, z.core.$strict>>;
1155
+ intent_groups: z.ZodArray<z.ZodObject<{
1156
+ id: z.ZodString;
1157
+ intent: z.ZodEnum<{
1158
+ INFORMATIONAL: "INFORMATIONAL";
1159
+ NAVIGATIONAL: "NAVIGATIONAL";
1160
+ COMMERCIAL: "COMMERCIAL";
1161
+ TRANSACTIONAL: "TRANSACTIONAL";
1162
+ }>;
1163
+ title: z.ZodString;
1164
+ landing_page_type: z.ZodEnum<{
1165
+ product: "product";
1166
+ category: "category";
1167
+ blog: "blog";
1168
+ landing: "landing";
1169
+ }>;
1170
+ keywords: z.ZodArray<z.ZodObject<{
1171
+ keyword: z.ZodString;
1172
+ normalized_keyword: z.ZodString;
1173
+ intents: z.ZodArray<z.ZodEnum<{
1174
+ INFORMATIONAL: "INFORMATIONAL";
1175
+ NAVIGATIONAL: "NAVIGATIONAL";
1176
+ COMMERCIAL: "COMMERCIAL";
1177
+ TRANSACTIONAL: "TRANSACTIONAL";
1178
+ }>>;
1179
+ search_volume: z.ZodNumber;
1180
+ keyword_difficulty: z.ZodNumber;
1181
+ cpc: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
1182
+ trend: z.ZodArray<z.ZodNumber>;
1183
+ serp_features: z.ZodArray<z.ZodString>;
1184
+ fit: z.ZodObject<{
1185
+ seo: z.ZodNumber;
1186
+ geo: z.ZodNumber;
1187
+ buyer: z.ZodNumber;
1188
+ }, z.core.$strict>;
1189
+ recommended_channel: z.ZodEnum<{
1190
+ SEO: "SEO";
1191
+ GEO: "GEO";
1192
+ DUAL: "DUAL";
1193
+ }>;
1194
+ priority: z.ZodEnum<{
1195
+ P0: "P0";
1196
+ P1: "P1";
1197
+ P2: "P2";
1198
+ P3: "P3";
1199
+ }>;
1200
+ already_in_plan: z.ZodBoolean;
1201
+ page_level: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
1202
+ }, z.core.$strict>>;
1203
+ }, z.core.$strict>>;
1204
+ error_code: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1205
+ }, z.core.$strict>>>;
1206
+ }, z.core.$strict>>;
1207
+ decisions: z.ZodArray<z.ZodObject<{
1208
+ item_key: z.ZodEnum<{
1209
+ product: "product";
1210
+ content: "content";
1211
+ language: "language";
1212
+ goal: "goal";
1213
+ market: "market";
1214
+ persona: "persona";
1215
+ brand: "brand";
1216
+ competition: "competition";
1217
+ structure: "structure";
1218
+ seogeo: "seogeo";
1219
+ conversion: "conversion";
1220
+ risk: "risk";
1221
+ }>;
1222
+ selected_option_id: z.ZodEnum<{
1223
+ recommended: "recommended";
1224
+ conservative: "conservative";
1225
+ focused: "focused";
1226
+ }>;
1227
+ note: z.ZodString;
1228
+ custom_payload: z.ZodOptional<z.ZodObject<{
1229
+ rows: z.ZodOptional<z.ZodArray<z.ZodObject<{
1230
+ id: z.ZodString;
1231
+ type: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
1232
+ cells: z.ZodTuple<[z.ZodString, z.ZodString, z.ZodString, z.ZodString, z.ZodString, z.ZodString], null>;
1233
+ }, z.core.$strict>>>;
1234
+ }, z.core.$strict>>;
1235
+ selected_value: z.ZodNullable<z.ZodUnknown>;
1236
+ accepted_at: z.ZodString;
1237
+ }, z.core.$strict>>;
1238
+ }, z.core.$strict>;
1239
+ committed_at: z.ZodString;
1240
+ }, z.core.$strict>>>;
1241
+ }, z.core.$strict>;
1242
+ export type Step5StrategyJob = z.infer<typeof Step5StrategyJobSchema>;
1243
+ export declare const Step5StartStrategyRequestSchema: z.ZodObject<{
1244
+ force_refresh: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1245
+ }, z.core.$strict>;
1246
+ export type Step5StartStrategyRequest = z.infer<typeof Step5StartStrategyRequestSchema>;
1247
+ export declare const Step5StartStrategyResponseSchema: z.ZodObject<{
1248
+ job_id: z.ZodString;
1249
+ site_id: z.ZodString;
1250
+ status: z.ZodEnum<{
1251
+ failed: "failed";
1252
+ succeeded: "succeeded";
1253
+ running: "running";
1254
+ }>;
1255
+ revision: z.ZodNumber;
1256
+ items: z.ZodArray<z.ZodObject<{
1257
+ key: z.ZodEnum<{
1258
+ product: "product";
1259
+ content: "content";
1260
+ language: "language";
1261
+ goal: "goal";
1262
+ market: "market";
1263
+ persona: "persona";
1264
+ brand: "brand";
1265
+ competition: "competition";
1266
+ structure: "structure";
1267
+ seogeo: "seogeo";
1268
+ conversion: "conversion";
1269
+ risk: "risk";
1270
+ }>;
1271
+ position: z.ZodNumber;
1272
+ category: z.ZodString;
1273
+ title: z.ZodString;
1274
+ summary: z.ZodString;
1275
+ rationale: z.ZodString;
1276
+ parameter: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1277
+ options: z.ZodTuple<[z.ZodObject<{
1278
+ id: z.ZodEnum<{
1279
+ recommended: "recommended";
1280
+ conservative: "conservative";
1281
+ focused: "focused";
1282
+ }>;
1283
+ label: z.ZodString;
1284
+ note: z.ZodString;
1285
+ impact: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1286
+ set_value: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1287
+ }, z.core.$strict>, z.ZodObject<{
1288
+ id: z.ZodEnum<{
1289
+ recommended: "recommended";
1290
+ conservative: "conservative";
1291
+ focused: "focused";
1292
+ }>;
1293
+ label: z.ZodString;
1294
+ note: z.ZodString;
1295
+ impact: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1296
+ set_value: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1297
+ }, z.core.$strict>, z.ZodObject<{
1298
+ id: z.ZodEnum<{
1299
+ recommended: "recommended";
1300
+ conservative: "conservative";
1301
+ focused: "focused";
1302
+ }>;
1303
+ label: z.ZodString;
1304
+ note: z.ZodString;
1305
+ impact: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1306
+ set_value: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1307
+ }, z.core.$strict>], null>;
1308
+ plan: z.ZodOptional<z.ZodNullable<z.ZodObject<{
1309
+ lead: z.ZodString;
1310
+ title: z.ZodString;
1311
+ columns: z.ZodArray<z.ZodString>;
1312
+ rows: z.ZodArray<z.ZodArray<z.ZodString>>;
1313
+ }, z.core.$strict>>>;
1314
+ note_tips: z.ZodArray<z.ZodString>;
1315
+ note_placeholder: z.ZodString;
1316
+ evidence_refs: z.ZodArray<z.ZodObject<{
1317
+ source_type: z.ZodEnum<{
1318
+ step2: "step2";
1319
+ step3: "step3";
1320
+ }>;
1321
+ source_id: z.ZodString;
1322
+ field_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1323
+ }, z.core.$strict>>;
1324
+ semrush_recommendations: z.ZodOptional<z.ZodNullable<z.ZodObject<{
1325
+ schema_version: z.ZodLiteral<1>;
1326
+ provider: z.ZodLiteral<"semrush">;
1327
+ api_version: z.ZodLiteral<"v4">;
1328
+ database: z.ZodString;
1329
+ country: z.ZodString;
1330
+ fetched_at: z.ZodString;
1331
+ context_hash: z.ZodString;
1332
+ status: z.ZodEnum<{
1333
+ ready: "ready";
1334
+ failed: "failed";
1335
+ disabled: "disabled";
1336
+ empty: "empty";
1337
+ timeout: "timeout";
1338
+ rate_limited: "rate_limited";
1339
+ quota_exhausted: "quota_exhausted";
1340
+ }>;
1341
+ seeds: z.ZodArray<z.ZodObject<{
1342
+ id: z.ZodString;
1343
+ term: z.ZodString;
1344
+ source_type: z.ZodEnum<{
1345
+ step2: "step2";
1346
+ step3: "step3";
1347
+ step5: "step5";
1348
+ }>;
1349
+ source_id: z.ZodString;
1350
+ field_path: z.ZodString;
1351
+ }, z.core.$strict>>;
1352
+ intent_groups: z.ZodArray<z.ZodObject<{
1353
+ id: z.ZodString;
1354
+ intent: z.ZodEnum<{
1355
+ INFORMATIONAL: "INFORMATIONAL";
1356
+ NAVIGATIONAL: "NAVIGATIONAL";
1357
+ COMMERCIAL: "COMMERCIAL";
1358
+ TRANSACTIONAL: "TRANSACTIONAL";
1359
+ }>;
1360
+ title: z.ZodString;
1361
+ landing_page_type: z.ZodEnum<{
1362
+ product: "product";
1363
+ category: "category";
1364
+ blog: "blog";
1365
+ landing: "landing";
1366
+ }>;
1367
+ keywords: z.ZodArray<z.ZodObject<{
1368
+ keyword: z.ZodString;
1369
+ normalized_keyword: z.ZodString;
1370
+ intents: z.ZodArray<z.ZodEnum<{
1371
+ INFORMATIONAL: "INFORMATIONAL";
1372
+ NAVIGATIONAL: "NAVIGATIONAL";
1373
+ COMMERCIAL: "COMMERCIAL";
1374
+ TRANSACTIONAL: "TRANSACTIONAL";
1375
+ }>>;
1376
+ search_volume: z.ZodNumber;
1377
+ keyword_difficulty: z.ZodNumber;
1378
+ cpc: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
1379
+ trend: z.ZodArray<z.ZodNumber>;
1380
+ serp_features: z.ZodArray<z.ZodString>;
1381
+ fit: z.ZodObject<{
1382
+ seo: z.ZodNumber;
1383
+ geo: z.ZodNumber;
1384
+ buyer: z.ZodNumber;
1385
+ }, z.core.$strict>;
1386
+ recommended_channel: z.ZodEnum<{
1387
+ SEO: "SEO";
1388
+ GEO: "GEO";
1389
+ DUAL: "DUAL";
1390
+ }>;
1391
+ priority: z.ZodEnum<{
1392
+ P0: "P0";
1393
+ P1: "P1";
1394
+ P2: "P2";
1395
+ P3: "P3";
1396
+ }>;
1397
+ already_in_plan: z.ZodBoolean;
1398
+ page_level: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
1399
+ }, z.core.$strict>>;
1400
+ }, z.core.$strict>>;
1401
+ error_code: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1402
+ }, z.core.$strict>>>;
1403
+ }, z.core.$strict>>;
1404
+ decisions: z.ZodArray<z.ZodObject<{
1405
+ item_key: z.ZodEnum<{
1406
+ product: "product";
1407
+ content: "content";
1408
+ language: "language";
1409
+ goal: "goal";
1410
+ market: "market";
1411
+ persona: "persona";
1412
+ brand: "brand";
1413
+ competition: "competition";
1414
+ structure: "structure";
1415
+ seogeo: "seogeo";
1416
+ conversion: "conversion";
1417
+ risk: "risk";
1418
+ }>;
1419
+ selected_option_id: z.ZodEnum<{
1420
+ recommended: "recommended";
1421
+ conservative: "conservative";
1422
+ focused: "focused";
1423
+ }>;
1424
+ note: z.ZodString;
1425
+ custom_payload: z.ZodOptional<z.ZodObject<{
1426
+ rows: z.ZodOptional<z.ZodArray<z.ZodObject<{
1427
+ id: z.ZodString;
1428
+ type: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
1429
+ cells: z.ZodTuple<[z.ZodString, z.ZodString, z.ZodString, z.ZodString, z.ZodString, z.ZodString], null>;
1430
+ }, z.core.$strict>>>;
1431
+ }, z.core.$strict>>;
1432
+ selected_value: z.ZodNullable<z.ZodUnknown>;
1433
+ accepted_at: z.ZodString;
1434
+ }, z.core.$strict>>;
1435
+ output_checksum: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1436
+ error_code: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1437
+ error_message: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1438
+ committed_version: z.ZodOptional<z.ZodNullable<z.ZodObject<{
1439
+ strategy_version_id: z.ZodString;
1440
+ site_id: z.ZodString;
1441
+ source_job_id: z.ZodString;
1442
+ version: z.ZodNumber;
1443
+ checksum: z.ZodString;
1444
+ snapshot: z.ZodObject<{
1445
+ schema_version: z.ZodLiteral<1>;
1446
+ source_job_id: z.ZodString;
1447
+ site_id: z.ZodString;
1448
+ items: z.ZodArray<z.ZodObject<{
1449
+ key: z.ZodEnum<{
1450
+ product: "product";
1451
+ content: "content";
1452
+ language: "language";
1453
+ goal: "goal";
1454
+ market: "market";
1455
+ persona: "persona";
1456
+ brand: "brand";
1457
+ competition: "competition";
1458
+ structure: "structure";
1459
+ seogeo: "seogeo";
1460
+ conversion: "conversion";
1461
+ risk: "risk";
1462
+ }>;
1463
+ position: z.ZodNumber;
1464
+ category: z.ZodString;
1465
+ title: z.ZodString;
1466
+ summary: z.ZodString;
1467
+ rationale: z.ZodString;
1468
+ parameter: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1469
+ options: z.ZodTuple<[z.ZodObject<{
1470
+ id: z.ZodEnum<{
1471
+ recommended: "recommended";
1472
+ conservative: "conservative";
1473
+ focused: "focused";
1474
+ }>;
1475
+ label: z.ZodString;
1476
+ note: z.ZodString;
1477
+ impact: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1478
+ set_value: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1479
+ }, z.core.$strict>, z.ZodObject<{
1480
+ id: z.ZodEnum<{
1481
+ recommended: "recommended";
1482
+ conservative: "conservative";
1483
+ focused: "focused";
1484
+ }>;
1485
+ label: z.ZodString;
1486
+ note: z.ZodString;
1487
+ impact: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1488
+ set_value: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1489
+ }, z.core.$strict>, z.ZodObject<{
1490
+ id: z.ZodEnum<{
1491
+ recommended: "recommended";
1492
+ conservative: "conservative";
1493
+ focused: "focused";
1494
+ }>;
1495
+ label: z.ZodString;
1496
+ note: z.ZodString;
1497
+ impact: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1498
+ set_value: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1499
+ }, z.core.$strict>], null>;
1500
+ plan: z.ZodOptional<z.ZodNullable<z.ZodObject<{
1501
+ lead: z.ZodString;
1502
+ title: z.ZodString;
1503
+ columns: z.ZodArray<z.ZodString>;
1504
+ rows: z.ZodArray<z.ZodArray<z.ZodString>>;
1505
+ }, z.core.$strict>>>;
1506
+ note_tips: z.ZodArray<z.ZodString>;
1507
+ note_placeholder: z.ZodString;
1508
+ evidence_refs: z.ZodArray<z.ZodObject<{
1509
+ source_type: z.ZodEnum<{
1510
+ step2: "step2";
1511
+ step3: "step3";
1512
+ }>;
1513
+ source_id: z.ZodString;
1514
+ field_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1515
+ }, z.core.$strict>>;
1516
+ semrush_recommendations: z.ZodOptional<z.ZodNullable<z.ZodObject<{
1517
+ schema_version: z.ZodLiteral<1>;
1518
+ provider: z.ZodLiteral<"semrush">;
1519
+ api_version: z.ZodLiteral<"v4">;
1520
+ database: z.ZodString;
1521
+ country: z.ZodString;
1522
+ fetched_at: z.ZodString;
1523
+ context_hash: z.ZodString;
1524
+ status: z.ZodEnum<{
1525
+ ready: "ready";
1526
+ failed: "failed";
1527
+ disabled: "disabled";
1528
+ empty: "empty";
1529
+ timeout: "timeout";
1530
+ rate_limited: "rate_limited";
1531
+ quota_exhausted: "quota_exhausted";
1532
+ }>;
1533
+ seeds: z.ZodArray<z.ZodObject<{
1534
+ id: z.ZodString;
1535
+ term: z.ZodString;
1536
+ source_type: z.ZodEnum<{
1537
+ step2: "step2";
1538
+ step3: "step3";
1539
+ step5: "step5";
1540
+ }>;
1541
+ source_id: z.ZodString;
1542
+ field_path: z.ZodString;
1543
+ }, z.core.$strict>>;
1544
+ intent_groups: z.ZodArray<z.ZodObject<{
1545
+ id: z.ZodString;
1546
+ intent: z.ZodEnum<{
1547
+ INFORMATIONAL: "INFORMATIONAL";
1548
+ NAVIGATIONAL: "NAVIGATIONAL";
1549
+ COMMERCIAL: "COMMERCIAL";
1550
+ TRANSACTIONAL: "TRANSACTIONAL";
1551
+ }>;
1552
+ title: z.ZodString;
1553
+ landing_page_type: z.ZodEnum<{
1554
+ product: "product";
1555
+ category: "category";
1556
+ blog: "blog";
1557
+ landing: "landing";
1558
+ }>;
1559
+ keywords: z.ZodArray<z.ZodObject<{
1560
+ keyword: z.ZodString;
1561
+ normalized_keyword: z.ZodString;
1562
+ intents: z.ZodArray<z.ZodEnum<{
1563
+ INFORMATIONAL: "INFORMATIONAL";
1564
+ NAVIGATIONAL: "NAVIGATIONAL";
1565
+ COMMERCIAL: "COMMERCIAL";
1566
+ TRANSACTIONAL: "TRANSACTIONAL";
1567
+ }>>;
1568
+ search_volume: z.ZodNumber;
1569
+ keyword_difficulty: z.ZodNumber;
1570
+ cpc: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
1571
+ trend: z.ZodArray<z.ZodNumber>;
1572
+ serp_features: z.ZodArray<z.ZodString>;
1573
+ fit: z.ZodObject<{
1574
+ seo: z.ZodNumber;
1575
+ geo: z.ZodNumber;
1576
+ buyer: z.ZodNumber;
1577
+ }, z.core.$strict>;
1578
+ recommended_channel: z.ZodEnum<{
1579
+ SEO: "SEO";
1580
+ GEO: "GEO";
1581
+ DUAL: "DUAL";
1582
+ }>;
1583
+ priority: z.ZodEnum<{
1584
+ P0: "P0";
1585
+ P1: "P1";
1586
+ P2: "P2";
1587
+ P3: "P3";
1588
+ }>;
1589
+ already_in_plan: z.ZodBoolean;
1590
+ page_level: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
1591
+ }, z.core.$strict>>;
1592
+ }, z.core.$strict>>;
1593
+ error_code: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1594
+ }, z.core.$strict>>>;
1595
+ }, z.core.$strict>>;
1596
+ decisions: z.ZodArray<z.ZodObject<{
1597
+ item_key: z.ZodEnum<{
1598
+ product: "product";
1599
+ content: "content";
1600
+ language: "language";
1601
+ goal: "goal";
1602
+ market: "market";
1603
+ persona: "persona";
1604
+ brand: "brand";
1605
+ competition: "competition";
1606
+ structure: "structure";
1607
+ seogeo: "seogeo";
1608
+ conversion: "conversion";
1609
+ risk: "risk";
1610
+ }>;
1611
+ selected_option_id: z.ZodEnum<{
1612
+ recommended: "recommended";
1613
+ conservative: "conservative";
1614
+ focused: "focused";
1615
+ }>;
1616
+ note: z.ZodString;
1617
+ custom_payload: z.ZodOptional<z.ZodObject<{
1618
+ rows: z.ZodOptional<z.ZodArray<z.ZodObject<{
1619
+ id: z.ZodString;
1620
+ type: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
1621
+ cells: z.ZodTuple<[z.ZodString, z.ZodString, z.ZodString, z.ZodString, z.ZodString, z.ZodString], null>;
1622
+ }, z.core.$strict>>>;
1623
+ }, z.core.$strict>>;
1624
+ selected_value: z.ZodNullable<z.ZodUnknown>;
1625
+ accepted_at: z.ZodString;
1626
+ }, z.core.$strict>>;
1627
+ }, z.core.$strict>;
1628
+ committed_at: z.ZodString;
1629
+ }, z.core.$strict>>>;
1630
+ cached: z.ZodBoolean;
1631
+ }, z.core.$strict>;
1632
+ export type Step5StartStrategyResponse = z.infer<typeof Step5StartStrategyResponseSchema>;
1633
+ export declare const Step5SaveDecisionRequestSchema: z.ZodObject<{
1634
+ expected_revision: z.ZodNumber;
1635
+ selected_option_id: z.ZodEnum<{
1636
+ recommended: "recommended";
1637
+ conservative: "conservative";
1638
+ focused: "focused";
1639
+ }>;
1640
+ note: z.ZodString;
1641
+ custom_payload: z.ZodOptional<z.ZodObject<{
1642
+ rows: z.ZodOptional<z.ZodArray<z.ZodObject<{
1643
+ id: z.ZodString;
1644
+ type: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
1645
+ cells: z.ZodTuple<[z.ZodString, z.ZodString, z.ZodString, z.ZodString, z.ZodString, z.ZodString], null>;
1646
+ }, z.core.$strict>>>;
1647
+ }, z.core.$strict>>;
1648
+ }, z.core.$strict>;
1649
+ export type Step5SaveDecisionRequest = z.infer<typeof Step5SaveDecisionRequestSchema>;
1650
+ export declare const Step5SaveDecisionResponseSchema: z.ZodObject<{
1651
+ revision: z.ZodNumber;
1652
+ decision: z.ZodObject<{
1653
+ item_key: z.ZodEnum<{
1654
+ product: "product";
1655
+ content: "content";
1656
+ language: "language";
1657
+ goal: "goal";
1658
+ market: "market";
1659
+ persona: "persona";
1660
+ brand: "brand";
1661
+ competition: "competition";
1662
+ structure: "structure";
1663
+ seogeo: "seogeo";
1664
+ conversion: "conversion";
1665
+ risk: "risk";
1666
+ }>;
1667
+ selected_option_id: z.ZodEnum<{
1668
+ recommended: "recommended";
1669
+ conservative: "conservative";
1670
+ focused: "focused";
1671
+ }>;
1672
+ note: z.ZodString;
1673
+ custom_payload: z.ZodOptional<z.ZodObject<{
1674
+ rows: z.ZodOptional<z.ZodArray<z.ZodObject<{
1675
+ id: z.ZodString;
1676
+ type: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
1677
+ cells: z.ZodTuple<[z.ZodString, z.ZodString, z.ZodString, z.ZodString, z.ZodString, z.ZodString], null>;
1678
+ }, z.core.$strict>>>;
1679
+ }, z.core.$strict>>;
1680
+ selected_value: z.ZodNullable<z.ZodUnknown>;
1681
+ accepted_at: z.ZodString;
1682
+ }, z.core.$strict>;
1683
+ }, z.core.$strict>;
1684
+ export type Step5SaveDecisionResponse = z.infer<typeof Step5SaveDecisionResponseSchema>;
1685
+ export declare const Step5CommitStrategyRequestSchema: z.ZodObject<{
1686
+ idempotency_key: z.ZodString;
1687
+ expected_revision: z.ZodNumber;
1688
+ decisions: z.ZodArray<z.ZodObject<{
1689
+ item_key: z.ZodEnum<{
1690
+ product: "product";
1691
+ content: "content";
1692
+ language: "language";
1693
+ goal: "goal";
1694
+ market: "market";
1695
+ persona: "persona";
1696
+ brand: "brand";
1697
+ competition: "competition";
1698
+ structure: "structure";
1699
+ seogeo: "seogeo";
1700
+ conversion: "conversion";
1701
+ risk: "risk";
1702
+ }>;
1703
+ selected_option_id: z.ZodEnum<{
1704
+ recommended: "recommended";
1705
+ conservative: "conservative";
1706
+ focused: "focused";
1707
+ }>;
1708
+ note: z.ZodString;
1709
+ custom_payload: z.ZodOptional<z.ZodObject<{
1710
+ rows: z.ZodOptional<z.ZodArray<z.ZodObject<{
1711
+ id: z.ZodString;
1712
+ type: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
1713
+ cells: z.ZodTuple<[z.ZodString, z.ZodString, z.ZodString, z.ZodString, z.ZodString, z.ZodString], null>;
1714
+ }, z.core.$strict>>>;
1715
+ }, z.core.$strict>>;
1716
+ }, z.core.$strict>>;
1717
+ }, z.core.$strict>;
1718
+ export type Step5CommitStrategyRequest = z.infer<typeof Step5CommitStrategyRequestSchema>;
1719
+ export declare const Step5CommitStrategyResponseSchema: z.ZodObject<{
1720
+ strategy_version_id: z.ZodString;
1721
+ version: z.ZodNumber;
1722
+ checksum: z.ZodString;
1723
+ next_path: z.ZodString;
1724
+ }, z.core.$strict>;
1725
+ export type Step5CommitStrategyResponse = z.infer<typeof Step5CommitStrategyResponseSchema>;
1726
+ export declare const Step5StrategySnapshotDataSchema: z.ZodObject<{
1727
+ job_id: z.ZodString;
1728
+ site_id: z.ZodString;
1729
+ status: z.ZodEnum<{
1730
+ failed: "failed";
1731
+ succeeded: "succeeded";
1732
+ running: "running";
1733
+ }>;
1734
+ revision: z.ZodNumber;
1735
+ items: z.ZodArray<z.ZodObject<{
1736
+ key: z.ZodEnum<{
1737
+ product: "product";
1738
+ content: "content";
1739
+ language: "language";
1740
+ goal: "goal";
1741
+ market: "market";
1742
+ persona: "persona";
1743
+ brand: "brand";
1744
+ competition: "competition";
1745
+ structure: "structure";
1746
+ seogeo: "seogeo";
1747
+ conversion: "conversion";
1748
+ risk: "risk";
1749
+ }>;
1750
+ position: z.ZodNumber;
1751
+ category: z.ZodString;
1752
+ title: z.ZodString;
1753
+ summary: z.ZodString;
1754
+ rationale: z.ZodString;
1755
+ parameter: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1756
+ options: z.ZodTuple<[z.ZodObject<{
1757
+ id: z.ZodEnum<{
1758
+ recommended: "recommended";
1759
+ conservative: "conservative";
1760
+ focused: "focused";
1761
+ }>;
1762
+ label: z.ZodString;
1763
+ note: z.ZodString;
1764
+ impact: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1765
+ set_value: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1766
+ }, z.core.$strict>, z.ZodObject<{
1767
+ id: z.ZodEnum<{
1768
+ recommended: "recommended";
1769
+ conservative: "conservative";
1770
+ focused: "focused";
1771
+ }>;
1772
+ label: z.ZodString;
1773
+ note: z.ZodString;
1774
+ impact: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1775
+ set_value: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1776
+ }, z.core.$strict>, z.ZodObject<{
1777
+ id: z.ZodEnum<{
1778
+ recommended: "recommended";
1779
+ conservative: "conservative";
1780
+ focused: "focused";
1781
+ }>;
1782
+ label: z.ZodString;
1783
+ note: z.ZodString;
1784
+ impact: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1785
+ set_value: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1786
+ }, z.core.$strict>], null>;
1787
+ plan: z.ZodOptional<z.ZodNullable<z.ZodObject<{
1788
+ lead: z.ZodString;
1789
+ title: z.ZodString;
1790
+ columns: z.ZodArray<z.ZodString>;
1791
+ rows: z.ZodArray<z.ZodArray<z.ZodString>>;
1792
+ }, z.core.$strict>>>;
1793
+ note_tips: z.ZodArray<z.ZodString>;
1794
+ note_placeholder: z.ZodString;
1795
+ evidence_refs: z.ZodArray<z.ZodObject<{
1796
+ source_type: z.ZodEnum<{
1797
+ step2: "step2";
1798
+ step3: "step3";
1799
+ }>;
1800
+ source_id: z.ZodString;
1801
+ field_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1802
+ }, z.core.$strict>>;
1803
+ semrush_recommendations: z.ZodOptional<z.ZodNullable<z.ZodObject<{
1804
+ schema_version: z.ZodLiteral<1>;
1805
+ provider: z.ZodLiteral<"semrush">;
1806
+ api_version: z.ZodLiteral<"v4">;
1807
+ database: z.ZodString;
1808
+ country: z.ZodString;
1809
+ fetched_at: z.ZodString;
1810
+ context_hash: z.ZodString;
1811
+ status: z.ZodEnum<{
1812
+ ready: "ready";
1813
+ failed: "failed";
1814
+ disabled: "disabled";
1815
+ empty: "empty";
1816
+ timeout: "timeout";
1817
+ rate_limited: "rate_limited";
1818
+ quota_exhausted: "quota_exhausted";
1819
+ }>;
1820
+ seeds: z.ZodArray<z.ZodObject<{
1821
+ id: z.ZodString;
1822
+ term: z.ZodString;
1823
+ source_type: z.ZodEnum<{
1824
+ step2: "step2";
1825
+ step3: "step3";
1826
+ step5: "step5";
1827
+ }>;
1828
+ source_id: z.ZodString;
1829
+ field_path: z.ZodString;
1830
+ }, z.core.$strict>>;
1831
+ intent_groups: z.ZodArray<z.ZodObject<{
1832
+ id: z.ZodString;
1833
+ intent: z.ZodEnum<{
1834
+ INFORMATIONAL: "INFORMATIONAL";
1835
+ NAVIGATIONAL: "NAVIGATIONAL";
1836
+ COMMERCIAL: "COMMERCIAL";
1837
+ TRANSACTIONAL: "TRANSACTIONAL";
1838
+ }>;
1839
+ title: z.ZodString;
1840
+ landing_page_type: z.ZodEnum<{
1841
+ product: "product";
1842
+ category: "category";
1843
+ blog: "blog";
1844
+ landing: "landing";
1845
+ }>;
1846
+ keywords: z.ZodArray<z.ZodObject<{
1847
+ keyword: z.ZodString;
1848
+ normalized_keyword: z.ZodString;
1849
+ intents: z.ZodArray<z.ZodEnum<{
1850
+ INFORMATIONAL: "INFORMATIONAL";
1851
+ NAVIGATIONAL: "NAVIGATIONAL";
1852
+ COMMERCIAL: "COMMERCIAL";
1853
+ TRANSACTIONAL: "TRANSACTIONAL";
1854
+ }>>;
1855
+ search_volume: z.ZodNumber;
1856
+ keyword_difficulty: z.ZodNumber;
1857
+ cpc: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
1858
+ trend: z.ZodArray<z.ZodNumber>;
1859
+ serp_features: z.ZodArray<z.ZodString>;
1860
+ fit: z.ZodObject<{
1861
+ seo: z.ZodNumber;
1862
+ geo: z.ZodNumber;
1863
+ buyer: z.ZodNumber;
1864
+ }, z.core.$strict>;
1865
+ recommended_channel: z.ZodEnum<{
1866
+ SEO: "SEO";
1867
+ GEO: "GEO";
1868
+ DUAL: "DUAL";
1869
+ }>;
1870
+ priority: z.ZodEnum<{
1871
+ P0: "P0";
1872
+ P1: "P1";
1873
+ P2: "P2";
1874
+ P3: "P3";
1875
+ }>;
1876
+ already_in_plan: z.ZodBoolean;
1877
+ page_level: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
1878
+ }, z.core.$strict>>;
1879
+ }, z.core.$strict>>;
1880
+ error_code: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1881
+ }, z.core.$strict>>>;
1882
+ }, z.core.$strict>>;
1883
+ decisions: z.ZodArray<z.ZodObject<{
1884
+ item_key: z.ZodEnum<{
1885
+ product: "product";
1886
+ content: "content";
1887
+ language: "language";
1888
+ goal: "goal";
1889
+ market: "market";
1890
+ persona: "persona";
1891
+ brand: "brand";
1892
+ competition: "competition";
1893
+ structure: "structure";
1894
+ seogeo: "seogeo";
1895
+ conversion: "conversion";
1896
+ risk: "risk";
1897
+ }>;
1898
+ selected_option_id: z.ZodEnum<{
1899
+ recommended: "recommended";
1900
+ conservative: "conservative";
1901
+ focused: "focused";
1902
+ }>;
1903
+ note: z.ZodString;
1904
+ custom_payload: z.ZodOptional<z.ZodObject<{
1905
+ rows: z.ZodOptional<z.ZodArray<z.ZodObject<{
1906
+ id: z.ZodString;
1907
+ type: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
1908
+ cells: z.ZodTuple<[z.ZodString, z.ZodString, z.ZodString, z.ZodString, z.ZodString, z.ZodString], null>;
1909
+ }, z.core.$strict>>>;
1910
+ }, z.core.$strict>>;
1911
+ selected_value: z.ZodNullable<z.ZodUnknown>;
1912
+ accepted_at: z.ZodString;
1913
+ }, z.core.$strict>>;
1914
+ output_checksum: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1915
+ error_code: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1916
+ error_message: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1917
+ committed_version: z.ZodOptional<z.ZodNullable<z.ZodObject<{
1918
+ strategy_version_id: z.ZodString;
1919
+ site_id: z.ZodString;
1920
+ source_job_id: z.ZodString;
1921
+ version: z.ZodNumber;
1922
+ checksum: z.ZodString;
1923
+ snapshot: z.ZodObject<{
1924
+ schema_version: z.ZodLiteral<1>;
1925
+ source_job_id: z.ZodString;
1926
+ site_id: z.ZodString;
1927
+ items: z.ZodArray<z.ZodObject<{
1928
+ key: z.ZodEnum<{
1929
+ product: "product";
1930
+ content: "content";
1931
+ language: "language";
1932
+ goal: "goal";
1933
+ market: "market";
1934
+ persona: "persona";
1935
+ brand: "brand";
1936
+ competition: "competition";
1937
+ structure: "structure";
1938
+ seogeo: "seogeo";
1939
+ conversion: "conversion";
1940
+ risk: "risk";
1941
+ }>;
1942
+ position: z.ZodNumber;
1943
+ category: z.ZodString;
1944
+ title: z.ZodString;
1945
+ summary: z.ZodString;
1946
+ rationale: z.ZodString;
1947
+ parameter: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1948
+ options: z.ZodTuple<[z.ZodObject<{
1949
+ id: z.ZodEnum<{
1950
+ recommended: "recommended";
1951
+ conservative: "conservative";
1952
+ focused: "focused";
1953
+ }>;
1954
+ label: z.ZodString;
1955
+ note: z.ZodString;
1956
+ impact: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1957
+ set_value: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1958
+ }, z.core.$strict>, z.ZodObject<{
1959
+ id: z.ZodEnum<{
1960
+ recommended: "recommended";
1961
+ conservative: "conservative";
1962
+ focused: "focused";
1963
+ }>;
1964
+ label: z.ZodString;
1965
+ note: z.ZodString;
1966
+ impact: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1967
+ set_value: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1968
+ }, z.core.$strict>, z.ZodObject<{
1969
+ id: z.ZodEnum<{
1970
+ recommended: "recommended";
1971
+ conservative: "conservative";
1972
+ focused: "focused";
1973
+ }>;
1974
+ label: z.ZodString;
1975
+ note: z.ZodString;
1976
+ impact: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1977
+ set_value: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1978
+ }, z.core.$strict>], null>;
1979
+ plan: z.ZodOptional<z.ZodNullable<z.ZodObject<{
1980
+ lead: z.ZodString;
1981
+ title: z.ZodString;
1982
+ columns: z.ZodArray<z.ZodString>;
1983
+ rows: z.ZodArray<z.ZodArray<z.ZodString>>;
1984
+ }, z.core.$strict>>>;
1985
+ note_tips: z.ZodArray<z.ZodString>;
1986
+ note_placeholder: z.ZodString;
1987
+ evidence_refs: z.ZodArray<z.ZodObject<{
1988
+ source_type: z.ZodEnum<{
1989
+ step2: "step2";
1990
+ step3: "step3";
1991
+ }>;
1992
+ source_id: z.ZodString;
1993
+ field_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1994
+ }, z.core.$strict>>;
1995
+ semrush_recommendations: z.ZodOptional<z.ZodNullable<z.ZodObject<{
1996
+ schema_version: z.ZodLiteral<1>;
1997
+ provider: z.ZodLiteral<"semrush">;
1998
+ api_version: z.ZodLiteral<"v4">;
1999
+ database: z.ZodString;
2000
+ country: z.ZodString;
2001
+ fetched_at: z.ZodString;
2002
+ context_hash: z.ZodString;
2003
+ status: z.ZodEnum<{
2004
+ ready: "ready";
2005
+ failed: "failed";
2006
+ disabled: "disabled";
2007
+ empty: "empty";
2008
+ timeout: "timeout";
2009
+ rate_limited: "rate_limited";
2010
+ quota_exhausted: "quota_exhausted";
2011
+ }>;
2012
+ seeds: z.ZodArray<z.ZodObject<{
2013
+ id: z.ZodString;
2014
+ term: z.ZodString;
2015
+ source_type: z.ZodEnum<{
2016
+ step2: "step2";
2017
+ step3: "step3";
2018
+ step5: "step5";
2019
+ }>;
2020
+ source_id: z.ZodString;
2021
+ field_path: z.ZodString;
2022
+ }, z.core.$strict>>;
2023
+ intent_groups: z.ZodArray<z.ZodObject<{
2024
+ id: z.ZodString;
2025
+ intent: z.ZodEnum<{
2026
+ INFORMATIONAL: "INFORMATIONAL";
2027
+ NAVIGATIONAL: "NAVIGATIONAL";
2028
+ COMMERCIAL: "COMMERCIAL";
2029
+ TRANSACTIONAL: "TRANSACTIONAL";
2030
+ }>;
2031
+ title: z.ZodString;
2032
+ landing_page_type: z.ZodEnum<{
2033
+ product: "product";
2034
+ category: "category";
2035
+ blog: "blog";
2036
+ landing: "landing";
2037
+ }>;
2038
+ keywords: z.ZodArray<z.ZodObject<{
2039
+ keyword: z.ZodString;
2040
+ normalized_keyword: z.ZodString;
2041
+ intents: z.ZodArray<z.ZodEnum<{
2042
+ INFORMATIONAL: "INFORMATIONAL";
2043
+ NAVIGATIONAL: "NAVIGATIONAL";
2044
+ COMMERCIAL: "COMMERCIAL";
2045
+ TRANSACTIONAL: "TRANSACTIONAL";
2046
+ }>>;
2047
+ search_volume: z.ZodNumber;
2048
+ keyword_difficulty: z.ZodNumber;
2049
+ cpc: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
2050
+ trend: z.ZodArray<z.ZodNumber>;
2051
+ serp_features: z.ZodArray<z.ZodString>;
2052
+ fit: z.ZodObject<{
2053
+ seo: z.ZodNumber;
2054
+ geo: z.ZodNumber;
2055
+ buyer: z.ZodNumber;
2056
+ }, z.core.$strict>;
2057
+ recommended_channel: z.ZodEnum<{
2058
+ SEO: "SEO";
2059
+ GEO: "GEO";
2060
+ DUAL: "DUAL";
2061
+ }>;
2062
+ priority: z.ZodEnum<{
2063
+ P0: "P0";
2064
+ P1: "P1";
2065
+ P2: "P2";
2066
+ P3: "P3";
2067
+ }>;
2068
+ already_in_plan: z.ZodBoolean;
2069
+ page_level: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
2070
+ }, z.core.$strict>>;
2071
+ }, z.core.$strict>>;
2072
+ error_code: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2073
+ }, z.core.$strict>>>;
2074
+ }, z.core.$strict>>;
2075
+ decisions: z.ZodArray<z.ZodObject<{
2076
+ item_key: z.ZodEnum<{
2077
+ product: "product";
2078
+ content: "content";
2079
+ language: "language";
2080
+ goal: "goal";
2081
+ market: "market";
2082
+ persona: "persona";
2083
+ brand: "brand";
2084
+ competition: "competition";
2085
+ structure: "structure";
2086
+ seogeo: "seogeo";
2087
+ conversion: "conversion";
2088
+ risk: "risk";
2089
+ }>;
2090
+ selected_option_id: z.ZodEnum<{
2091
+ recommended: "recommended";
2092
+ conservative: "conservative";
2093
+ focused: "focused";
2094
+ }>;
2095
+ note: z.ZodString;
2096
+ custom_payload: z.ZodOptional<z.ZodObject<{
2097
+ rows: z.ZodOptional<z.ZodArray<z.ZodObject<{
2098
+ id: z.ZodString;
2099
+ type: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
2100
+ cells: z.ZodTuple<[z.ZodString, z.ZodString, z.ZodString, z.ZodString, z.ZodString, z.ZodString], null>;
2101
+ }, z.core.$strict>>>;
2102
+ }, z.core.$strict>>;
2103
+ selected_value: z.ZodNullable<z.ZodUnknown>;
2104
+ accepted_at: z.ZodString;
2105
+ }, z.core.$strict>>;
2106
+ }, z.core.$strict>;
2107
+ committed_at: z.ZodString;
2108
+ }, z.core.$strict>>>;
2109
+ completed: z.ZodNumber;
2110
+ total: z.ZodLiteral<12>;
2111
+ }, z.core.$strict>;
2112
+ export declare const Step5StrategySseFrameSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
2113
+ id: z.ZodNumber;
2114
+ event: z.ZodLiteral<"snapshot">;
2115
+ data: z.ZodObject<{
2116
+ job_id: z.ZodString;
2117
+ site_id: z.ZodString;
2118
+ status: z.ZodEnum<{
2119
+ failed: "failed";
2120
+ succeeded: "succeeded";
2121
+ running: "running";
2122
+ }>;
2123
+ revision: z.ZodNumber;
2124
+ items: z.ZodArray<z.ZodObject<{
2125
+ key: z.ZodEnum<{
2126
+ product: "product";
2127
+ content: "content";
2128
+ language: "language";
2129
+ goal: "goal";
2130
+ market: "market";
2131
+ persona: "persona";
2132
+ brand: "brand";
2133
+ competition: "competition";
2134
+ structure: "structure";
2135
+ seogeo: "seogeo";
2136
+ conversion: "conversion";
2137
+ risk: "risk";
2138
+ }>;
2139
+ position: z.ZodNumber;
2140
+ category: z.ZodString;
2141
+ title: z.ZodString;
2142
+ summary: z.ZodString;
2143
+ rationale: z.ZodString;
2144
+ parameter: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2145
+ options: z.ZodTuple<[z.ZodObject<{
2146
+ id: z.ZodEnum<{
2147
+ recommended: "recommended";
2148
+ conservative: "conservative";
2149
+ focused: "focused";
2150
+ }>;
2151
+ label: z.ZodString;
2152
+ note: z.ZodString;
2153
+ impact: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2154
+ set_value: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2155
+ }, z.core.$strict>, z.ZodObject<{
2156
+ id: z.ZodEnum<{
2157
+ recommended: "recommended";
2158
+ conservative: "conservative";
2159
+ focused: "focused";
2160
+ }>;
2161
+ label: z.ZodString;
2162
+ note: z.ZodString;
2163
+ impact: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2164
+ set_value: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2165
+ }, z.core.$strict>, z.ZodObject<{
2166
+ id: z.ZodEnum<{
2167
+ recommended: "recommended";
2168
+ conservative: "conservative";
2169
+ focused: "focused";
2170
+ }>;
2171
+ label: z.ZodString;
2172
+ note: z.ZodString;
2173
+ impact: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2174
+ set_value: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2175
+ }, z.core.$strict>], null>;
2176
+ plan: z.ZodOptional<z.ZodNullable<z.ZodObject<{
2177
+ lead: z.ZodString;
2178
+ title: z.ZodString;
2179
+ columns: z.ZodArray<z.ZodString>;
2180
+ rows: z.ZodArray<z.ZodArray<z.ZodString>>;
2181
+ }, z.core.$strict>>>;
2182
+ note_tips: z.ZodArray<z.ZodString>;
2183
+ note_placeholder: z.ZodString;
2184
+ evidence_refs: z.ZodArray<z.ZodObject<{
2185
+ source_type: z.ZodEnum<{
2186
+ step2: "step2";
2187
+ step3: "step3";
2188
+ }>;
2189
+ source_id: z.ZodString;
2190
+ field_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2191
+ }, z.core.$strict>>;
2192
+ semrush_recommendations: z.ZodOptional<z.ZodNullable<z.ZodObject<{
2193
+ schema_version: z.ZodLiteral<1>;
2194
+ provider: z.ZodLiteral<"semrush">;
2195
+ api_version: z.ZodLiteral<"v4">;
2196
+ database: z.ZodString;
2197
+ country: z.ZodString;
2198
+ fetched_at: z.ZodString;
2199
+ context_hash: z.ZodString;
2200
+ status: z.ZodEnum<{
2201
+ ready: "ready";
2202
+ failed: "failed";
2203
+ disabled: "disabled";
2204
+ empty: "empty";
2205
+ timeout: "timeout";
2206
+ rate_limited: "rate_limited";
2207
+ quota_exhausted: "quota_exhausted";
2208
+ }>;
2209
+ seeds: z.ZodArray<z.ZodObject<{
2210
+ id: z.ZodString;
2211
+ term: z.ZodString;
2212
+ source_type: z.ZodEnum<{
2213
+ step2: "step2";
2214
+ step3: "step3";
2215
+ step5: "step5";
2216
+ }>;
2217
+ source_id: z.ZodString;
2218
+ field_path: z.ZodString;
2219
+ }, z.core.$strict>>;
2220
+ intent_groups: z.ZodArray<z.ZodObject<{
2221
+ id: z.ZodString;
2222
+ intent: z.ZodEnum<{
2223
+ INFORMATIONAL: "INFORMATIONAL";
2224
+ NAVIGATIONAL: "NAVIGATIONAL";
2225
+ COMMERCIAL: "COMMERCIAL";
2226
+ TRANSACTIONAL: "TRANSACTIONAL";
2227
+ }>;
2228
+ title: z.ZodString;
2229
+ landing_page_type: z.ZodEnum<{
2230
+ product: "product";
2231
+ category: "category";
2232
+ blog: "blog";
2233
+ landing: "landing";
2234
+ }>;
2235
+ keywords: z.ZodArray<z.ZodObject<{
2236
+ keyword: z.ZodString;
2237
+ normalized_keyword: z.ZodString;
2238
+ intents: z.ZodArray<z.ZodEnum<{
2239
+ INFORMATIONAL: "INFORMATIONAL";
2240
+ NAVIGATIONAL: "NAVIGATIONAL";
2241
+ COMMERCIAL: "COMMERCIAL";
2242
+ TRANSACTIONAL: "TRANSACTIONAL";
2243
+ }>>;
2244
+ search_volume: z.ZodNumber;
2245
+ keyword_difficulty: z.ZodNumber;
2246
+ cpc: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
2247
+ trend: z.ZodArray<z.ZodNumber>;
2248
+ serp_features: z.ZodArray<z.ZodString>;
2249
+ fit: z.ZodObject<{
2250
+ seo: z.ZodNumber;
2251
+ geo: z.ZodNumber;
2252
+ buyer: z.ZodNumber;
2253
+ }, z.core.$strict>;
2254
+ recommended_channel: z.ZodEnum<{
2255
+ SEO: "SEO";
2256
+ GEO: "GEO";
2257
+ DUAL: "DUAL";
2258
+ }>;
2259
+ priority: z.ZodEnum<{
2260
+ P0: "P0";
2261
+ P1: "P1";
2262
+ P2: "P2";
2263
+ P3: "P3";
2264
+ }>;
2265
+ already_in_plan: z.ZodBoolean;
2266
+ page_level: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
2267
+ }, z.core.$strict>>;
2268
+ }, z.core.$strict>>;
2269
+ error_code: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2270
+ }, z.core.$strict>>>;
2271
+ }, z.core.$strict>>;
2272
+ decisions: z.ZodArray<z.ZodObject<{
2273
+ item_key: z.ZodEnum<{
2274
+ product: "product";
2275
+ content: "content";
2276
+ language: "language";
2277
+ goal: "goal";
2278
+ market: "market";
2279
+ persona: "persona";
2280
+ brand: "brand";
2281
+ competition: "competition";
2282
+ structure: "structure";
2283
+ seogeo: "seogeo";
2284
+ conversion: "conversion";
2285
+ risk: "risk";
2286
+ }>;
2287
+ selected_option_id: z.ZodEnum<{
2288
+ recommended: "recommended";
2289
+ conservative: "conservative";
2290
+ focused: "focused";
2291
+ }>;
2292
+ note: z.ZodString;
2293
+ custom_payload: z.ZodOptional<z.ZodObject<{
2294
+ rows: z.ZodOptional<z.ZodArray<z.ZodObject<{
2295
+ id: z.ZodString;
2296
+ type: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
2297
+ cells: z.ZodTuple<[z.ZodString, z.ZodString, z.ZodString, z.ZodString, z.ZodString, z.ZodString], null>;
2298
+ }, z.core.$strict>>>;
2299
+ }, z.core.$strict>>;
2300
+ selected_value: z.ZodNullable<z.ZodUnknown>;
2301
+ accepted_at: z.ZodString;
2302
+ }, z.core.$strict>>;
2303
+ output_checksum: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2304
+ error_code: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2305
+ error_message: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2306
+ committed_version: z.ZodOptional<z.ZodNullable<z.ZodObject<{
2307
+ strategy_version_id: z.ZodString;
2308
+ site_id: z.ZodString;
2309
+ source_job_id: z.ZodString;
2310
+ version: z.ZodNumber;
2311
+ checksum: z.ZodString;
2312
+ snapshot: z.ZodObject<{
2313
+ schema_version: z.ZodLiteral<1>;
2314
+ source_job_id: z.ZodString;
2315
+ site_id: z.ZodString;
2316
+ items: z.ZodArray<z.ZodObject<{
2317
+ key: z.ZodEnum<{
2318
+ product: "product";
2319
+ content: "content";
2320
+ language: "language";
2321
+ goal: "goal";
2322
+ market: "market";
2323
+ persona: "persona";
2324
+ brand: "brand";
2325
+ competition: "competition";
2326
+ structure: "structure";
2327
+ seogeo: "seogeo";
2328
+ conversion: "conversion";
2329
+ risk: "risk";
2330
+ }>;
2331
+ position: z.ZodNumber;
2332
+ category: z.ZodString;
2333
+ title: z.ZodString;
2334
+ summary: z.ZodString;
2335
+ rationale: z.ZodString;
2336
+ parameter: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2337
+ options: z.ZodTuple<[z.ZodObject<{
2338
+ id: z.ZodEnum<{
2339
+ recommended: "recommended";
2340
+ conservative: "conservative";
2341
+ focused: "focused";
2342
+ }>;
2343
+ label: z.ZodString;
2344
+ note: z.ZodString;
2345
+ impact: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2346
+ set_value: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2347
+ }, z.core.$strict>, z.ZodObject<{
2348
+ id: z.ZodEnum<{
2349
+ recommended: "recommended";
2350
+ conservative: "conservative";
2351
+ focused: "focused";
2352
+ }>;
2353
+ label: z.ZodString;
2354
+ note: z.ZodString;
2355
+ impact: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2356
+ set_value: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2357
+ }, z.core.$strict>, z.ZodObject<{
2358
+ id: z.ZodEnum<{
2359
+ recommended: "recommended";
2360
+ conservative: "conservative";
2361
+ focused: "focused";
2362
+ }>;
2363
+ label: z.ZodString;
2364
+ note: z.ZodString;
2365
+ impact: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2366
+ set_value: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2367
+ }, z.core.$strict>], null>;
2368
+ plan: z.ZodOptional<z.ZodNullable<z.ZodObject<{
2369
+ lead: z.ZodString;
2370
+ title: z.ZodString;
2371
+ columns: z.ZodArray<z.ZodString>;
2372
+ rows: z.ZodArray<z.ZodArray<z.ZodString>>;
2373
+ }, z.core.$strict>>>;
2374
+ note_tips: z.ZodArray<z.ZodString>;
2375
+ note_placeholder: z.ZodString;
2376
+ evidence_refs: z.ZodArray<z.ZodObject<{
2377
+ source_type: z.ZodEnum<{
2378
+ step2: "step2";
2379
+ step3: "step3";
2380
+ }>;
2381
+ source_id: z.ZodString;
2382
+ field_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2383
+ }, z.core.$strict>>;
2384
+ semrush_recommendations: z.ZodOptional<z.ZodNullable<z.ZodObject<{
2385
+ schema_version: z.ZodLiteral<1>;
2386
+ provider: z.ZodLiteral<"semrush">;
2387
+ api_version: z.ZodLiteral<"v4">;
2388
+ database: z.ZodString;
2389
+ country: z.ZodString;
2390
+ fetched_at: z.ZodString;
2391
+ context_hash: z.ZodString;
2392
+ status: z.ZodEnum<{
2393
+ ready: "ready";
2394
+ failed: "failed";
2395
+ disabled: "disabled";
2396
+ empty: "empty";
2397
+ timeout: "timeout";
2398
+ rate_limited: "rate_limited";
2399
+ quota_exhausted: "quota_exhausted";
2400
+ }>;
2401
+ seeds: z.ZodArray<z.ZodObject<{
2402
+ id: z.ZodString;
2403
+ term: z.ZodString;
2404
+ source_type: z.ZodEnum<{
2405
+ step2: "step2";
2406
+ step3: "step3";
2407
+ step5: "step5";
2408
+ }>;
2409
+ source_id: z.ZodString;
2410
+ field_path: z.ZodString;
2411
+ }, z.core.$strict>>;
2412
+ intent_groups: z.ZodArray<z.ZodObject<{
2413
+ id: z.ZodString;
2414
+ intent: z.ZodEnum<{
2415
+ INFORMATIONAL: "INFORMATIONAL";
2416
+ NAVIGATIONAL: "NAVIGATIONAL";
2417
+ COMMERCIAL: "COMMERCIAL";
2418
+ TRANSACTIONAL: "TRANSACTIONAL";
2419
+ }>;
2420
+ title: z.ZodString;
2421
+ landing_page_type: z.ZodEnum<{
2422
+ product: "product";
2423
+ category: "category";
2424
+ blog: "blog";
2425
+ landing: "landing";
2426
+ }>;
2427
+ keywords: z.ZodArray<z.ZodObject<{
2428
+ keyword: z.ZodString;
2429
+ normalized_keyword: z.ZodString;
2430
+ intents: z.ZodArray<z.ZodEnum<{
2431
+ INFORMATIONAL: "INFORMATIONAL";
2432
+ NAVIGATIONAL: "NAVIGATIONAL";
2433
+ COMMERCIAL: "COMMERCIAL";
2434
+ TRANSACTIONAL: "TRANSACTIONAL";
2435
+ }>>;
2436
+ search_volume: z.ZodNumber;
2437
+ keyword_difficulty: z.ZodNumber;
2438
+ cpc: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
2439
+ trend: z.ZodArray<z.ZodNumber>;
2440
+ serp_features: z.ZodArray<z.ZodString>;
2441
+ fit: z.ZodObject<{
2442
+ seo: z.ZodNumber;
2443
+ geo: z.ZodNumber;
2444
+ buyer: z.ZodNumber;
2445
+ }, z.core.$strict>;
2446
+ recommended_channel: z.ZodEnum<{
2447
+ SEO: "SEO";
2448
+ GEO: "GEO";
2449
+ DUAL: "DUAL";
2450
+ }>;
2451
+ priority: z.ZodEnum<{
2452
+ P0: "P0";
2453
+ P1: "P1";
2454
+ P2: "P2";
2455
+ P3: "P3";
2456
+ }>;
2457
+ already_in_plan: z.ZodBoolean;
2458
+ page_level: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
2459
+ }, z.core.$strict>>;
2460
+ }, z.core.$strict>>;
2461
+ error_code: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2462
+ }, z.core.$strict>>>;
2463
+ }, z.core.$strict>>;
2464
+ decisions: z.ZodArray<z.ZodObject<{
2465
+ item_key: z.ZodEnum<{
2466
+ product: "product";
2467
+ content: "content";
2468
+ language: "language";
2469
+ goal: "goal";
2470
+ market: "market";
2471
+ persona: "persona";
2472
+ brand: "brand";
2473
+ competition: "competition";
2474
+ structure: "structure";
2475
+ seogeo: "seogeo";
2476
+ conversion: "conversion";
2477
+ risk: "risk";
2478
+ }>;
2479
+ selected_option_id: z.ZodEnum<{
2480
+ recommended: "recommended";
2481
+ conservative: "conservative";
2482
+ focused: "focused";
2483
+ }>;
2484
+ note: z.ZodString;
2485
+ custom_payload: z.ZodOptional<z.ZodObject<{
2486
+ rows: z.ZodOptional<z.ZodArray<z.ZodObject<{
2487
+ id: z.ZodString;
2488
+ type: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
2489
+ cells: z.ZodTuple<[z.ZodString, z.ZodString, z.ZodString, z.ZodString, z.ZodString, z.ZodString], null>;
2490
+ }, z.core.$strict>>>;
2491
+ }, z.core.$strict>>;
2492
+ selected_value: z.ZodNullable<z.ZodUnknown>;
2493
+ accepted_at: z.ZodString;
2494
+ }, z.core.$strict>>;
2495
+ }, z.core.$strict>;
2496
+ committed_at: z.ZodString;
2497
+ }, z.core.$strict>>>;
2498
+ completed: z.ZodNumber;
2499
+ total: z.ZodLiteral<12>;
2500
+ }, z.core.$strict>;
2501
+ }, z.core.$strict>, z.ZodObject<{
2502
+ id: z.ZodNumber;
2503
+ event: z.ZodLiteral<"strategy_item_start">;
2504
+ data: z.ZodObject<{
2505
+ key: z.ZodEnum<{
2506
+ product: "product";
2507
+ content: "content";
2508
+ language: "language";
2509
+ goal: "goal";
2510
+ market: "market";
2511
+ persona: "persona";
2512
+ brand: "brand";
2513
+ competition: "competition";
2514
+ structure: "structure";
2515
+ seogeo: "seogeo";
2516
+ conversion: "conversion";
2517
+ risk: "risk";
2518
+ }>;
2519
+ position: z.ZodNumber;
2520
+ }, z.core.$strict>;
2521
+ }, z.core.$strict>, z.ZodObject<{
2522
+ id: z.ZodNumber;
2523
+ event: z.ZodLiteral<"strategy_item_done">;
2524
+ data: z.ZodObject<{
2525
+ item: z.ZodObject<{
2526
+ key: z.ZodEnum<{
2527
+ product: "product";
2528
+ content: "content";
2529
+ language: "language";
2530
+ goal: "goal";
2531
+ market: "market";
2532
+ persona: "persona";
2533
+ brand: "brand";
2534
+ competition: "competition";
2535
+ structure: "structure";
2536
+ seogeo: "seogeo";
2537
+ conversion: "conversion";
2538
+ risk: "risk";
2539
+ }>;
2540
+ position: z.ZodNumber;
2541
+ category: z.ZodString;
2542
+ title: z.ZodString;
2543
+ summary: z.ZodString;
2544
+ rationale: z.ZodString;
2545
+ parameter: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2546
+ options: z.ZodTuple<[z.ZodObject<{
2547
+ id: z.ZodEnum<{
2548
+ recommended: "recommended";
2549
+ conservative: "conservative";
2550
+ focused: "focused";
2551
+ }>;
2552
+ label: z.ZodString;
2553
+ note: z.ZodString;
2554
+ impact: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2555
+ set_value: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2556
+ }, z.core.$strict>, z.ZodObject<{
2557
+ id: z.ZodEnum<{
2558
+ recommended: "recommended";
2559
+ conservative: "conservative";
2560
+ focused: "focused";
2561
+ }>;
2562
+ label: z.ZodString;
2563
+ note: z.ZodString;
2564
+ impact: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2565
+ set_value: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2566
+ }, z.core.$strict>, z.ZodObject<{
2567
+ id: z.ZodEnum<{
2568
+ recommended: "recommended";
2569
+ conservative: "conservative";
2570
+ focused: "focused";
2571
+ }>;
2572
+ label: z.ZodString;
2573
+ note: z.ZodString;
2574
+ impact: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2575
+ set_value: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2576
+ }, z.core.$strict>], null>;
2577
+ plan: z.ZodOptional<z.ZodNullable<z.ZodObject<{
2578
+ lead: z.ZodString;
2579
+ title: z.ZodString;
2580
+ columns: z.ZodArray<z.ZodString>;
2581
+ rows: z.ZodArray<z.ZodArray<z.ZodString>>;
2582
+ }, z.core.$strict>>>;
2583
+ note_tips: z.ZodArray<z.ZodString>;
2584
+ note_placeholder: z.ZodString;
2585
+ evidence_refs: z.ZodArray<z.ZodObject<{
2586
+ source_type: z.ZodEnum<{
2587
+ step2: "step2";
2588
+ step3: "step3";
2589
+ }>;
2590
+ source_id: z.ZodString;
2591
+ field_path: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2592
+ }, z.core.$strict>>;
2593
+ semrush_recommendations: z.ZodOptional<z.ZodNullable<z.ZodObject<{
2594
+ schema_version: z.ZodLiteral<1>;
2595
+ provider: z.ZodLiteral<"semrush">;
2596
+ api_version: z.ZodLiteral<"v4">;
2597
+ database: z.ZodString;
2598
+ country: z.ZodString;
2599
+ fetched_at: z.ZodString;
2600
+ context_hash: z.ZodString;
2601
+ status: z.ZodEnum<{
2602
+ ready: "ready";
2603
+ failed: "failed";
2604
+ disabled: "disabled";
2605
+ empty: "empty";
2606
+ timeout: "timeout";
2607
+ rate_limited: "rate_limited";
2608
+ quota_exhausted: "quota_exhausted";
2609
+ }>;
2610
+ seeds: z.ZodArray<z.ZodObject<{
2611
+ id: z.ZodString;
2612
+ term: z.ZodString;
2613
+ source_type: z.ZodEnum<{
2614
+ step2: "step2";
2615
+ step3: "step3";
2616
+ step5: "step5";
2617
+ }>;
2618
+ source_id: z.ZodString;
2619
+ field_path: z.ZodString;
2620
+ }, z.core.$strict>>;
2621
+ intent_groups: z.ZodArray<z.ZodObject<{
2622
+ id: z.ZodString;
2623
+ intent: z.ZodEnum<{
2624
+ INFORMATIONAL: "INFORMATIONAL";
2625
+ NAVIGATIONAL: "NAVIGATIONAL";
2626
+ COMMERCIAL: "COMMERCIAL";
2627
+ TRANSACTIONAL: "TRANSACTIONAL";
2628
+ }>;
2629
+ title: z.ZodString;
2630
+ landing_page_type: z.ZodEnum<{
2631
+ product: "product";
2632
+ category: "category";
2633
+ blog: "blog";
2634
+ landing: "landing";
2635
+ }>;
2636
+ keywords: z.ZodArray<z.ZodObject<{
2637
+ keyword: z.ZodString;
2638
+ normalized_keyword: z.ZodString;
2639
+ intents: z.ZodArray<z.ZodEnum<{
2640
+ INFORMATIONAL: "INFORMATIONAL";
2641
+ NAVIGATIONAL: "NAVIGATIONAL";
2642
+ COMMERCIAL: "COMMERCIAL";
2643
+ TRANSACTIONAL: "TRANSACTIONAL";
2644
+ }>>;
2645
+ search_volume: z.ZodNumber;
2646
+ keyword_difficulty: z.ZodNumber;
2647
+ cpc: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
2648
+ trend: z.ZodArray<z.ZodNumber>;
2649
+ serp_features: z.ZodArray<z.ZodString>;
2650
+ fit: z.ZodObject<{
2651
+ seo: z.ZodNumber;
2652
+ geo: z.ZodNumber;
2653
+ buyer: z.ZodNumber;
2654
+ }, z.core.$strict>;
2655
+ recommended_channel: z.ZodEnum<{
2656
+ SEO: "SEO";
2657
+ GEO: "GEO";
2658
+ DUAL: "DUAL";
2659
+ }>;
2660
+ priority: z.ZodEnum<{
2661
+ P0: "P0";
2662
+ P1: "P1";
2663
+ P2: "P2";
2664
+ P3: "P3";
2665
+ }>;
2666
+ already_in_plan: z.ZodBoolean;
2667
+ page_level: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>]>>;
2668
+ }, z.core.$strict>>;
2669
+ }, z.core.$strict>>;
2670
+ error_code: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2671
+ }, z.core.$strict>>>;
2672
+ }, z.core.$strict>;
2673
+ }, z.core.$strict>;
2674
+ }, z.core.$strict>, z.ZodObject<{
2675
+ id: z.ZodNumber;
2676
+ event: z.ZodLiteral<"strategy_items_invalidated">;
2677
+ data: z.ZodObject<{
2678
+ after_position: z.ZodNumber;
2679
+ }, z.core.$strict>;
2680
+ }, z.core.$strict>, z.ZodObject<{
2681
+ id: z.ZodNumber;
2682
+ event: z.ZodLiteral<"strategy_generation_done">;
2683
+ data: z.ZodObject<{
2684
+ item_count: z.ZodLiteral<12>;
2685
+ schema_version: z.ZodLiteral<1>;
2686
+ checksum: z.ZodString;
2687
+ }, z.core.$strict>;
2688
+ }, z.core.$strict>, z.ZodObject<{
2689
+ id: z.ZodNumber;
2690
+ event: z.ZodLiteral<"failed">;
2691
+ data: z.ZodObject<{
2692
+ code: z.ZodString;
2693
+ message: z.ZodString;
2694
+ retryable: z.ZodBoolean;
2695
+ }, z.core.$strict>;
2696
+ }, z.core.$strict>], "event">;
2697
+ export type Step5StrategySseFrame = z.infer<typeof Step5StrategySseFrameSchema>;