assuremind 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,2950 @@
1
+ import { z } from 'zod';
2
+ import pino from 'pino';
3
+
4
+ declare const ScreenshotModeSchema: z.ZodEnum<["off", "on", "only-on-failure"]>;
5
+ declare const VideoModeSchema: z.ZodEnum<["off", "on", "on-first-retry", "retain-on-failure"]>;
6
+ declare const TraceModeSchema: z.ZodEnum<["off", "on", "on-first-retry", "retain-on-failure"]>;
7
+ declare const BrowserNameSchema: z.ZodEnum<["chromium", "firefox", "webkit"]>;
8
+ type ScreenshotMode = z.infer<typeof ScreenshotModeSchema>;
9
+ type VideoMode = z.infer<typeof VideoModeSchema>;
10
+ type TraceMode = z.infer<typeof TraceModeSchema>;
11
+ type BrowserName = z.infer<typeof BrowserNameSchema>;
12
+ declare const HealingConfigSchema: z.ZodObject<{
13
+ enabled: z.ZodBoolean;
14
+ maxLevel: z.ZodNumber;
15
+ dailyBudget: z.ZodNumber;
16
+ autoPR: z.ZodBoolean;
17
+ }, "strip", z.ZodTypeAny, {
18
+ enabled: boolean;
19
+ maxLevel: number;
20
+ dailyBudget: number;
21
+ autoPR: boolean;
22
+ }, {
23
+ enabled: boolean;
24
+ maxLevel: number;
25
+ dailyBudget: number;
26
+ autoPR: boolean;
27
+ }>;
28
+ declare const ReportingConfigSchema: z.ZodObject<{
29
+ allure: z.ZodBoolean;
30
+ html: z.ZodBoolean;
31
+ json: z.ZodBoolean;
32
+ }, "strip", z.ZodTypeAny, {
33
+ allure: boolean;
34
+ html: boolean;
35
+ json: boolean;
36
+ }, {
37
+ allure: boolean;
38
+ html: boolean;
39
+ json: boolean;
40
+ }>;
41
+ declare const AutotestConfigSchema: z.ZodObject<{
42
+ baseUrl: z.ZodString;
43
+ environment: z.ZodDefault<z.ZodEnum<["dev", "stage", "test", "prod"]>>;
44
+ environmentUrls: z.ZodDefault<z.ZodObject<{
45
+ dev: z.ZodDefault<z.ZodUnion<[z.ZodString, z.ZodLiteral<"">]>>;
46
+ stage: z.ZodDefault<z.ZodUnion<[z.ZodString, z.ZodLiteral<"">]>>;
47
+ test: z.ZodDefault<z.ZodUnion<[z.ZodString, z.ZodLiteral<"">]>>;
48
+ prod: z.ZodDefault<z.ZodUnion<[z.ZodString, z.ZodLiteral<"">]>>;
49
+ }, "strip", z.ZodTypeAny, {
50
+ dev: string;
51
+ stage: string;
52
+ test: string;
53
+ prod: string;
54
+ }, {
55
+ dev?: string | undefined;
56
+ stage?: string | undefined;
57
+ test?: string | undefined;
58
+ prod?: string | undefined;
59
+ }>>;
60
+ browsers: z.ZodArray<z.ZodEnum<["chromium", "firefox", "webkit"]>, "many">;
61
+ headless: z.ZodBoolean;
62
+ viewport: z.ZodDefault<z.ZodObject<{
63
+ width: z.ZodNumber;
64
+ height: z.ZodNumber;
65
+ }, "strip", z.ZodTypeAny, {
66
+ width: number;
67
+ height: number;
68
+ }, {
69
+ width: number;
70
+ height: number;
71
+ }>>;
72
+ timeout: z.ZodNumber;
73
+ retries: z.ZodNumber;
74
+ parallel: z.ZodNumber;
75
+ pageLoad: z.ZodDefault<z.ZodEnum<["commit", "domcontentloaded", "load", "networkidle"]>>;
76
+ screenshot: z.ZodEnum<["off", "on", "only-on-failure"]>;
77
+ video: z.ZodEnum<["off", "on", "on-first-retry", "retain-on-failure"]>;
78
+ trace: z.ZodEnum<["off", "on", "on-first-retry", "retain-on-failure"]>;
79
+ healing: z.ZodObject<{
80
+ enabled: z.ZodBoolean;
81
+ maxLevel: z.ZodNumber;
82
+ dailyBudget: z.ZodNumber;
83
+ autoPR: z.ZodBoolean;
84
+ }, "strip", z.ZodTypeAny, {
85
+ enabled: boolean;
86
+ maxLevel: number;
87
+ dailyBudget: number;
88
+ autoPR: boolean;
89
+ }, {
90
+ enabled: boolean;
91
+ maxLevel: number;
92
+ dailyBudget: number;
93
+ autoPR: boolean;
94
+ }>;
95
+ reporting: z.ZodObject<{
96
+ allure: z.ZodBoolean;
97
+ html: z.ZodBoolean;
98
+ json: z.ZodBoolean;
99
+ }, "strip", z.ZodTypeAny, {
100
+ allure: boolean;
101
+ html: boolean;
102
+ json: boolean;
103
+ }, {
104
+ allure: boolean;
105
+ html: boolean;
106
+ json: boolean;
107
+ }>;
108
+ studioPort: z.ZodNumber;
109
+ profiles: z.ZodDefault<z.ZodArray<z.ZodObject<{
110
+ name: z.ZodString;
111
+ environment: z.ZodEnum<["dev", "stage", "test", "prod"]>;
112
+ baseUrl: z.ZodString;
113
+ browsers: z.ZodArray<z.ZodEnum<["chromium", "firefox", "webkit"]>, "many">;
114
+ headless: z.ZodOptional<z.ZodBoolean>;
115
+ }, "strip", z.ZodTypeAny, {
116
+ baseUrl: string;
117
+ environment: "dev" | "stage" | "test" | "prod";
118
+ browsers: ("chromium" | "firefox" | "webkit")[];
119
+ name: string;
120
+ headless?: boolean | undefined;
121
+ }, {
122
+ baseUrl: string;
123
+ environment: "dev" | "stage" | "test" | "prod";
124
+ browsers: ("chromium" | "firefox" | "webkit")[];
125
+ name: string;
126
+ headless?: boolean | undefined;
127
+ }>, "many">>;
128
+ activeProfile: z.ZodOptional<z.ZodString>;
129
+ /** Playwright device descriptor name for emulation (e.g. 'iPhone 15 Pro'). */
130
+ device: z.ZodOptional<z.ZodString>;
131
+ }, "strip", z.ZodTypeAny, {
132
+ baseUrl: string;
133
+ environment: "dev" | "stage" | "test" | "prod";
134
+ environmentUrls: {
135
+ dev: string;
136
+ stage: string;
137
+ test: string;
138
+ prod: string;
139
+ };
140
+ browsers: ("chromium" | "firefox" | "webkit")[];
141
+ headless: boolean;
142
+ viewport: {
143
+ width: number;
144
+ height: number;
145
+ };
146
+ timeout: number;
147
+ retries: number;
148
+ parallel: number;
149
+ pageLoad: "commit" | "domcontentloaded" | "load" | "networkidle";
150
+ screenshot: "off" | "on" | "only-on-failure";
151
+ video: "off" | "on" | "on-first-retry" | "retain-on-failure";
152
+ trace: "off" | "on" | "on-first-retry" | "retain-on-failure";
153
+ healing: {
154
+ enabled: boolean;
155
+ maxLevel: number;
156
+ dailyBudget: number;
157
+ autoPR: boolean;
158
+ };
159
+ reporting: {
160
+ allure: boolean;
161
+ html: boolean;
162
+ json: boolean;
163
+ };
164
+ studioPort: number;
165
+ profiles: {
166
+ baseUrl: string;
167
+ environment: "dev" | "stage" | "test" | "prod";
168
+ browsers: ("chromium" | "firefox" | "webkit")[];
169
+ name: string;
170
+ headless?: boolean | undefined;
171
+ }[];
172
+ activeProfile?: string | undefined;
173
+ device?: string | undefined;
174
+ }, {
175
+ baseUrl: string;
176
+ browsers: ("chromium" | "firefox" | "webkit")[];
177
+ headless: boolean;
178
+ timeout: number;
179
+ retries: number;
180
+ parallel: number;
181
+ screenshot: "off" | "on" | "only-on-failure";
182
+ video: "off" | "on" | "on-first-retry" | "retain-on-failure";
183
+ trace: "off" | "on" | "on-first-retry" | "retain-on-failure";
184
+ healing: {
185
+ enabled: boolean;
186
+ maxLevel: number;
187
+ dailyBudget: number;
188
+ autoPR: boolean;
189
+ };
190
+ reporting: {
191
+ allure: boolean;
192
+ html: boolean;
193
+ json: boolean;
194
+ };
195
+ studioPort: number;
196
+ environment?: "dev" | "stage" | "test" | "prod" | undefined;
197
+ environmentUrls?: {
198
+ dev?: string | undefined;
199
+ stage?: string | undefined;
200
+ test?: string | undefined;
201
+ prod?: string | undefined;
202
+ } | undefined;
203
+ viewport?: {
204
+ width: number;
205
+ height: number;
206
+ } | undefined;
207
+ pageLoad?: "commit" | "domcontentloaded" | "load" | "networkidle" | undefined;
208
+ profiles?: {
209
+ baseUrl: string;
210
+ environment: "dev" | "stage" | "test" | "prod";
211
+ browsers: ("chromium" | "firefox" | "webkit")[];
212
+ name: string;
213
+ headless?: boolean | undefined;
214
+ }[] | undefined;
215
+ activeProfile?: string | undefined;
216
+ device?: string | undefined;
217
+ }>;
218
+ type HealingConfig = z.infer<typeof HealingConfigSchema>;
219
+ type ReportingConfig = z.infer<typeof ReportingConfigSchema>;
220
+ type AutotestConfig = z.infer<typeof AutotestConfigSchema>;
221
+
222
+ type Priority = 'critical' | 'high' | 'medium' | 'low';
223
+ type GenerationStrategy$1 = 'template' | 'cache' | 'batch' | 'fast' | 'primary';
224
+ declare const TestStepSchema: z.ZodObject<{
225
+ id: z.ZodString;
226
+ order: z.ZodNumber;
227
+ instruction: z.ZodString;
228
+ generatedCode: z.ZodString;
229
+ strategy: z.ZodEnum<["template", "cache", "batch", "fast", "primary"]>;
230
+ stepType: z.ZodDefault<z.ZodEnum<["ui", "api", "mock"]>>;
231
+ lastHealed: z.ZodNullable<z.ZodString>;
232
+ timeout: z.ZodOptional<z.ZodNumber>;
233
+ retries: z.ZodOptional<z.ZodNumber>;
234
+ mockUrl: z.ZodOptional<z.ZodString>;
235
+ mockResponse: z.ZodOptional<z.ZodString>;
236
+ mockStatus: z.ZodOptional<z.ZodNumber>;
237
+ runAudit: z.ZodOptional<z.ZodBoolean>;
238
+ }, "strip", z.ZodTypeAny, {
239
+ id: string;
240
+ order: number;
241
+ instruction: string;
242
+ generatedCode: string;
243
+ strategy: "template" | "cache" | "batch" | "fast" | "primary";
244
+ stepType: "ui" | "api" | "mock";
245
+ lastHealed: string | null;
246
+ timeout?: number | undefined;
247
+ retries?: number | undefined;
248
+ mockUrl?: string | undefined;
249
+ mockResponse?: string | undefined;
250
+ mockStatus?: number | undefined;
251
+ runAudit?: boolean | undefined;
252
+ }, {
253
+ id: string;
254
+ order: number;
255
+ instruction: string;
256
+ generatedCode: string;
257
+ strategy: "template" | "cache" | "batch" | "fast" | "primary";
258
+ lastHealed: string | null;
259
+ timeout?: number | undefined;
260
+ retries?: number | undefined;
261
+ stepType?: "ui" | "api" | "mock" | undefined;
262
+ mockUrl?: string | undefined;
263
+ mockResponse?: string | undefined;
264
+ mockStatus?: number | undefined;
265
+ runAudit?: boolean | undefined;
266
+ }>;
267
+ declare const TestCaseSchema: z.ZodObject<{
268
+ id: z.ZodString;
269
+ name: z.ZodString;
270
+ description: z.ZodString;
271
+ tags: z.ZodArray<z.ZodString, "many">;
272
+ priority: z.ZodEnum<["critical", "high", "medium", "low"]>;
273
+ timeout: z.ZodOptional<z.ZodNumber>;
274
+ dataSource: z.ZodOptional<z.ZodObject<{
275
+ type: z.ZodEnum<["inline", "json-file", "csv-file"]>;
276
+ path: z.ZodOptional<z.ZodString>;
277
+ data: z.ZodOptional<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodString>, "many">>;
278
+ }, "strip", z.ZodTypeAny, {
279
+ type: "inline" | "json-file" | "csv-file";
280
+ path?: string | undefined;
281
+ data?: Record<string, string>[] | undefined;
282
+ }, {
283
+ type: "inline" | "json-file" | "csv-file";
284
+ path?: string | undefined;
285
+ data?: Record<string, string>[] | undefined;
286
+ }>>;
287
+ steps: z.ZodArray<z.ZodObject<{
288
+ id: z.ZodString;
289
+ order: z.ZodNumber;
290
+ instruction: z.ZodString;
291
+ generatedCode: z.ZodString;
292
+ strategy: z.ZodEnum<["template", "cache", "batch", "fast", "primary"]>;
293
+ stepType: z.ZodDefault<z.ZodEnum<["ui", "api", "mock"]>>;
294
+ lastHealed: z.ZodNullable<z.ZodString>;
295
+ timeout: z.ZodOptional<z.ZodNumber>;
296
+ retries: z.ZodOptional<z.ZodNumber>;
297
+ mockUrl: z.ZodOptional<z.ZodString>;
298
+ mockResponse: z.ZodOptional<z.ZodString>;
299
+ mockStatus: z.ZodOptional<z.ZodNumber>;
300
+ runAudit: z.ZodOptional<z.ZodBoolean>;
301
+ }, "strip", z.ZodTypeAny, {
302
+ id: string;
303
+ order: number;
304
+ instruction: string;
305
+ generatedCode: string;
306
+ strategy: "template" | "cache" | "batch" | "fast" | "primary";
307
+ stepType: "ui" | "api" | "mock";
308
+ lastHealed: string | null;
309
+ timeout?: number | undefined;
310
+ retries?: number | undefined;
311
+ mockUrl?: string | undefined;
312
+ mockResponse?: string | undefined;
313
+ mockStatus?: number | undefined;
314
+ runAudit?: boolean | undefined;
315
+ }, {
316
+ id: string;
317
+ order: number;
318
+ instruction: string;
319
+ generatedCode: string;
320
+ strategy: "template" | "cache" | "batch" | "fast" | "primary";
321
+ lastHealed: string | null;
322
+ timeout?: number | undefined;
323
+ retries?: number | undefined;
324
+ stepType?: "ui" | "api" | "mock" | undefined;
325
+ mockUrl?: string | undefined;
326
+ mockResponse?: string | undefined;
327
+ mockStatus?: number | undefined;
328
+ runAudit?: boolean | undefined;
329
+ }>, "many">;
330
+ caseHooks: z.ZodDefault<z.ZodObject<{
331
+ before: z.ZodDefault<z.ZodArray<z.ZodObject<{
332
+ id: z.ZodString;
333
+ instruction: z.ZodString;
334
+ generatedCode: z.ZodDefault<z.ZodString>;
335
+ order: z.ZodDefault<z.ZodNumber>;
336
+ }, "strip", z.ZodTypeAny, {
337
+ id: string;
338
+ order: number;
339
+ instruction: string;
340
+ generatedCode: string;
341
+ }, {
342
+ id: string;
343
+ instruction: string;
344
+ order?: number | undefined;
345
+ generatedCode?: string | undefined;
346
+ }>, "many">>;
347
+ after: z.ZodDefault<z.ZodArray<z.ZodObject<{
348
+ id: z.ZodString;
349
+ instruction: z.ZodString;
350
+ generatedCode: z.ZodDefault<z.ZodString>;
351
+ order: z.ZodDefault<z.ZodNumber>;
352
+ }, "strip", z.ZodTypeAny, {
353
+ id: string;
354
+ order: number;
355
+ instruction: string;
356
+ generatedCode: string;
357
+ }, {
358
+ id: string;
359
+ instruction: string;
360
+ order?: number | undefined;
361
+ generatedCode?: string | undefined;
362
+ }>, "many">>;
363
+ }, "strip", z.ZodTypeAny, {
364
+ before: {
365
+ id: string;
366
+ order: number;
367
+ instruction: string;
368
+ generatedCode: string;
369
+ }[];
370
+ after: {
371
+ id: string;
372
+ order: number;
373
+ instruction: string;
374
+ generatedCode: string;
375
+ }[];
376
+ }, {
377
+ before?: {
378
+ id: string;
379
+ instruction: string;
380
+ order?: number | undefined;
381
+ generatedCode?: string | undefined;
382
+ }[] | undefined;
383
+ after?: {
384
+ id: string;
385
+ instruction: string;
386
+ order?: number | undefined;
387
+ generatedCode?: string | undefined;
388
+ }[] | undefined;
389
+ }>>;
390
+ lighthouseCategories: z.ZodDefault<z.ZodArray<z.ZodEnum<["performance", "accessibility", "seo"]>, "many">>;
391
+ createdAt: z.ZodString;
392
+ updatedAt: z.ZodString;
393
+ }, "strip", z.ZodTypeAny, {
394
+ name: string;
395
+ id: string;
396
+ description: string;
397
+ tags: string[];
398
+ priority: "critical" | "high" | "medium" | "low";
399
+ steps: {
400
+ id: string;
401
+ order: number;
402
+ instruction: string;
403
+ generatedCode: string;
404
+ strategy: "template" | "cache" | "batch" | "fast" | "primary";
405
+ stepType: "ui" | "api" | "mock";
406
+ lastHealed: string | null;
407
+ timeout?: number | undefined;
408
+ retries?: number | undefined;
409
+ mockUrl?: string | undefined;
410
+ mockResponse?: string | undefined;
411
+ mockStatus?: number | undefined;
412
+ runAudit?: boolean | undefined;
413
+ }[];
414
+ caseHooks: {
415
+ before: {
416
+ id: string;
417
+ order: number;
418
+ instruction: string;
419
+ generatedCode: string;
420
+ }[];
421
+ after: {
422
+ id: string;
423
+ order: number;
424
+ instruction: string;
425
+ generatedCode: string;
426
+ }[];
427
+ };
428
+ lighthouseCategories: ("performance" | "accessibility" | "seo")[];
429
+ createdAt: string;
430
+ updatedAt: string;
431
+ timeout?: number | undefined;
432
+ dataSource?: {
433
+ type: "inline" | "json-file" | "csv-file";
434
+ path?: string | undefined;
435
+ data?: Record<string, string>[] | undefined;
436
+ } | undefined;
437
+ }, {
438
+ name: string;
439
+ id: string;
440
+ description: string;
441
+ tags: string[];
442
+ priority: "critical" | "high" | "medium" | "low";
443
+ steps: {
444
+ id: string;
445
+ order: number;
446
+ instruction: string;
447
+ generatedCode: string;
448
+ strategy: "template" | "cache" | "batch" | "fast" | "primary";
449
+ lastHealed: string | null;
450
+ timeout?: number | undefined;
451
+ retries?: number | undefined;
452
+ stepType?: "ui" | "api" | "mock" | undefined;
453
+ mockUrl?: string | undefined;
454
+ mockResponse?: string | undefined;
455
+ mockStatus?: number | undefined;
456
+ runAudit?: boolean | undefined;
457
+ }[];
458
+ createdAt: string;
459
+ updatedAt: string;
460
+ timeout?: number | undefined;
461
+ dataSource?: {
462
+ type: "inline" | "json-file" | "csv-file";
463
+ path?: string | undefined;
464
+ data?: Record<string, string>[] | undefined;
465
+ } | undefined;
466
+ caseHooks?: {
467
+ before?: {
468
+ id: string;
469
+ instruction: string;
470
+ order?: number | undefined;
471
+ generatedCode?: string | undefined;
472
+ }[] | undefined;
473
+ after?: {
474
+ id: string;
475
+ instruction: string;
476
+ order?: number | undefined;
477
+ generatedCode?: string | undefined;
478
+ }[] | undefined;
479
+ } | undefined;
480
+ lighthouseCategories?: ("performance" | "accessibility" | "seo")[] | undefined;
481
+ }>;
482
+ declare const TestSuiteSchema: z.ZodObject<{
483
+ id: z.ZodString;
484
+ name: z.ZodString;
485
+ description: z.ZodString;
486
+ tags: z.ZodArray<z.ZodString, "many">;
487
+ type: z.ZodDefault<z.ZodEnum<["ui", "api", "audit", "performance"]>>;
488
+ timeout: z.ZodOptional<z.ZodNumber>;
489
+ createdAt: z.ZodString;
490
+ updatedAt: z.ZodString;
491
+ }, "strip", z.ZodTypeAny, {
492
+ type: "ui" | "api" | "performance" | "audit";
493
+ name: string;
494
+ id: string;
495
+ description: string;
496
+ tags: string[];
497
+ createdAt: string;
498
+ updatedAt: string;
499
+ timeout?: number | undefined;
500
+ }, {
501
+ name: string;
502
+ id: string;
503
+ description: string;
504
+ tags: string[];
505
+ createdAt: string;
506
+ updatedAt: string;
507
+ type?: "ui" | "api" | "performance" | "audit" | undefined;
508
+ timeout?: number | undefined;
509
+ }>;
510
+ type TestStep = z.infer<typeof TestStepSchema>;
511
+ type TestCase = z.infer<typeof TestCaseSchema>;
512
+ type TestSuite = z.infer<typeof TestSuiteSchema>;
513
+
514
+ declare const RunStatusSchema: z.ZodEnum<["pending", "running", "passed", "failed", "skipped"]>;
515
+ type RunStatus = z.infer<typeof RunStatusSchema>;
516
+ interface RunConfig {
517
+ all?: boolean;
518
+ type?: string;
519
+ suite?: string;
520
+ tag?: string;
521
+ test?: string;
522
+ browsers?: string[];
523
+ env?: string;
524
+ parallel?: number;
525
+ headed?: boolean;
526
+ ci?: boolean;
527
+ reporter?: string[];
528
+ noHealing?: boolean;
529
+ screenshot?: 'off' | 'on' | 'only-on-failure';
530
+ video?: 'off' | 'on' | 'on-first-retry' | 'retain-on-failure';
531
+ trace?: 'off' | 'on' | 'on-first-retry' | 'retain-on-failure';
532
+ /** Playwright device descriptor name (e.g. 'iPhone 15 Pro') — undefined = no emulation. */
533
+ device?: string;
534
+ }
535
+ declare const StepResultSchema: z.ZodObject<{
536
+ stepId: z.ZodString;
537
+ instruction: z.ZodString;
538
+ status: z.ZodEnum<["pending", "running", "passed", "failed", "skipped"]>;
539
+ code: z.ZodString;
540
+ error: z.ZodOptional<z.ZodString>;
541
+ duration: z.ZodNumber;
542
+ screenshotPath: z.ZodOptional<z.ZodString>;
543
+ healed: z.ZodOptional<z.ZodBoolean>;
544
+ healedCode: z.ZodOptional<z.ZodString>;
545
+ stepType: z.ZodOptional<z.ZodEnum<["ui", "api", "mock"]>>;
546
+ apiRequest: z.ZodOptional<z.ZodObject<{
547
+ method: z.ZodString;
548
+ url: z.ZodString;
549
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
550
+ body: z.ZodOptional<z.ZodString>;
551
+ }, "strip", z.ZodTypeAny, {
552
+ method: string;
553
+ url: string;
554
+ headers?: Record<string, string> | undefined;
555
+ body?: string | undefined;
556
+ }, {
557
+ method: string;
558
+ url: string;
559
+ headers?: Record<string, string> | undefined;
560
+ body?: string | undefined;
561
+ }>>;
562
+ apiResponse: z.ZodOptional<z.ZodObject<{
563
+ status: z.ZodNumber;
564
+ statusText: z.ZodString;
565
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
566
+ body: z.ZodOptional<z.ZodString>;
567
+ duration: z.ZodNumber;
568
+ }, "strip", z.ZodTypeAny, {
569
+ status: number;
570
+ statusText: string;
571
+ duration: number;
572
+ headers?: Record<string, string> | undefined;
573
+ body?: string | undefined;
574
+ }, {
575
+ status: number;
576
+ statusText: string;
577
+ duration: number;
578
+ headers?: Record<string, string> | undefined;
579
+ body?: string | undefined;
580
+ }>>;
581
+ navigatedToUrl: z.ZodOptional<z.ZodString>;
582
+ auditUrl: z.ZodOptional<z.ZodString>;
583
+ }, "strip", z.ZodTypeAny, {
584
+ status: "pending" | "running" | "passed" | "failed" | "skipped";
585
+ code: string;
586
+ instruction: string;
587
+ duration: number;
588
+ stepId: string;
589
+ stepType?: "ui" | "api" | "mock" | undefined;
590
+ error?: string | undefined;
591
+ screenshotPath?: string | undefined;
592
+ healed?: boolean | undefined;
593
+ healedCode?: string | undefined;
594
+ apiRequest?: {
595
+ method: string;
596
+ url: string;
597
+ headers?: Record<string, string> | undefined;
598
+ body?: string | undefined;
599
+ } | undefined;
600
+ apiResponse?: {
601
+ status: number;
602
+ statusText: string;
603
+ duration: number;
604
+ headers?: Record<string, string> | undefined;
605
+ body?: string | undefined;
606
+ } | undefined;
607
+ navigatedToUrl?: string | undefined;
608
+ auditUrl?: string | undefined;
609
+ }, {
610
+ status: "pending" | "running" | "passed" | "failed" | "skipped";
611
+ code: string;
612
+ instruction: string;
613
+ duration: number;
614
+ stepId: string;
615
+ stepType?: "ui" | "api" | "mock" | undefined;
616
+ error?: string | undefined;
617
+ screenshotPath?: string | undefined;
618
+ healed?: boolean | undefined;
619
+ healedCode?: string | undefined;
620
+ apiRequest?: {
621
+ method: string;
622
+ url: string;
623
+ headers?: Record<string, string> | undefined;
624
+ body?: string | undefined;
625
+ } | undefined;
626
+ apiResponse?: {
627
+ status: number;
628
+ statusText: string;
629
+ duration: number;
630
+ headers?: Record<string, string> | undefined;
631
+ body?: string | undefined;
632
+ } | undefined;
633
+ navigatedToUrl?: string | undefined;
634
+ auditUrl?: string | undefined;
635
+ }>;
636
+ declare const TestCaseResultSchema: z.ZodObject<{
637
+ caseId: z.ZodString;
638
+ caseName: z.ZodString;
639
+ status: z.ZodEnum<["pending", "running", "passed", "failed", "skipped"]>;
640
+ steps: z.ZodArray<z.ZodObject<{
641
+ stepId: z.ZodString;
642
+ instruction: z.ZodString;
643
+ status: z.ZodEnum<["pending", "running", "passed", "failed", "skipped"]>;
644
+ code: z.ZodString;
645
+ error: z.ZodOptional<z.ZodString>;
646
+ duration: z.ZodNumber;
647
+ screenshotPath: z.ZodOptional<z.ZodString>;
648
+ healed: z.ZodOptional<z.ZodBoolean>;
649
+ healedCode: z.ZodOptional<z.ZodString>;
650
+ stepType: z.ZodOptional<z.ZodEnum<["ui", "api", "mock"]>>;
651
+ apiRequest: z.ZodOptional<z.ZodObject<{
652
+ method: z.ZodString;
653
+ url: z.ZodString;
654
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
655
+ body: z.ZodOptional<z.ZodString>;
656
+ }, "strip", z.ZodTypeAny, {
657
+ method: string;
658
+ url: string;
659
+ headers?: Record<string, string> | undefined;
660
+ body?: string | undefined;
661
+ }, {
662
+ method: string;
663
+ url: string;
664
+ headers?: Record<string, string> | undefined;
665
+ body?: string | undefined;
666
+ }>>;
667
+ apiResponse: z.ZodOptional<z.ZodObject<{
668
+ status: z.ZodNumber;
669
+ statusText: z.ZodString;
670
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
671
+ body: z.ZodOptional<z.ZodString>;
672
+ duration: z.ZodNumber;
673
+ }, "strip", z.ZodTypeAny, {
674
+ status: number;
675
+ statusText: string;
676
+ duration: number;
677
+ headers?: Record<string, string> | undefined;
678
+ body?: string | undefined;
679
+ }, {
680
+ status: number;
681
+ statusText: string;
682
+ duration: number;
683
+ headers?: Record<string, string> | undefined;
684
+ body?: string | undefined;
685
+ }>>;
686
+ navigatedToUrl: z.ZodOptional<z.ZodString>;
687
+ auditUrl: z.ZodOptional<z.ZodString>;
688
+ }, "strip", z.ZodTypeAny, {
689
+ status: "pending" | "running" | "passed" | "failed" | "skipped";
690
+ code: string;
691
+ instruction: string;
692
+ duration: number;
693
+ stepId: string;
694
+ stepType?: "ui" | "api" | "mock" | undefined;
695
+ error?: string | undefined;
696
+ screenshotPath?: string | undefined;
697
+ healed?: boolean | undefined;
698
+ healedCode?: string | undefined;
699
+ apiRequest?: {
700
+ method: string;
701
+ url: string;
702
+ headers?: Record<string, string> | undefined;
703
+ body?: string | undefined;
704
+ } | undefined;
705
+ apiResponse?: {
706
+ status: number;
707
+ statusText: string;
708
+ duration: number;
709
+ headers?: Record<string, string> | undefined;
710
+ body?: string | undefined;
711
+ } | undefined;
712
+ navigatedToUrl?: string | undefined;
713
+ auditUrl?: string | undefined;
714
+ }, {
715
+ status: "pending" | "running" | "passed" | "failed" | "skipped";
716
+ code: string;
717
+ instruction: string;
718
+ duration: number;
719
+ stepId: string;
720
+ stepType?: "ui" | "api" | "mock" | undefined;
721
+ error?: string | undefined;
722
+ screenshotPath?: string | undefined;
723
+ healed?: boolean | undefined;
724
+ healedCode?: string | undefined;
725
+ apiRequest?: {
726
+ method: string;
727
+ url: string;
728
+ headers?: Record<string, string> | undefined;
729
+ body?: string | undefined;
730
+ } | undefined;
731
+ apiResponse?: {
732
+ status: number;
733
+ statusText: string;
734
+ duration: number;
735
+ headers?: Record<string, string> | undefined;
736
+ body?: string | undefined;
737
+ } | undefined;
738
+ navigatedToUrl?: string | undefined;
739
+ auditUrl?: string | undefined;
740
+ }>, "many">;
741
+ duration: z.ZodNumber;
742
+ browser: z.ZodString;
743
+ /** Playwright device descriptor used for this case (undefined = no emulation). */
744
+ device: z.ZodOptional<z.ZodString>;
745
+ startedAt: z.ZodString;
746
+ finishedAt: z.ZodString;
747
+ videoPath: z.ZodOptional<z.ZodString>;
748
+ tracePath: z.ZodOptional<z.ZodString>;
749
+ dataRowIndex: z.ZodOptional<z.ZodNumber>;
750
+ dataRow: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
751
+ pageLoads: z.ZodDefault<z.ZodArray<z.ZodObject<{
752
+ url: z.ZodString;
753
+ stepIndex: z.ZodNumber;
754
+ stepInstruction: z.ZodString;
755
+ score: z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodNumber>>, number | undefined, number | null | undefined>;
756
+ a11yScore: z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodNumber>>, number | undefined, number | null | undefined>;
757
+ seoScore: z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodNumber>>, number | undefined, number | null | undefined>;
758
+ fcp: z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodNumber>>, number | undefined, number | null | undefined>;
759
+ lcp: z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodNumber>>, number | undefined, number | null | undefined>;
760
+ cls: z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodNumber>>, number | undefined, number | null | undefined>;
761
+ ttfb: z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodNumber>>, number | undefined, number | null | undefined>;
762
+ tbt: z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodNumber>>, number | undefined, number | null | undefined>;
763
+ si: z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodNumber>>, number | undefined, number | null | undefined>;
764
+ tti: z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodNumber>>, number | undefined, number | null | undefined>;
765
+ inp: z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodNumber>>, number | undefined, number | null | undefined>;
766
+ a11yAudits: z.ZodOptional<z.ZodArray<z.ZodObject<{
767
+ id: z.ZodString;
768
+ title: z.ZodString;
769
+ passed: z.ZodBoolean;
770
+ partial: z.ZodOptional<z.ZodBoolean>;
771
+ na: z.ZodOptional<z.ZodBoolean>;
772
+ }, "strip", z.ZodTypeAny, {
773
+ id: string;
774
+ passed: boolean;
775
+ title: string;
776
+ partial?: boolean | undefined;
777
+ na?: boolean | undefined;
778
+ }, {
779
+ id: string;
780
+ passed: boolean;
781
+ title: string;
782
+ partial?: boolean | undefined;
783
+ na?: boolean | undefined;
784
+ }>, "many">>;
785
+ seoAudits: z.ZodOptional<z.ZodArray<z.ZodObject<{
786
+ id: z.ZodString;
787
+ title: z.ZodString;
788
+ passed: z.ZodBoolean;
789
+ partial: z.ZodOptional<z.ZodBoolean>;
790
+ na: z.ZodOptional<z.ZodBoolean>;
791
+ }, "strip", z.ZodTypeAny, {
792
+ id: string;
793
+ passed: boolean;
794
+ title: string;
795
+ partial?: boolean | undefined;
796
+ na?: boolean | undefined;
797
+ }, {
798
+ id: string;
799
+ passed: boolean;
800
+ title: string;
801
+ partial?: boolean | undefined;
802
+ na?: boolean | undefined;
803
+ }>, "many">>;
804
+ lighthouseError: z.ZodOptional<z.ZodString>;
805
+ }, "strip", z.ZodTypeAny, {
806
+ url: string;
807
+ stepIndex: number;
808
+ stepInstruction: string;
809
+ score?: number | undefined;
810
+ a11yScore?: number | undefined;
811
+ seoScore?: number | undefined;
812
+ fcp?: number | undefined;
813
+ lcp?: number | undefined;
814
+ cls?: number | undefined;
815
+ ttfb?: number | undefined;
816
+ tbt?: number | undefined;
817
+ si?: number | undefined;
818
+ tti?: number | undefined;
819
+ inp?: number | undefined;
820
+ a11yAudits?: {
821
+ id: string;
822
+ passed: boolean;
823
+ title: string;
824
+ partial?: boolean | undefined;
825
+ na?: boolean | undefined;
826
+ }[] | undefined;
827
+ seoAudits?: {
828
+ id: string;
829
+ passed: boolean;
830
+ title: string;
831
+ partial?: boolean | undefined;
832
+ na?: boolean | undefined;
833
+ }[] | undefined;
834
+ lighthouseError?: string | undefined;
835
+ }, {
836
+ url: string;
837
+ stepIndex: number;
838
+ stepInstruction: string;
839
+ score?: number | null | undefined;
840
+ a11yScore?: number | null | undefined;
841
+ seoScore?: number | null | undefined;
842
+ fcp?: number | null | undefined;
843
+ lcp?: number | null | undefined;
844
+ cls?: number | null | undefined;
845
+ ttfb?: number | null | undefined;
846
+ tbt?: number | null | undefined;
847
+ si?: number | null | undefined;
848
+ tti?: number | null | undefined;
849
+ inp?: number | null | undefined;
850
+ a11yAudits?: {
851
+ id: string;
852
+ passed: boolean;
853
+ title: string;
854
+ partial?: boolean | undefined;
855
+ na?: boolean | undefined;
856
+ }[] | undefined;
857
+ seoAudits?: {
858
+ id: string;
859
+ passed: boolean;
860
+ title: string;
861
+ partial?: boolean | undefined;
862
+ na?: boolean | undefined;
863
+ }[] | undefined;
864
+ lighthouseError?: string | undefined;
865
+ }>, "many">>;
866
+ }, "strip", z.ZodTypeAny, {
867
+ status: "pending" | "running" | "passed" | "failed" | "skipped";
868
+ steps: {
869
+ status: "pending" | "running" | "passed" | "failed" | "skipped";
870
+ code: string;
871
+ instruction: string;
872
+ duration: number;
873
+ stepId: string;
874
+ stepType?: "ui" | "api" | "mock" | undefined;
875
+ error?: string | undefined;
876
+ screenshotPath?: string | undefined;
877
+ healed?: boolean | undefined;
878
+ healedCode?: string | undefined;
879
+ apiRequest?: {
880
+ method: string;
881
+ url: string;
882
+ headers?: Record<string, string> | undefined;
883
+ body?: string | undefined;
884
+ } | undefined;
885
+ apiResponse?: {
886
+ status: number;
887
+ statusText: string;
888
+ duration: number;
889
+ headers?: Record<string, string> | undefined;
890
+ body?: string | undefined;
891
+ } | undefined;
892
+ navigatedToUrl?: string | undefined;
893
+ auditUrl?: string | undefined;
894
+ }[];
895
+ duration: number;
896
+ caseId: string;
897
+ caseName: string;
898
+ browser: string;
899
+ startedAt: string;
900
+ finishedAt: string;
901
+ pageLoads: {
902
+ url: string;
903
+ stepIndex: number;
904
+ stepInstruction: string;
905
+ score?: number | undefined;
906
+ a11yScore?: number | undefined;
907
+ seoScore?: number | undefined;
908
+ fcp?: number | undefined;
909
+ lcp?: number | undefined;
910
+ cls?: number | undefined;
911
+ ttfb?: number | undefined;
912
+ tbt?: number | undefined;
913
+ si?: number | undefined;
914
+ tti?: number | undefined;
915
+ inp?: number | undefined;
916
+ a11yAudits?: {
917
+ id: string;
918
+ passed: boolean;
919
+ title: string;
920
+ partial?: boolean | undefined;
921
+ na?: boolean | undefined;
922
+ }[] | undefined;
923
+ seoAudits?: {
924
+ id: string;
925
+ passed: boolean;
926
+ title: string;
927
+ partial?: boolean | undefined;
928
+ na?: boolean | undefined;
929
+ }[] | undefined;
930
+ lighthouseError?: string | undefined;
931
+ }[];
932
+ device?: string | undefined;
933
+ videoPath?: string | undefined;
934
+ tracePath?: string | undefined;
935
+ dataRowIndex?: number | undefined;
936
+ dataRow?: Record<string, string> | undefined;
937
+ }, {
938
+ status: "pending" | "running" | "passed" | "failed" | "skipped";
939
+ steps: {
940
+ status: "pending" | "running" | "passed" | "failed" | "skipped";
941
+ code: string;
942
+ instruction: string;
943
+ duration: number;
944
+ stepId: string;
945
+ stepType?: "ui" | "api" | "mock" | undefined;
946
+ error?: string | undefined;
947
+ screenshotPath?: string | undefined;
948
+ healed?: boolean | undefined;
949
+ healedCode?: string | undefined;
950
+ apiRequest?: {
951
+ method: string;
952
+ url: string;
953
+ headers?: Record<string, string> | undefined;
954
+ body?: string | undefined;
955
+ } | undefined;
956
+ apiResponse?: {
957
+ status: number;
958
+ statusText: string;
959
+ duration: number;
960
+ headers?: Record<string, string> | undefined;
961
+ body?: string | undefined;
962
+ } | undefined;
963
+ navigatedToUrl?: string | undefined;
964
+ auditUrl?: string | undefined;
965
+ }[];
966
+ duration: number;
967
+ caseId: string;
968
+ caseName: string;
969
+ browser: string;
970
+ startedAt: string;
971
+ finishedAt: string;
972
+ device?: string | undefined;
973
+ videoPath?: string | undefined;
974
+ tracePath?: string | undefined;
975
+ dataRowIndex?: number | undefined;
976
+ dataRow?: Record<string, string> | undefined;
977
+ pageLoads?: {
978
+ url: string;
979
+ stepIndex: number;
980
+ stepInstruction: string;
981
+ score?: number | null | undefined;
982
+ a11yScore?: number | null | undefined;
983
+ seoScore?: number | null | undefined;
984
+ fcp?: number | null | undefined;
985
+ lcp?: number | null | undefined;
986
+ cls?: number | null | undefined;
987
+ ttfb?: number | null | undefined;
988
+ tbt?: number | null | undefined;
989
+ si?: number | null | undefined;
990
+ tti?: number | null | undefined;
991
+ inp?: number | null | undefined;
992
+ a11yAudits?: {
993
+ id: string;
994
+ passed: boolean;
995
+ title: string;
996
+ partial?: boolean | undefined;
997
+ na?: boolean | undefined;
998
+ }[] | undefined;
999
+ seoAudits?: {
1000
+ id: string;
1001
+ passed: boolean;
1002
+ title: string;
1003
+ partial?: boolean | undefined;
1004
+ na?: boolean | undefined;
1005
+ }[] | undefined;
1006
+ lighthouseError?: string | undefined;
1007
+ }[] | undefined;
1008
+ }>;
1009
+ declare const SuiteResultSchema: z.ZodObject<{
1010
+ suiteId: z.ZodString;
1011
+ suiteName: z.ZodString;
1012
+ suiteType: z.ZodOptional<z.ZodEnum<["ui", "api", "audit", "performance"]>>;
1013
+ status: z.ZodEnum<["pending", "running", "passed", "failed", "skipped"]>;
1014
+ cases: z.ZodArray<z.ZodObject<{
1015
+ caseId: z.ZodString;
1016
+ caseName: z.ZodString;
1017
+ status: z.ZodEnum<["pending", "running", "passed", "failed", "skipped"]>;
1018
+ steps: z.ZodArray<z.ZodObject<{
1019
+ stepId: z.ZodString;
1020
+ instruction: z.ZodString;
1021
+ status: z.ZodEnum<["pending", "running", "passed", "failed", "skipped"]>;
1022
+ code: z.ZodString;
1023
+ error: z.ZodOptional<z.ZodString>;
1024
+ duration: z.ZodNumber;
1025
+ screenshotPath: z.ZodOptional<z.ZodString>;
1026
+ healed: z.ZodOptional<z.ZodBoolean>;
1027
+ healedCode: z.ZodOptional<z.ZodString>;
1028
+ stepType: z.ZodOptional<z.ZodEnum<["ui", "api", "mock"]>>;
1029
+ apiRequest: z.ZodOptional<z.ZodObject<{
1030
+ method: z.ZodString;
1031
+ url: z.ZodString;
1032
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
1033
+ body: z.ZodOptional<z.ZodString>;
1034
+ }, "strip", z.ZodTypeAny, {
1035
+ method: string;
1036
+ url: string;
1037
+ headers?: Record<string, string> | undefined;
1038
+ body?: string | undefined;
1039
+ }, {
1040
+ method: string;
1041
+ url: string;
1042
+ headers?: Record<string, string> | undefined;
1043
+ body?: string | undefined;
1044
+ }>>;
1045
+ apiResponse: z.ZodOptional<z.ZodObject<{
1046
+ status: z.ZodNumber;
1047
+ statusText: z.ZodString;
1048
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
1049
+ body: z.ZodOptional<z.ZodString>;
1050
+ duration: z.ZodNumber;
1051
+ }, "strip", z.ZodTypeAny, {
1052
+ status: number;
1053
+ statusText: string;
1054
+ duration: number;
1055
+ headers?: Record<string, string> | undefined;
1056
+ body?: string | undefined;
1057
+ }, {
1058
+ status: number;
1059
+ statusText: string;
1060
+ duration: number;
1061
+ headers?: Record<string, string> | undefined;
1062
+ body?: string | undefined;
1063
+ }>>;
1064
+ navigatedToUrl: z.ZodOptional<z.ZodString>;
1065
+ auditUrl: z.ZodOptional<z.ZodString>;
1066
+ }, "strip", z.ZodTypeAny, {
1067
+ status: "pending" | "running" | "passed" | "failed" | "skipped";
1068
+ code: string;
1069
+ instruction: string;
1070
+ duration: number;
1071
+ stepId: string;
1072
+ stepType?: "ui" | "api" | "mock" | undefined;
1073
+ error?: string | undefined;
1074
+ screenshotPath?: string | undefined;
1075
+ healed?: boolean | undefined;
1076
+ healedCode?: string | undefined;
1077
+ apiRequest?: {
1078
+ method: string;
1079
+ url: string;
1080
+ headers?: Record<string, string> | undefined;
1081
+ body?: string | undefined;
1082
+ } | undefined;
1083
+ apiResponse?: {
1084
+ status: number;
1085
+ statusText: string;
1086
+ duration: number;
1087
+ headers?: Record<string, string> | undefined;
1088
+ body?: string | undefined;
1089
+ } | undefined;
1090
+ navigatedToUrl?: string | undefined;
1091
+ auditUrl?: string | undefined;
1092
+ }, {
1093
+ status: "pending" | "running" | "passed" | "failed" | "skipped";
1094
+ code: string;
1095
+ instruction: string;
1096
+ duration: number;
1097
+ stepId: string;
1098
+ stepType?: "ui" | "api" | "mock" | undefined;
1099
+ error?: string | undefined;
1100
+ screenshotPath?: string | undefined;
1101
+ healed?: boolean | undefined;
1102
+ healedCode?: string | undefined;
1103
+ apiRequest?: {
1104
+ method: string;
1105
+ url: string;
1106
+ headers?: Record<string, string> | undefined;
1107
+ body?: string | undefined;
1108
+ } | undefined;
1109
+ apiResponse?: {
1110
+ status: number;
1111
+ statusText: string;
1112
+ duration: number;
1113
+ headers?: Record<string, string> | undefined;
1114
+ body?: string | undefined;
1115
+ } | undefined;
1116
+ navigatedToUrl?: string | undefined;
1117
+ auditUrl?: string | undefined;
1118
+ }>, "many">;
1119
+ duration: z.ZodNumber;
1120
+ browser: z.ZodString;
1121
+ /** Playwright device descriptor used for this case (undefined = no emulation). */
1122
+ device: z.ZodOptional<z.ZodString>;
1123
+ startedAt: z.ZodString;
1124
+ finishedAt: z.ZodString;
1125
+ videoPath: z.ZodOptional<z.ZodString>;
1126
+ tracePath: z.ZodOptional<z.ZodString>;
1127
+ dataRowIndex: z.ZodOptional<z.ZodNumber>;
1128
+ dataRow: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
1129
+ pageLoads: z.ZodDefault<z.ZodArray<z.ZodObject<{
1130
+ url: z.ZodString;
1131
+ stepIndex: z.ZodNumber;
1132
+ stepInstruction: z.ZodString;
1133
+ score: z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodNumber>>, number | undefined, number | null | undefined>;
1134
+ a11yScore: z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodNumber>>, number | undefined, number | null | undefined>;
1135
+ seoScore: z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodNumber>>, number | undefined, number | null | undefined>;
1136
+ fcp: z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodNumber>>, number | undefined, number | null | undefined>;
1137
+ lcp: z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodNumber>>, number | undefined, number | null | undefined>;
1138
+ cls: z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodNumber>>, number | undefined, number | null | undefined>;
1139
+ ttfb: z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodNumber>>, number | undefined, number | null | undefined>;
1140
+ tbt: z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodNumber>>, number | undefined, number | null | undefined>;
1141
+ si: z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodNumber>>, number | undefined, number | null | undefined>;
1142
+ tti: z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodNumber>>, number | undefined, number | null | undefined>;
1143
+ inp: z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodNumber>>, number | undefined, number | null | undefined>;
1144
+ a11yAudits: z.ZodOptional<z.ZodArray<z.ZodObject<{
1145
+ id: z.ZodString;
1146
+ title: z.ZodString;
1147
+ passed: z.ZodBoolean;
1148
+ partial: z.ZodOptional<z.ZodBoolean>;
1149
+ na: z.ZodOptional<z.ZodBoolean>;
1150
+ }, "strip", z.ZodTypeAny, {
1151
+ id: string;
1152
+ passed: boolean;
1153
+ title: string;
1154
+ partial?: boolean | undefined;
1155
+ na?: boolean | undefined;
1156
+ }, {
1157
+ id: string;
1158
+ passed: boolean;
1159
+ title: string;
1160
+ partial?: boolean | undefined;
1161
+ na?: boolean | undefined;
1162
+ }>, "many">>;
1163
+ seoAudits: z.ZodOptional<z.ZodArray<z.ZodObject<{
1164
+ id: z.ZodString;
1165
+ title: z.ZodString;
1166
+ passed: z.ZodBoolean;
1167
+ partial: z.ZodOptional<z.ZodBoolean>;
1168
+ na: z.ZodOptional<z.ZodBoolean>;
1169
+ }, "strip", z.ZodTypeAny, {
1170
+ id: string;
1171
+ passed: boolean;
1172
+ title: string;
1173
+ partial?: boolean | undefined;
1174
+ na?: boolean | undefined;
1175
+ }, {
1176
+ id: string;
1177
+ passed: boolean;
1178
+ title: string;
1179
+ partial?: boolean | undefined;
1180
+ na?: boolean | undefined;
1181
+ }>, "many">>;
1182
+ lighthouseError: z.ZodOptional<z.ZodString>;
1183
+ }, "strip", z.ZodTypeAny, {
1184
+ url: string;
1185
+ stepIndex: number;
1186
+ stepInstruction: string;
1187
+ score?: number | undefined;
1188
+ a11yScore?: number | undefined;
1189
+ seoScore?: number | undefined;
1190
+ fcp?: number | undefined;
1191
+ lcp?: number | undefined;
1192
+ cls?: number | undefined;
1193
+ ttfb?: number | undefined;
1194
+ tbt?: number | undefined;
1195
+ si?: number | undefined;
1196
+ tti?: number | undefined;
1197
+ inp?: number | undefined;
1198
+ a11yAudits?: {
1199
+ id: string;
1200
+ passed: boolean;
1201
+ title: string;
1202
+ partial?: boolean | undefined;
1203
+ na?: boolean | undefined;
1204
+ }[] | undefined;
1205
+ seoAudits?: {
1206
+ id: string;
1207
+ passed: boolean;
1208
+ title: string;
1209
+ partial?: boolean | undefined;
1210
+ na?: boolean | undefined;
1211
+ }[] | undefined;
1212
+ lighthouseError?: string | undefined;
1213
+ }, {
1214
+ url: string;
1215
+ stepIndex: number;
1216
+ stepInstruction: string;
1217
+ score?: number | null | undefined;
1218
+ a11yScore?: number | null | undefined;
1219
+ seoScore?: number | null | undefined;
1220
+ fcp?: number | null | undefined;
1221
+ lcp?: number | null | undefined;
1222
+ cls?: number | null | undefined;
1223
+ ttfb?: number | null | undefined;
1224
+ tbt?: number | null | undefined;
1225
+ si?: number | null | undefined;
1226
+ tti?: number | null | undefined;
1227
+ inp?: number | null | undefined;
1228
+ a11yAudits?: {
1229
+ id: string;
1230
+ passed: boolean;
1231
+ title: string;
1232
+ partial?: boolean | undefined;
1233
+ na?: boolean | undefined;
1234
+ }[] | undefined;
1235
+ seoAudits?: {
1236
+ id: string;
1237
+ passed: boolean;
1238
+ title: string;
1239
+ partial?: boolean | undefined;
1240
+ na?: boolean | undefined;
1241
+ }[] | undefined;
1242
+ lighthouseError?: string | undefined;
1243
+ }>, "many">>;
1244
+ }, "strip", z.ZodTypeAny, {
1245
+ status: "pending" | "running" | "passed" | "failed" | "skipped";
1246
+ steps: {
1247
+ status: "pending" | "running" | "passed" | "failed" | "skipped";
1248
+ code: string;
1249
+ instruction: string;
1250
+ duration: number;
1251
+ stepId: string;
1252
+ stepType?: "ui" | "api" | "mock" | undefined;
1253
+ error?: string | undefined;
1254
+ screenshotPath?: string | undefined;
1255
+ healed?: boolean | undefined;
1256
+ healedCode?: string | undefined;
1257
+ apiRequest?: {
1258
+ method: string;
1259
+ url: string;
1260
+ headers?: Record<string, string> | undefined;
1261
+ body?: string | undefined;
1262
+ } | undefined;
1263
+ apiResponse?: {
1264
+ status: number;
1265
+ statusText: string;
1266
+ duration: number;
1267
+ headers?: Record<string, string> | undefined;
1268
+ body?: string | undefined;
1269
+ } | undefined;
1270
+ navigatedToUrl?: string | undefined;
1271
+ auditUrl?: string | undefined;
1272
+ }[];
1273
+ duration: number;
1274
+ caseId: string;
1275
+ caseName: string;
1276
+ browser: string;
1277
+ startedAt: string;
1278
+ finishedAt: string;
1279
+ pageLoads: {
1280
+ url: string;
1281
+ stepIndex: number;
1282
+ stepInstruction: string;
1283
+ score?: number | undefined;
1284
+ a11yScore?: number | undefined;
1285
+ seoScore?: number | undefined;
1286
+ fcp?: number | undefined;
1287
+ lcp?: number | undefined;
1288
+ cls?: number | undefined;
1289
+ ttfb?: number | undefined;
1290
+ tbt?: number | undefined;
1291
+ si?: number | undefined;
1292
+ tti?: number | undefined;
1293
+ inp?: number | undefined;
1294
+ a11yAudits?: {
1295
+ id: string;
1296
+ passed: boolean;
1297
+ title: string;
1298
+ partial?: boolean | undefined;
1299
+ na?: boolean | undefined;
1300
+ }[] | undefined;
1301
+ seoAudits?: {
1302
+ id: string;
1303
+ passed: boolean;
1304
+ title: string;
1305
+ partial?: boolean | undefined;
1306
+ na?: boolean | undefined;
1307
+ }[] | undefined;
1308
+ lighthouseError?: string | undefined;
1309
+ }[];
1310
+ device?: string | undefined;
1311
+ videoPath?: string | undefined;
1312
+ tracePath?: string | undefined;
1313
+ dataRowIndex?: number | undefined;
1314
+ dataRow?: Record<string, string> | undefined;
1315
+ }, {
1316
+ status: "pending" | "running" | "passed" | "failed" | "skipped";
1317
+ steps: {
1318
+ status: "pending" | "running" | "passed" | "failed" | "skipped";
1319
+ code: string;
1320
+ instruction: string;
1321
+ duration: number;
1322
+ stepId: string;
1323
+ stepType?: "ui" | "api" | "mock" | undefined;
1324
+ error?: string | undefined;
1325
+ screenshotPath?: string | undefined;
1326
+ healed?: boolean | undefined;
1327
+ healedCode?: string | undefined;
1328
+ apiRequest?: {
1329
+ method: string;
1330
+ url: string;
1331
+ headers?: Record<string, string> | undefined;
1332
+ body?: string | undefined;
1333
+ } | undefined;
1334
+ apiResponse?: {
1335
+ status: number;
1336
+ statusText: string;
1337
+ duration: number;
1338
+ headers?: Record<string, string> | undefined;
1339
+ body?: string | undefined;
1340
+ } | undefined;
1341
+ navigatedToUrl?: string | undefined;
1342
+ auditUrl?: string | undefined;
1343
+ }[];
1344
+ duration: number;
1345
+ caseId: string;
1346
+ caseName: string;
1347
+ browser: string;
1348
+ startedAt: string;
1349
+ finishedAt: string;
1350
+ device?: string | undefined;
1351
+ videoPath?: string | undefined;
1352
+ tracePath?: string | undefined;
1353
+ dataRowIndex?: number | undefined;
1354
+ dataRow?: Record<string, string> | undefined;
1355
+ pageLoads?: {
1356
+ url: string;
1357
+ stepIndex: number;
1358
+ stepInstruction: string;
1359
+ score?: number | null | undefined;
1360
+ a11yScore?: number | null | undefined;
1361
+ seoScore?: number | null | undefined;
1362
+ fcp?: number | null | undefined;
1363
+ lcp?: number | null | undefined;
1364
+ cls?: number | null | undefined;
1365
+ ttfb?: number | null | undefined;
1366
+ tbt?: number | null | undefined;
1367
+ si?: number | null | undefined;
1368
+ tti?: number | null | undefined;
1369
+ inp?: number | null | undefined;
1370
+ a11yAudits?: {
1371
+ id: string;
1372
+ passed: boolean;
1373
+ title: string;
1374
+ partial?: boolean | undefined;
1375
+ na?: boolean | undefined;
1376
+ }[] | undefined;
1377
+ seoAudits?: {
1378
+ id: string;
1379
+ passed: boolean;
1380
+ title: string;
1381
+ partial?: boolean | undefined;
1382
+ na?: boolean | undefined;
1383
+ }[] | undefined;
1384
+ lighthouseError?: string | undefined;
1385
+ }[] | undefined;
1386
+ }>, "many">;
1387
+ duration: z.ZodNumber;
1388
+ browser: z.ZodString;
1389
+ startedAt: z.ZodString;
1390
+ finishedAt: z.ZodString;
1391
+ }, "strip", z.ZodTypeAny, {
1392
+ status: "pending" | "running" | "passed" | "failed" | "skipped";
1393
+ duration: number;
1394
+ browser: string;
1395
+ startedAt: string;
1396
+ finishedAt: string;
1397
+ suiteId: string;
1398
+ suiteName: string;
1399
+ cases: {
1400
+ status: "pending" | "running" | "passed" | "failed" | "skipped";
1401
+ steps: {
1402
+ status: "pending" | "running" | "passed" | "failed" | "skipped";
1403
+ code: string;
1404
+ instruction: string;
1405
+ duration: number;
1406
+ stepId: string;
1407
+ stepType?: "ui" | "api" | "mock" | undefined;
1408
+ error?: string | undefined;
1409
+ screenshotPath?: string | undefined;
1410
+ healed?: boolean | undefined;
1411
+ healedCode?: string | undefined;
1412
+ apiRequest?: {
1413
+ method: string;
1414
+ url: string;
1415
+ headers?: Record<string, string> | undefined;
1416
+ body?: string | undefined;
1417
+ } | undefined;
1418
+ apiResponse?: {
1419
+ status: number;
1420
+ statusText: string;
1421
+ duration: number;
1422
+ headers?: Record<string, string> | undefined;
1423
+ body?: string | undefined;
1424
+ } | undefined;
1425
+ navigatedToUrl?: string | undefined;
1426
+ auditUrl?: string | undefined;
1427
+ }[];
1428
+ duration: number;
1429
+ caseId: string;
1430
+ caseName: string;
1431
+ browser: string;
1432
+ startedAt: string;
1433
+ finishedAt: string;
1434
+ pageLoads: {
1435
+ url: string;
1436
+ stepIndex: number;
1437
+ stepInstruction: string;
1438
+ score?: number | undefined;
1439
+ a11yScore?: number | undefined;
1440
+ seoScore?: number | undefined;
1441
+ fcp?: number | undefined;
1442
+ lcp?: number | undefined;
1443
+ cls?: number | undefined;
1444
+ ttfb?: number | undefined;
1445
+ tbt?: number | undefined;
1446
+ si?: number | undefined;
1447
+ tti?: number | undefined;
1448
+ inp?: number | undefined;
1449
+ a11yAudits?: {
1450
+ id: string;
1451
+ passed: boolean;
1452
+ title: string;
1453
+ partial?: boolean | undefined;
1454
+ na?: boolean | undefined;
1455
+ }[] | undefined;
1456
+ seoAudits?: {
1457
+ id: string;
1458
+ passed: boolean;
1459
+ title: string;
1460
+ partial?: boolean | undefined;
1461
+ na?: boolean | undefined;
1462
+ }[] | undefined;
1463
+ lighthouseError?: string | undefined;
1464
+ }[];
1465
+ device?: string | undefined;
1466
+ videoPath?: string | undefined;
1467
+ tracePath?: string | undefined;
1468
+ dataRowIndex?: number | undefined;
1469
+ dataRow?: Record<string, string> | undefined;
1470
+ }[];
1471
+ suiteType?: "ui" | "api" | "performance" | "audit" | undefined;
1472
+ }, {
1473
+ status: "pending" | "running" | "passed" | "failed" | "skipped";
1474
+ duration: number;
1475
+ browser: string;
1476
+ startedAt: string;
1477
+ finishedAt: string;
1478
+ suiteId: string;
1479
+ suiteName: string;
1480
+ cases: {
1481
+ status: "pending" | "running" | "passed" | "failed" | "skipped";
1482
+ steps: {
1483
+ status: "pending" | "running" | "passed" | "failed" | "skipped";
1484
+ code: string;
1485
+ instruction: string;
1486
+ duration: number;
1487
+ stepId: string;
1488
+ stepType?: "ui" | "api" | "mock" | undefined;
1489
+ error?: string | undefined;
1490
+ screenshotPath?: string | undefined;
1491
+ healed?: boolean | undefined;
1492
+ healedCode?: string | undefined;
1493
+ apiRequest?: {
1494
+ method: string;
1495
+ url: string;
1496
+ headers?: Record<string, string> | undefined;
1497
+ body?: string | undefined;
1498
+ } | undefined;
1499
+ apiResponse?: {
1500
+ status: number;
1501
+ statusText: string;
1502
+ duration: number;
1503
+ headers?: Record<string, string> | undefined;
1504
+ body?: string | undefined;
1505
+ } | undefined;
1506
+ navigatedToUrl?: string | undefined;
1507
+ auditUrl?: string | undefined;
1508
+ }[];
1509
+ duration: number;
1510
+ caseId: string;
1511
+ caseName: string;
1512
+ browser: string;
1513
+ startedAt: string;
1514
+ finishedAt: string;
1515
+ device?: string | undefined;
1516
+ videoPath?: string | undefined;
1517
+ tracePath?: string | undefined;
1518
+ dataRowIndex?: number | undefined;
1519
+ dataRow?: Record<string, string> | undefined;
1520
+ pageLoads?: {
1521
+ url: string;
1522
+ stepIndex: number;
1523
+ stepInstruction: string;
1524
+ score?: number | null | undefined;
1525
+ a11yScore?: number | null | undefined;
1526
+ seoScore?: number | null | undefined;
1527
+ fcp?: number | null | undefined;
1528
+ lcp?: number | null | undefined;
1529
+ cls?: number | null | undefined;
1530
+ ttfb?: number | null | undefined;
1531
+ tbt?: number | null | undefined;
1532
+ si?: number | null | undefined;
1533
+ tti?: number | null | undefined;
1534
+ inp?: number | null | undefined;
1535
+ a11yAudits?: {
1536
+ id: string;
1537
+ passed: boolean;
1538
+ title: string;
1539
+ partial?: boolean | undefined;
1540
+ na?: boolean | undefined;
1541
+ }[] | undefined;
1542
+ seoAudits?: {
1543
+ id: string;
1544
+ passed: boolean;
1545
+ title: string;
1546
+ partial?: boolean | undefined;
1547
+ na?: boolean | undefined;
1548
+ }[] | undefined;
1549
+ lighthouseError?: string | undefined;
1550
+ }[] | undefined;
1551
+ }[];
1552
+ suiteType?: "ui" | "api" | "performance" | "audit" | undefined;
1553
+ }>;
1554
+ declare const RunResultSchema: z.ZodObject<{
1555
+ runId: z.ZodString;
1556
+ status: z.ZodEnum<["pending", "running", "passed", "failed", "skipped"]>;
1557
+ environment: z.ZodOptional<z.ZodString>;
1558
+ suites: z.ZodArray<z.ZodObject<{
1559
+ suiteId: z.ZodString;
1560
+ suiteName: z.ZodString;
1561
+ suiteType: z.ZodOptional<z.ZodEnum<["ui", "api", "audit", "performance"]>>;
1562
+ status: z.ZodEnum<["pending", "running", "passed", "failed", "skipped"]>;
1563
+ cases: z.ZodArray<z.ZodObject<{
1564
+ caseId: z.ZodString;
1565
+ caseName: z.ZodString;
1566
+ status: z.ZodEnum<["pending", "running", "passed", "failed", "skipped"]>;
1567
+ steps: z.ZodArray<z.ZodObject<{
1568
+ stepId: z.ZodString;
1569
+ instruction: z.ZodString;
1570
+ status: z.ZodEnum<["pending", "running", "passed", "failed", "skipped"]>;
1571
+ code: z.ZodString;
1572
+ error: z.ZodOptional<z.ZodString>;
1573
+ duration: z.ZodNumber;
1574
+ screenshotPath: z.ZodOptional<z.ZodString>;
1575
+ healed: z.ZodOptional<z.ZodBoolean>;
1576
+ healedCode: z.ZodOptional<z.ZodString>;
1577
+ stepType: z.ZodOptional<z.ZodEnum<["ui", "api", "mock"]>>;
1578
+ apiRequest: z.ZodOptional<z.ZodObject<{
1579
+ method: z.ZodString;
1580
+ url: z.ZodString;
1581
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
1582
+ body: z.ZodOptional<z.ZodString>;
1583
+ }, "strip", z.ZodTypeAny, {
1584
+ method: string;
1585
+ url: string;
1586
+ headers?: Record<string, string> | undefined;
1587
+ body?: string | undefined;
1588
+ }, {
1589
+ method: string;
1590
+ url: string;
1591
+ headers?: Record<string, string> | undefined;
1592
+ body?: string | undefined;
1593
+ }>>;
1594
+ apiResponse: z.ZodOptional<z.ZodObject<{
1595
+ status: z.ZodNumber;
1596
+ statusText: z.ZodString;
1597
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
1598
+ body: z.ZodOptional<z.ZodString>;
1599
+ duration: z.ZodNumber;
1600
+ }, "strip", z.ZodTypeAny, {
1601
+ status: number;
1602
+ statusText: string;
1603
+ duration: number;
1604
+ headers?: Record<string, string> | undefined;
1605
+ body?: string | undefined;
1606
+ }, {
1607
+ status: number;
1608
+ statusText: string;
1609
+ duration: number;
1610
+ headers?: Record<string, string> | undefined;
1611
+ body?: string | undefined;
1612
+ }>>;
1613
+ navigatedToUrl: z.ZodOptional<z.ZodString>;
1614
+ auditUrl: z.ZodOptional<z.ZodString>;
1615
+ }, "strip", z.ZodTypeAny, {
1616
+ status: "pending" | "running" | "passed" | "failed" | "skipped";
1617
+ code: string;
1618
+ instruction: string;
1619
+ duration: number;
1620
+ stepId: string;
1621
+ stepType?: "ui" | "api" | "mock" | undefined;
1622
+ error?: string | undefined;
1623
+ screenshotPath?: string | undefined;
1624
+ healed?: boolean | undefined;
1625
+ healedCode?: string | undefined;
1626
+ apiRequest?: {
1627
+ method: string;
1628
+ url: string;
1629
+ headers?: Record<string, string> | undefined;
1630
+ body?: string | undefined;
1631
+ } | undefined;
1632
+ apiResponse?: {
1633
+ status: number;
1634
+ statusText: string;
1635
+ duration: number;
1636
+ headers?: Record<string, string> | undefined;
1637
+ body?: string | undefined;
1638
+ } | undefined;
1639
+ navigatedToUrl?: string | undefined;
1640
+ auditUrl?: string | undefined;
1641
+ }, {
1642
+ status: "pending" | "running" | "passed" | "failed" | "skipped";
1643
+ code: string;
1644
+ instruction: string;
1645
+ duration: number;
1646
+ stepId: string;
1647
+ stepType?: "ui" | "api" | "mock" | undefined;
1648
+ error?: string | undefined;
1649
+ screenshotPath?: string | undefined;
1650
+ healed?: boolean | undefined;
1651
+ healedCode?: string | undefined;
1652
+ apiRequest?: {
1653
+ method: string;
1654
+ url: string;
1655
+ headers?: Record<string, string> | undefined;
1656
+ body?: string | undefined;
1657
+ } | undefined;
1658
+ apiResponse?: {
1659
+ status: number;
1660
+ statusText: string;
1661
+ duration: number;
1662
+ headers?: Record<string, string> | undefined;
1663
+ body?: string | undefined;
1664
+ } | undefined;
1665
+ navigatedToUrl?: string | undefined;
1666
+ auditUrl?: string | undefined;
1667
+ }>, "many">;
1668
+ duration: z.ZodNumber;
1669
+ browser: z.ZodString;
1670
+ /** Playwright device descriptor used for this case (undefined = no emulation). */
1671
+ device: z.ZodOptional<z.ZodString>;
1672
+ startedAt: z.ZodString;
1673
+ finishedAt: z.ZodString;
1674
+ videoPath: z.ZodOptional<z.ZodString>;
1675
+ tracePath: z.ZodOptional<z.ZodString>;
1676
+ dataRowIndex: z.ZodOptional<z.ZodNumber>;
1677
+ dataRow: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
1678
+ pageLoads: z.ZodDefault<z.ZodArray<z.ZodObject<{
1679
+ url: z.ZodString;
1680
+ stepIndex: z.ZodNumber;
1681
+ stepInstruction: z.ZodString;
1682
+ score: z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodNumber>>, number | undefined, number | null | undefined>;
1683
+ a11yScore: z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodNumber>>, number | undefined, number | null | undefined>;
1684
+ seoScore: z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodNumber>>, number | undefined, number | null | undefined>;
1685
+ fcp: z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodNumber>>, number | undefined, number | null | undefined>;
1686
+ lcp: z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodNumber>>, number | undefined, number | null | undefined>;
1687
+ cls: z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodNumber>>, number | undefined, number | null | undefined>;
1688
+ ttfb: z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodNumber>>, number | undefined, number | null | undefined>;
1689
+ tbt: z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodNumber>>, number | undefined, number | null | undefined>;
1690
+ si: z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodNumber>>, number | undefined, number | null | undefined>;
1691
+ tti: z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodNumber>>, number | undefined, number | null | undefined>;
1692
+ inp: z.ZodEffects<z.ZodOptional<z.ZodNullable<z.ZodNumber>>, number | undefined, number | null | undefined>;
1693
+ a11yAudits: z.ZodOptional<z.ZodArray<z.ZodObject<{
1694
+ id: z.ZodString;
1695
+ title: z.ZodString;
1696
+ passed: z.ZodBoolean;
1697
+ partial: z.ZodOptional<z.ZodBoolean>;
1698
+ na: z.ZodOptional<z.ZodBoolean>;
1699
+ }, "strip", z.ZodTypeAny, {
1700
+ id: string;
1701
+ passed: boolean;
1702
+ title: string;
1703
+ partial?: boolean | undefined;
1704
+ na?: boolean | undefined;
1705
+ }, {
1706
+ id: string;
1707
+ passed: boolean;
1708
+ title: string;
1709
+ partial?: boolean | undefined;
1710
+ na?: boolean | undefined;
1711
+ }>, "many">>;
1712
+ seoAudits: z.ZodOptional<z.ZodArray<z.ZodObject<{
1713
+ id: z.ZodString;
1714
+ title: z.ZodString;
1715
+ passed: z.ZodBoolean;
1716
+ partial: z.ZodOptional<z.ZodBoolean>;
1717
+ na: z.ZodOptional<z.ZodBoolean>;
1718
+ }, "strip", z.ZodTypeAny, {
1719
+ id: string;
1720
+ passed: boolean;
1721
+ title: string;
1722
+ partial?: boolean | undefined;
1723
+ na?: boolean | undefined;
1724
+ }, {
1725
+ id: string;
1726
+ passed: boolean;
1727
+ title: string;
1728
+ partial?: boolean | undefined;
1729
+ na?: boolean | undefined;
1730
+ }>, "many">>;
1731
+ lighthouseError: z.ZodOptional<z.ZodString>;
1732
+ }, "strip", z.ZodTypeAny, {
1733
+ url: string;
1734
+ stepIndex: number;
1735
+ stepInstruction: string;
1736
+ score?: number | undefined;
1737
+ a11yScore?: number | undefined;
1738
+ seoScore?: number | undefined;
1739
+ fcp?: number | undefined;
1740
+ lcp?: number | undefined;
1741
+ cls?: number | undefined;
1742
+ ttfb?: number | undefined;
1743
+ tbt?: number | undefined;
1744
+ si?: number | undefined;
1745
+ tti?: number | undefined;
1746
+ inp?: number | undefined;
1747
+ a11yAudits?: {
1748
+ id: string;
1749
+ passed: boolean;
1750
+ title: string;
1751
+ partial?: boolean | undefined;
1752
+ na?: boolean | undefined;
1753
+ }[] | undefined;
1754
+ seoAudits?: {
1755
+ id: string;
1756
+ passed: boolean;
1757
+ title: string;
1758
+ partial?: boolean | undefined;
1759
+ na?: boolean | undefined;
1760
+ }[] | undefined;
1761
+ lighthouseError?: string | undefined;
1762
+ }, {
1763
+ url: string;
1764
+ stepIndex: number;
1765
+ stepInstruction: string;
1766
+ score?: number | null | undefined;
1767
+ a11yScore?: number | null | undefined;
1768
+ seoScore?: number | null | undefined;
1769
+ fcp?: number | null | undefined;
1770
+ lcp?: number | null | undefined;
1771
+ cls?: number | null | undefined;
1772
+ ttfb?: number | null | undefined;
1773
+ tbt?: number | null | undefined;
1774
+ si?: number | null | undefined;
1775
+ tti?: number | null | undefined;
1776
+ inp?: number | null | undefined;
1777
+ a11yAudits?: {
1778
+ id: string;
1779
+ passed: boolean;
1780
+ title: string;
1781
+ partial?: boolean | undefined;
1782
+ na?: boolean | undefined;
1783
+ }[] | undefined;
1784
+ seoAudits?: {
1785
+ id: string;
1786
+ passed: boolean;
1787
+ title: string;
1788
+ partial?: boolean | undefined;
1789
+ na?: boolean | undefined;
1790
+ }[] | undefined;
1791
+ lighthouseError?: string | undefined;
1792
+ }>, "many">>;
1793
+ }, "strip", z.ZodTypeAny, {
1794
+ status: "pending" | "running" | "passed" | "failed" | "skipped";
1795
+ steps: {
1796
+ status: "pending" | "running" | "passed" | "failed" | "skipped";
1797
+ code: string;
1798
+ instruction: string;
1799
+ duration: number;
1800
+ stepId: string;
1801
+ stepType?: "ui" | "api" | "mock" | undefined;
1802
+ error?: string | undefined;
1803
+ screenshotPath?: string | undefined;
1804
+ healed?: boolean | undefined;
1805
+ healedCode?: string | undefined;
1806
+ apiRequest?: {
1807
+ method: string;
1808
+ url: string;
1809
+ headers?: Record<string, string> | undefined;
1810
+ body?: string | undefined;
1811
+ } | undefined;
1812
+ apiResponse?: {
1813
+ status: number;
1814
+ statusText: string;
1815
+ duration: number;
1816
+ headers?: Record<string, string> | undefined;
1817
+ body?: string | undefined;
1818
+ } | undefined;
1819
+ navigatedToUrl?: string | undefined;
1820
+ auditUrl?: string | undefined;
1821
+ }[];
1822
+ duration: number;
1823
+ caseId: string;
1824
+ caseName: string;
1825
+ browser: string;
1826
+ startedAt: string;
1827
+ finishedAt: string;
1828
+ pageLoads: {
1829
+ url: string;
1830
+ stepIndex: number;
1831
+ stepInstruction: string;
1832
+ score?: number | undefined;
1833
+ a11yScore?: number | undefined;
1834
+ seoScore?: number | undefined;
1835
+ fcp?: number | undefined;
1836
+ lcp?: number | undefined;
1837
+ cls?: number | undefined;
1838
+ ttfb?: number | undefined;
1839
+ tbt?: number | undefined;
1840
+ si?: number | undefined;
1841
+ tti?: number | undefined;
1842
+ inp?: number | undefined;
1843
+ a11yAudits?: {
1844
+ id: string;
1845
+ passed: boolean;
1846
+ title: string;
1847
+ partial?: boolean | undefined;
1848
+ na?: boolean | undefined;
1849
+ }[] | undefined;
1850
+ seoAudits?: {
1851
+ id: string;
1852
+ passed: boolean;
1853
+ title: string;
1854
+ partial?: boolean | undefined;
1855
+ na?: boolean | undefined;
1856
+ }[] | undefined;
1857
+ lighthouseError?: string | undefined;
1858
+ }[];
1859
+ device?: string | undefined;
1860
+ videoPath?: string | undefined;
1861
+ tracePath?: string | undefined;
1862
+ dataRowIndex?: number | undefined;
1863
+ dataRow?: Record<string, string> | undefined;
1864
+ }, {
1865
+ status: "pending" | "running" | "passed" | "failed" | "skipped";
1866
+ steps: {
1867
+ status: "pending" | "running" | "passed" | "failed" | "skipped";
1868
+ code: string;
1869
+ instruction: string;
1870
+ duration: number;
1871
+ stepId: string;
1872
+ stepType?: "ui" | "api" | "mock" | undefined;
1873
+ error?: string | undefined;
1874
+ screenshotPath?: string | undefined;
1875
+ healed?: boolean | undefined;
1876
+ healedCode?: string | undefined;
1877
+ apiRequest?: {
1878
+ method: string;
1879
+ url: string;
1880
+ headers?: Record<string, string> | undefined;
1881
+ body?: string | undefined;
1882
+ } | undefined;
1883
+ apiResponse?: {
1884
+ status: number;
1885
+ statusText: string;
1886
+ duration: number;
1887
+ headers?: Record<string, string> | undefined;
1888
+ body?: string | undefined;
1889
+ } | undefined;
1890
+ navigatedToUrl?: string | undefined;
1891
+ auditUrl?: string | undefined;
1892
+ }[];
1893
+ duration: number;
1894
+ caseId: string;
1895
+ caseName: string;
1896
+ browser: string;
1897
+ startedAt: string;
1898
+ finishedAt: string;
1899
+ device?: string | undefined;
1900
+ videoPath?: string | undefined;
1901
+ tracePath?: string | undefined;
1902
+ dataRowIndex?: number | undefined;
1903
+ dataRow?: Record<string, string> | undefined;
1904
+ pageLoads?: {
1905
+ url: string;
1906
+ stepIndex: number;
1907
+ stepInstruction: string;
1908
+ score?: number | null | undefined;
1909
+ a11yScore?: number | null | undefined;
1910
+ seoScore?: number | null | undefined;
1911
+ fcp?: number | null | undefined;
1912
+ lcp?: number | null | undefined;
1913
+ cls?: number | null | undefined;
1914
+ ttfb?: number | null | undefined;
1915
+ tbt?: number | null | undefined;
1916
+ si?: number | null | undefined;
1917
+ tti?: number | null | undefined;
1918
+ inp?: number | null | undefined;
1919
+ a11yAudits?: {
1920
+ id: string;
1921
+ passed: boolean;
1922
+ title: string;
1923
+ partial?: boolean | undefined;
1924
+ na?: boolean | undefined;
1925
+ }[] | undefined;
1926
+ seoAudits?: {
1927
+ id: string;
1928
+ passed: boolean;
1929
+ title: string;
1930
+ partial?: boolean | undefined;
1931
+ na?: boolean | undefined;
1932
+ }[] | undefined;
1933
+ lighthouseError?: string | undefined;
1934
+ }[] | undefined;
1935
+ }>, "many">;
1936
+ duration: z.ZodNumber;
1937
+ browser: z.ZodString;
1938
+ startedAt: z.ZodString;
1939
+ finishedAt: z.ZodString;
1940
+ }, "strip", z.ZodTypeAny, {
1941
+ status: "pending" | "running" | "passed" | "failed" | "skipped";
1942
+ duration: number;
1943
+ browser: string;
1944
+ startedAt: string;
1945
+ finishedAt: string;
1946
+ suiteId: string;
1947
+ suiteName: string;
1948
+ cases: {
1949
+ status: "pending" | "running" | "passed" | "failed" | "skipped";
1950
+ steps: {
1951
+ status: "pending" | "running" | "passed" | "failed" | "skipped";
1952
+ code: string;
1953
+ instruction: string;
1954
+ duration: number;
1955
+ stepId: string;
1956
+ stepType?: "ui" | "api" | "mock" | undefined;
1957
+ error?: string | undefined;
1958
+ screenshotPath?: string | undefined;
1959
+ healed?: boolean | undefined;
1960
+ healedCode?: string | undefined;
1961
+ apiRequest?: {
1962
+ method: string;
1963
+ url: string;
1964
+ headers?: Record<string, string> | undefined;
1965
+ body?: string | undefined;
1966
+ } | undefined;
1967
+ apiResponse?: {
1968
+ status: number;
1969
+ statusText: string;
1970
+ duration: number;
1971
+ headers?: Record<string, string> | undefined;
1972
+ body?: string | undefined;
1973
+ } | undefined;
1974
+ navigatedToUrl?: string | undefined;
1975
+ auditUrl?: string | undefined;
1976
+ }[];
1977
+ duration: number;
1978
+ caseId: string;
1979
+ caseName: string;
1980
+ browser: string;
1981
+ startedAt: string;
1982
+ finishedAt: string;
1983
+ pageLoads: {
1984
+ url: string;
1985
+ stepIndex: number;
1986
+ stepInstruction: string;
1987
+ score?: number | undefined;
1988
+ a11yScore?: number | undefined;
1989
+ seoScore?: number | undefined;
1990
+ fcp?: number | undefined;
1991
+ lcp?: number | undefined;
1992
+ cls?: number | undefined;
1993
+ ttfb?: number | undefined;
1994
+ tbt?: number | undefined;
1995
+ si?: number | undefined;
1996
+ tti?: number | undefined;
1997
+ inp?: number | undefined;
1998
+ a11yAudits?: {
1999
+ id: string;
2000
+ passed: boolean;
2001
+ title: string;
2002
+ partial?: boolean | undefined;
2003
+ na?: boolean | undefined;
2004
+ }[] | undefined;
2005
+ seoAudits?: {
2006
+ id: string;
2007
+ passed: boolean;
2008
+ title: string;
2009
+ partial?: boolean | undefined;
2010
+ na?: boolean | undefined;
2011
+ }[] | undefined;
2012
+ lighthouseError?: string | undefined;
2013
+ }[];
2014
+ device?: string | undefined;
2015
+ videoPath?: string | undefined;
2016
+ tracePath?: string | undefined;
2017
+ dataRowIndex?: number | undefined;
2018
+ dataRow?: Record<string, string> | undefined;
2019
+ }[];
2020
+ suiteType?: "ui" | "api" | "performance" | "audit" | undefined;
2021
+ }, {
2022
+ status: "pending" | "running" | "passed" | "failed" | "skipped";
2023
+ duration: number;
2024
+ browser: string;
2025
+ startedAt: string;
2026
+ finishedAt: string;
2027
+ suiteId: string;
2028
+ suiteName: string;
2029
+ cases: {
2030
+ status: "pending" | "running" | "passed" | "failed" | "skipped";
2031
+ steps: {
2032
+ status: "pending" | "running" | "passed" | "failed" | "skipped";
2033
+ code: string;
2034
+ instruction: string;
2035
+ duration: number;
2036
+ stepId: string;
2037
+ stepType?: "ui" | "api" | "mock" | undefined;
2038
+ error?: string | undefined;
2039
+ screenshotPath?: string | undefined;
2040
+ healed?: boolean | undefined;
2041
+ healedCode?: string | undefined;
2042
+ apiRequest?: {
2043
+ method: string;
2044
+ url: string;
2045
+ headers?: Record<string, string> | undefined;
2046
+ body?: string | undefined;
2047
+ } | undefined;
2048
+ apiResponse?: {
2049
+ status: number;
2050
+ statusText: string;
2051
+ duration: number;
2052
+ headers?: Record<string, string> | undefined;
2053
+ body?: string | undefined;
2054
+ } | undefined;
2055
+ navigatedToUrl?: string | undefined;
2056
+ auditUrl?: string | undefined;
2057
+ }[];
2058
+ duration: number;
2059
+ caseId: string;
2060
+ caseName: string;
2061
+ browser: string;
2062
+ startedAt: string;
2063
+ finishedAt: string;
2064
+ device?: string | undefined;
2065
+ videoPath?: string | undefined;
2066
+ tracePath?: string | undefined;
2067
+ dataRowIndex?: number | undefined;
2068
+ dataRow?: Record<string, string> | undefined;
2069
+ pageLoads?: {
2070
+ url: string;
2071
+ stepIndex: number;
2072
+ stepInstruction: string;
2073
+ score?: number | null | undefined;
2074
+ a11yScore?: number | null | undefined;
2075
+ seoScore?: number | null | undefined;
2076
+ fcp?: number | null | undefined;
2077
+ lcp?: number | null | undefined;
2078
+ cls?: number | null | undefined;
2079
+ ttfb?: number | null | undefined;
2080
+ tbt?: number | null | undefined;
2081
+ si?: number | null | undefined;
2082
+ tti?: number | null | undefined;
2083
+ inp?: number | null | undefined;
2084
+ a11yAudits?: {
2085
+ id: string;
2086
+ passed: boolean;
2087
+ title: string;
2088
+ partial?: boolean | undefined;
2089
+ na?: boolean | undefined;
2090
+ }[] | undefined;
2091
+ seoAudits?: {
2092
+ id: string;
2093
+ passed: boolean;
2094
+ title: string;
2095
+ partial?: boolean | undefined;
2096
+ na?: boolean | undefined;
2097
+ }[] | undefined;
2098
+ lighthouseError?: string | undefined;
2099
+ }[] | undefined;
2100
+ }[];
2101
+ suiteType?: "ui" | "api" | "performance" | "audit" | undefined;
2102
+ }>, "many">;
2103
+ duration: z.ZodNumber;
2104
+ startedAt: z.ZodString;
2105
+ finishedAt: z.ZodString;
2106
+ totalTests: z.ZodNumber;
2107
+ passed: z.ZodNumber;
2108
+ failed: z.ZodNumber;
2109
+ skipped: z.ZodNumber;
2110
+ logFilePath: z.ZodOptional<z.ZodString>;
2111
+ }, "strip", z.ZodTypeAny, {
2112
+ status: "pending" | "running" | "passed" | "failed" | "skipped";
2113
+ passed: number;
2114
+ failed: number;
2115
+ skipped: number;
2116
+ duration: number;
2117
+ startedAt: string;
2118
+ finishedAt: string;
2119
+ runId: string;
2120
+ suites: {
2121
+ status: "pending" | "running" | "passed" | "failed" | "skipped";
2122
+ duration: number;
2123
+ browser: string;
2124
+ startedAt: string;
2125
+ finishedAt: string;
2126
+ suiteId: string;
2127
+ suiteName: string;
2128
+ cases: {
2129
+ status: "pending" | "running" | "passed" | "failed" | "skipped";
2130
+ steps: {
2131
+ status: "pending" | "running" | "passed" | "failed" | "skipped";
2132
+ code: string;
2133
+ instruction: string;
2134
+ duration: number;
2135
+ stepId: string;
2136
+ stepType?: "ui" | "api" | "mock" | undefined;
2137
+ error?: string | undefined;
2138
+ screenshotPath?: string | undefined;
2139
+ healed?: boolean | undefined;
2140
+ healedCode?: string | undefined;
2141
+ apiRequest?: {
2142
+ method: string;
2143
+ url: string;
2144
+ headers?: Record<string, string> | undefined;
2145
+ body?: string | undefined;
2146
+ } | undefined;
2147
+ apiResponse?: {
2148
+ status: number;
2149
+ statusText: string;
2150
+ duration: number;
2151
+ headers?: Record<string, string> | undefined;
2152
+ body?: string | undefined;
2153
+ } | undefined;
2154
+ navigatedToUrl?: string | undefined;
2155
+ auditUrl?: string | undefined;
2156
+ }[];
2157
+ duration: number;
2158
+ caseId: string;
2159
+ caseName: string;
2160
+ browser: string;
2161
+ startedAt: string;
2162
+ finishedAt: string;
2163
+ pageLoads: {
2164
+ url: string;
2165
+ stepIndex: number;
2166
+ stepInstruction: string;
2167
+ score?: number | undefined;
2168
+ a11yScore?: number | undefined;
2169
+ seoScore?: number | undefined;
2170
+ fcp?: number | undefined;
2171
+ lcp?: number | undefined;
2172
+ cls?: number | undefined;
2173
+ ttfb?: number | undefined;
2174
+ tbt?: number | undefined;
2175
+ si?: number | undefined;
2176
+ tti?: number | undefined;
2177
+ inp?: number | undefined;
2178
+ a11yAudits?: {
2179
+ id: string;
2180
+ passed: boolean;
2181
+ title: string;
2182
+ partial?: boolean | undefined;
2183
+ na?: boolean | undefined;
2184
+ }[] | undefined;
2185
+ seoAudits?: {
2186
+ id: string;
2187
+ passed: boolean;
2188
+ title: string;
2189
+ partial?: boolean | undefined;
2190
+ na?: boolean | undefined;
2191
+ }[] | undefined;
2192
+ lighthouseError?: string | undefined;
2193
+ }[];
2194
+ device?: string | undefined;
2195
+ videoPath?: string | undefined;
2196
+ tracePath?: string | undefined;
2197
+ dataRowIndex?: number | undefined;
2198
+ dataRow?: Record<string, string> | undefined;
2199
+ }[];
2200
+ suiteType?: "ui" | "api" | "performance" | "audit" | undefined;
2201
+ }[];
2202
+ totalTests: number;
2203
+ environment?: string | undefined;
2204
+ logFilePath?: string | undefined;
2205
+ }, {
2206
+ status: "pending" | "running" | "passed" | "failed" | "skipped";
2207
+ passed: number;
2208
+ failed: number;
2209
+ skipped: number;
2210
+ duration: number;
2211
+ startedAt: string;
2212
+ finishedAt: string;
2213
+ runId: string;
2214
+ suites: {
2215
+ status: "pending" | "running" | "passed" | "failed" | "skipped";
2216
+ duration: number;
2217
+ browser: string;
2218
+ startedAt: string;
2219
+ finishedAt: string;
2220
+ suiteId: string;
2221
+ suiteName: string;
2222
+ cases: {
2223
+ status: "pending" | "running" | "passed" | "failed" | "skipped";
2224
+ steps: {
2225
+ status: "pending" | "running" | "passed" | "failed" | "skipped";
2226
+ code: string;
2227
+ instruction: string;
2228
+ duration: number;
2229
+ stepId: string;
2230
+ stepType?: "ui" | "api" | "mock" | undefined;
2231
+ error?: string | undefined;
2232
+ screenshotPath?: string | undefined;
2233
+ healed?: boolean | undefined;
2234
+ healedCode?: string | undefined;
2235
+ apiRequest?: {
2236
+ method: string;
2237
+ url: string;
2238
+ headers?: Record<string, string> | undefined;
2239
+ body?: string | undefined;
2240
+ } | undefined;
2241
+ apiResponse?: {
2242
+ status: number;
2243
+ statusText: string;
2244
+ duration: number;
2245
+ headers?: Record<string, string> | undefined;
2246
+ body?: string | undefined;
2247
+ } | undefined;
2248
+ navigatedToUrl?: string | undefined;
2249
+ auditUrl?: string | undefined;
2250
+ }[];
2251
+ duration: number;
2252
+ caseId: string;
2253
+ caseName: string;
2254
+ browser: string;
2255
+ startedAt: string;
2256
+ finishedAt: string;
2257
+ device?: string | undefined;
2258
+ videoPath?: string | undefined;
2259
+ tracePath?: string | undefined;
2260
+ dataRowIndex?: number | undefined;
2261
+ dataRow?: Record<string, string> | undefined;
2262
+ pageLoads?: {
2263
+ url: string;
2264
+ stepIndex: number;
2265
+ stepInstruction: string;
2266
+ score?: number | null | undefined;
2267
+ a11yScore?: number | null | undefined;
2268
+ seoScore?: number | null | undefined;
2269
+ fcp?: number | null | undefined;
2270
+ lcp?: number | null | undefined;
2271
+ cls?: number | null | undefined;
2272
+ ttfb?: number | null | undefined;
2273
+ tbt?: number | null | undefined;
2274
+ si?: number | null | undefined;
2275
+ tti?: number | null | undefined;
2276
+ inp?: number | null | undefined;
2277
+ a11yAudits?: {
2278
+ id: string;
2279
+ passed: boolean;
2280
+ title: string;
2281
+ partial?: boolean | undefined;
2282
+ na?: boolean | undefined;
2283
+ }[] | undefined;
2284
+ seoAudits?: {
2285
+ id: string;
2286
+ passed: boolean;
2287
+ title: string;
2288
+ partial?: boolean | undefined;
2289
+ na?: boolean | undefined;
2290
+ }[] | undefined;
2291
+ lighthouseError?: string | undefined;
2292
+ }[] | undefined;
2293
+ }[];
2294
+ suiteType?: "ui" | "api" | "performance" | "audit" | undefined;
2295
+ }[];
2296
+ totalTests: number;
2297
+ environment?: string | undefined;
2298
+ logFilePath?: string | undefined;
2299
+ }>;
2300
+ type StepResult = z.infer<typeof StepResultSchema>;
2301
+ type TestCaseResult = z.infer<typeof TestCaseResultSchema>;
2302
+ type SuiteResult = z.infer<typeof SuiteResultSchema>;
2303
+ type RunResult = z.infer<typeof RunResultSchema>;
2304
+
2305
+ declare const HealingStatusSchema: z.ZodEnum<["pending", "accepted", "rejected"]>;
2306
+ declare const HealingStrategySchema: z.ZodEnum<["retry", "regenerate", "multi-selector", "visual", "decompose", "manual"]>;
2307
+ type HealingStatus = z.infer<typeof HealingStatusSchema>;
2308
+ type HealingStrategy = z.infer<typeof HealingStrategySchema>;
2309
+ declare const HealingEventSchema: z.ZodObject<{
2310
+ id: z.ZodString;
2311
+ runId: z.ZodString;
2312
+ suiteId: z.ZodString;
2313
+ caseId: z.ZodString;
2314
+ stepId: z.ZodString;
2315
+ stepInstruction: z.ZodString;
2316
+ failedCode: z.ZodString;
2317
+ healedCode: z.ZodString;
2318
+ error: z.ZodString;
2319
+ strategy: z.ZodEnum<["retry", "regenerate", "multi-selector", "visual", "decompose", "manual"]>;
2320
+ level: z.ZodNumber;
2321
+ status: z.ZodEnum<["pending", "accepted", "rejected"]>;
2322
+ pageUrl: z.ZodString;
2323
+ timestamp: z.ZodString;
2324
+ acceptedAt: z.ZodOptional<z.ZodString>;
2325
+ rejectedAt: z.ZodOptional<z.ZodString>;
2326
+ }, "strip", z.ZodTypeAny, {
2327
+ status: "pending" | "accepted" | "rejected";
2328
+ id: string;
2329
+ strategy: "retry" | "regenerate" | "multi-selector" | "visual" | "decompose" | "manual";
2330
+ stepInstruction: string;
2331
+ stepId: string;
2332
+ error: string;
2333
+ healedCode: string;
2334
+ caseId: string;
2335
+ suiteId: string;
2336
+ runId: string;
2337
+ failedCode: string;
2338
+ level: number;
2339
+ pageUrl: string;
2340
+ timestamp: string;
2341
+ acceptedAt?: string | undefined;
2342
+ rejectedAt?: string | undefined;
2343
+ }, {
2344
+ status: "pending" | "accepted" | "rejected";
2345
+ id: string;
2346
+ strategy: "retry" | "regenerate" | "multi-selector" | "visual" | "decompose" | "manual";
2347
+ stepInstruction: string;
2348
+ stepId: string;
2349
+ error: string;
2350
+ healedCode: string;
2351
+ caseId: string;
2352
+ suiteId: string;
2353
+ runId: string;
2354
+ failedCode: string;
2355
+ level: number;
2356
+ pageUrl: string;
2357
+ timestamp: string;
2358
+ acceptedAt?: string | undefined;
2359
+ rejectedAt?: string | undefined;
2360
+ }>;
2361
+ declare const HealingReportSchema: z.ZodObject<{
2362
+ runId: z.ZodString;
2363
+ generatedAt: z.ZodString;
2364
+ totalHeals: z.ZodNumber;
2365
+ accepted: z.ZodNumber;
2366
+ rejected: z.ZodNumber;
2367
+ pending: z.ZodNumber;
2368
+ events: z.ZodArray<z.ZodObject<{
2369
+ id: z.ZodString;
2370
+ runId: z.ZodString;
2371
+ suiteId: z.ZodString;
2372
+ caseId: z.ZodString;
2373
+ stepId: z.ZodString;
2374
+ stepInstruction: z.ZodString;
2375
+ failedCode: z.ZodString;
2376
+ healedCode: z.ZodString;
2377
+ error: z.ZodString;
2378
+ strategy: z.ZodEnum<["retry", "regenerate", "multi-selector", "visual", "decompose", "manual"]>;
2379
+ level: z.ZodNumber;
2380
+ status: z.ZodEnum<["pending", "accepted", "rejected"]>;
2381
+ pageUrl: z.ZodString;
2382
+ timestamp: z.ZodString;
2383
+ acceptedAt: z.ZodOptional<z.ZodString>;
2384
+ rejectedAt: z.ZodOptional<z.ZodString>;
2385
+ }, "strip", z.ZodTypeAny, {
2386
+ status: "pending" | "accepted" | "rejected";
2387
+ id: string;
2388
+ strategy: "retry" | "regenerate" | "multi-selector" | "visual" | "decompose" | "manual";
2389
+ stepInstruction: string;
2390
+ stepId: string;
2391
+ error: string;
2392
+ healedCode: string;
2393
+ caseId: string;
2394
+ suiteId: string;
2395
+ runId: string;
2396
+ failedCode: string;
2397
+ level: number;
2398
+ pageUrl: string;
2399
+ timestamp: string;
2400
+ acceptedAt?: string | undefined;
2401
+ rejectedAt?: string | undefined;
2402
+ }, {
2403
+ status: "pending" | "accepted" | "rejected";
2404
+ id: string;
2405
+ strategy: "retry" | "regenerate" | "multi-selector" | "visual" | "decompose" | "manual";
2406
+ stepInstruction: string;
2407
+ stepId: string;
2408
+ error: string;
2409
+ healedCode: string;
2410
+ caseId: string;
2411
+ suiteId: string;
2412
+ runId: string;
2413
+ failedCode: string;
2414
+ level: number;
2415
+ pageUrl: string;
2416
+ timestamp: string;
2417
+ acceptedAt?: string | undefined;
2418
+ rejectedAt?: string | undefined;
2419
+ }>, "many">;
2420
+ }, "strip", z.ZodTypeAny, {
2421
+ pending: number;
2422
+ runId: string;
2423
+ accepted: number;
2424
+ rejected: number;
2425
+ generatedAt: string;
2426
+ totalHeals: number;
2427
+ events: {
2428
+ status: "pending" | "accepted" | "rejected";
2429
+ id: string;
2430
+ strategy: "retry" | "regenerate" | "multi-selector" | "visual" | "decompose" | "manual";
2431
+ stepInstruction: string;
2432
+ stepId: string;
2433
+ error: string;
2434
+ healedCode: string;
2435
+ caseId: string;
2436
+ suiteId: string;
2437
+ runId: string;
2438
+ failedCode: string;
2439
+ level: number;
2440
+ pageUrl: string;
2441
+ timestamp: string;
2442
+ acceptedAt?: string | undefined;
2443
+ rejectedAt?: string | undefined;
2444
+ }[];
2445
+ }, {
2446
+ pending: number;
2447
+ runId: string;
2448
+ accepted: number;
2449
+ rejected: number;
2450
+ generatedAt: string;
2451
+ totalHeals: number;
2452
+ events: {
2453
+ status: "pending" | "accepted" | "rejected";
2454
+ id: string;
2455
+ strategy: "retry" | "regenerate" | "multi-selector" | "visual" | "decompose" | "manual";
2456
+ stepInstruction: string;
2457
+ stepId: string;
2458
+ error: string;
2459
+ healedCode: string;
2460
+ caseId: string;
2461
+ suiteId: string;
2462
+ runId: string;
2463
+ failedCode: string;
2464
+ level: number;
2465
+ pageUrl: string;
2466
+ timestamp: string;
2467
+ acceptedAt?: string | undefined;
2468
+ rejectedAt?: string | undefined;
2469
+ }[];
2470
+ }>;
2471
+ type HealingEvent = z.infer<typeof HealingEventSchema>;
2472
+ type HealingReport = z.infer<typeof HealingReportSchema>;
2473
+ interface HealingDecision {
2474
+ heal: boolean;
2475
+ strategy?: 'individual' | 'batch';
2476
+ reason: string;
2477
+ }
2478
+ type FailureKind = 'assertion' | 'infra';
2479
+ interface StepFailure {
2480
+ stepId: string;
2481
+ instruction: string;
2482
+ error: string;
2483
+ pageUrl: string;
2484
+ failedCode: string;
2485
+ failureKind: FailureKind;
2486
+ }
2487
+
2488
+ declare const SecretVariableSchema: z.ZodObject<{
2489
+ value: z.ZodString;
2490
+ secret: z.ZodLiteral<true>;
2491
+ }, "strip", z.ZodTypeAny, {
2492
+ value: string;
2493
+ secret: true;
2494
+ }, {
2495
+ value: string;
2496
+ secret: true;
2497
+ }>;
2498
+ declare const VariableValueSchema: z.ZodUnion<[z.ZodString, z.ZodObject<{
2499
+ value: z.ZodString;
2500
+ secret: z.ZodLiteral<true>;
2501
+ }, "strip", z.ZodTypeAny, {
2502
+ value: string;
2503
+ secret: true;
2504
+ }, {
2505
+ value: string;
2506
+ secret: true;
2507
+ }>]>;
2508
+ declare const VariableStoreSchema: z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodObject<{
2509
+ value: z.ZodString;
2510
+ secret: z.ZodLiteral<true>;
2511
+ }, "strip", z.ZodTypeAny, {
2512
+ value: string;
2513
+ secret: true;
2514
+ }, {
2515
+ value: string;
2516
+ secret: true;
2517
+ }>]>>;
2518
+ type SecretVariable = z.infer<typeof SecretVariableSchema>;
2519
+ type VariableValue = z.infer<typeof VariableValueSchema>;
2520
+ type VariableStore = z.infer<typeof VariableStoreSchema>;
2521
+ interface ResolvedVariables {
2522
+ [key: string]: string;
2523
+ }
2524
+
2525
+ declare const PageContextSchema: z.ZodObject<{
2526
+ url: z.ZodString;
2527
+ title: z.ZodString;
2528
+ interactiveElements: z.ZodString;
2529
+ htmlSnapshot: z.ZodString;
2530
+ previousSteps: z.ZodArray<z.ZodObject<{
2531
+ instruction: z.ZodString;
2532
+ code: z.ZodString;
2533
+ }, "strip", z.ZodTypeAny, {
2534
+ code: string;
2535
+ instruction: string;
2536
+ }, {
2537
+ code: string;
2538
+ instruction: string;
2539
+ }>, "many">;
2540
+ variables: z.ZodRecord<z.ZodString, z.ZodString>;
2541
+ }, "strip", z.ZodTypeAny, {
2542
+ url: string;
2543
+ title: string;
2544
+ interactiveElements: string;
2545
+ htmlSnapshot: string;
2546
+ previousSteps: {
2547
+ code: string;
2548
+ instruction: string;
2549
+ }[];
2550
+ variables: Record<string, string>;
2551
+ }, {
2552
+ url: string;
2553
+ title: string;
2554
+ interactiveElements: string;
2555
+ htmlSnapshot: string;
2556
+ previousSteps: {
2557
+ code: string;
2558
+ instruction: string;
2559
+ }[];
2560
+ variables: Record<string, string>;
2561
+ }>;
2562
+ type PageContext = z.infer<typeof PageContextSchema>;
2563
+ declare const GenerationStrategySchema: z.ZodEnum<["template", "cache", "batch", "fast", "primary"]>;
2564
+ type GenerationStrategy = z.infer<typeof GenerationStrategySchema>;
2565
+ declare const GenerationResultSchema: z.ZodObject<{
2566
+ code: z.ZodString;
2567
+ strategy: z.ZodEnum<["template", "cache", "batch", "fast", "primary"]>;
2568
+ cost: z.ZodNumber;
2569
+ model: z.ZodString;
2570
+ }, "strip", z.ZodTypeAny, {
2571
+ code: string;
2572
+ strategy: "template" | "cache" | "batch" | "fast" | "primary";
2573
+ cost: number;
2574
+ model: string;
2575
+ }, {
2576
+ code: string;
2577
+ strategy: "template" | "cache" | "batch" | "fast" | "primary";
2578
+ cost: number;
2579
+ model: string;
2580
+ }>;
2581
+ type GenerationResult = z.infer<typeof GenerationResultSchema>;
2582
+ interface GeneratedStep {
2583
+ instruction: string;
2584
+ generatedCode: string;
2585
+ strategy: GenerationStrategy;
2586
+ }
2587
+ interface GeneratedCase {
2588
+ name: string;
2589
+ description: string;
2590
+ tags: string[];
2591
+ steps: GeneratedStep[];
2592
+ }
2593
+ interface GeneratedSuite {
2594
+ name: string;
2595
+ description: string;
2596
+ tags: string[];
2597
+ cases: GeneratedCase[];
2598
+ }
2599
+ interface AIProvider {
2600
+ readonly name: string;
2601
+ readonly model: string;
2602
+ readonly supportsVision: boolean;
2603
+ generateCode(instruction: string, context: PageContext): Promise<string>;
2604
+ generateTestSuite(story: string): Promise<GeneratedSuite>;
2605
+ healSelector(instruction: string, failedCode: string, error: string, context: PageContext): Promise<string>;
2606
+ batchGenerateCode(steps: Array<{
2607
+ instruction: string;
2608
+ context: PageContext;
2609
+ }>): Promise<string[]>;
2610
+ analyzeScreenshot?(screenshot: Buffer, instruction: string): Promise<{
2611
+ x: number;
2612
+ y: number;
2613
+ action: string;
2614
+ }>;
2615
+ validate(): Promise<{
2616
+ valid: boolean;
2617
+ error?: string;
2618
+ }>;
2619
+ }
2620
+ interface RouterStats {
2621
+ template: number;
2622
+ cache: number;
2623
+ batch: number;
2624
+ fast: number;
2625
+ primary: number;
2626
+ total: number;
2627
+ freeCalls: number;
2628
+ freePercent: string;
2629
+ cacheEntries: number;
2630
+ }
2631
+
2632
+ /**
2633
+ * Reads a suite.json from the given suite directory.
2634
+ */
2635
+ declare function readSuite(suiteDir: string): Promise<TestSuite>;
2636
+ /**
2637
+ * Writes a suite.json atomically to the given suite directory.
2638
+ */
2639
+ declare function writeSuite(suiteDir: string, suite: TestSuite): Promise<void>;
2640
+ /**
2641
+ * Creates a new suite directory and writes its suite.json.
2642
+ * Returns both the directory path and the generated suite ID.
2643
+ */
2644
+ declare function createSuite(testsDir: string, suite: Omit<TestSuite, 'id' | 'createdAt' | 'updatedAt'>): Promise<{
2645
+ suiteDir: string;
2646
+ suiteId: string;
2647
+ }>;
2648
+ /**
2649
+ * Updates an existing suite (merges partial fields, updates updatedAt).
2650
+ */
2651
+ declare function updateSuite(suiteDir: string, updates: Partial<Omit<TestSuite, 'id' | 'createdAt'>>): Promise<TestSuite>;
2652
+ /**
2653
+ * Deletes a suite directory and all its contents.
2654
+ */
2655
+ declare function deleteSuite(suiteDir: string): Promise<void>;
2656
+ /**
2657
+ * Lists all suite directories under testsDir.
2658
+ * Scans: testsDir/ui/, testsDir/api/, testsDir/performance/, and testsDir/ (legacy root).
2659
+ */
2660
+ declare function listSuiteDirs(testsDir: string): Promise<string[]>;
2661
+ /**
2662
+ * Reads all suites from testsDir.
2663
+ */
2664
+ declare function listSuites(testsDir: string): Promise<TestSuite[]>;
2665
+ /**
2666
+ * Reads all suites with their case counts (lightweight — counts files, doesn't parse).
2667
+ */
2668
+ declare function listSuitesWithCounts(testsDir: string): Promise<(TestSuite & {
2669
+ caseCount: number;
2670
+ })[]>;
2671
+
2672
+ /**
2673
+ * Reads a .test.json file from the given path.
2674
+ */
2675
+ declare function readCase(casePath: string): Promise<TestCase>;
2676
+ /**
2677
+ * Writes a TestCase atomically to the given path.
2678
+ */
2679
+ declare function writeCase(casePath: string, testCase: TestCase): Promise<void>;
2680
+ /**
2681
+ * Creates a new .test.json file in the given suite directory.
2682
+ * Returns the path to the created file.
2683
+ */
2684
+ declare function createCase(suiteDir: string, testCase: Omit<TestCase, 'id' | 'createdAt' | 'updatedAt'>): Promise<string>;
2685
+ /**
2686
+ * Updates an existing test case (merges partial fields, bumps updatedAt).
2687
+ */
2688
+ declare function updateCase(casePath: string, updates: Partial<Omit<TestCase, 'id' | 'createdAt'>>): Promise<TestCase>;
2689
+ /**
2690
+ * Deletes a .test.json file.
2691
+ */
2692
+ declare function deleteCase(casePath: string): Promise<void>;
2693
+ /**
2694
+ * Lists all .test.json file paths within a suite directory.
2695
+ */
2696
+ declare function listCasePaths(suiteDir: string): Promise<string[]>;
2697
+ /**
2698
+ * Reads all test cases from a suite directory.
2699
+ */
2700
+ declare function listCases(suiteDir: string): Promise<TestCase[]>;
2701
+ /**
2702
+ * Returns the .test.json path for a case given its suite directory and case name.
2703
+ */
2704
+ declare function getCasePath(suiteDir: string, caseName: string): string;
2705
+
2706
+ /**
2707
+ * Reads a variables JSON file from disk and validates its shape.
2708
+ */
2709
+ declare function readVariables(filePath: string): Promise<VariableStore>;
2710
+ /**
2711
+ * Writes a variables file atomically.
2712
+ */
2713
+ declare function writeVariables(filePath: string, store: VariableStore): Promise<void>;
2714
+ /**
2715
+ * Reads the global variables file.
2716
+ */
2717
+ declare function readGlobalVariables(rootDir: string): Promise<VariableStore>;
2718
+ /**
2719
+ * Reads environment-specific variables (e.g. dev, staging, prod).
2720
+ */
2721
+ declare function readEnvVariables(rootDir: string, env: string): Promise<VariableStore>;
2722
+ /**
2723
+ * Merges global + env-specific variables, resolving all values to strings.
2724
+ * Environment variables override global variables.
2725
+ * Secrets are resolved to their plain values (never sent to AI — caller must redact).
2726
+ */
2727
+ declare function resolveVariables(rootDir: string, env?: string): Promise<ResolvedVariables>;
2728
+ /**
2729
+ * Sets a variable in the global variables file.
2730
+ */
2731
+ declare function setGlobalVariable(rootDir: string, key: string, value: VariableStore[string]): Promise<void>;
2732
+ /**
2733
+ * Deletes a variable from the global variables file.
2734
+ */
2735
+ declare function deleteGlobalVariable(rootDir: string, key: string): Promise<void>;
2736
+ /**
2737
+ * Lists all available variable files (global + env-specific).
2738
+ */
2739
+ declare function listVariableFiles(rootDir: string): Promise<string[]>;
2740
+
2741
+ /**
2742
+ * Reads the runtime config from autotest.config.json.
2743
+ * Falls back to DEFAULT_CONFIG if the file does not exist.
2744
+ */
2745
+ declare function readConfig(rootDir: string): Promise<AutotestConfig>;
2746
+ /**
2747
+ * Writes the config atomically to autotest.config.json
2748
+ * and regenerates the human-readable autotest.config.ts.
2749
+ */
2750
+ declare function writeConfig(rootDir: string, config: AutotestConfig): Promise<void>;
2751
+ /**
2752
+ * Updates specific config fields (merges, validates, and writes).
2753
+ */
2754
+ declare function updateConfig(rootDir: string, updates: Partial<AutotestConfig>): Promise<AutotestConfig>;
2755
+ /**
2756
+ * Checks whether a config exists in the given directory.
2757
+ */
2758
+ declare function configExists(rootDir: string): Promise<boolean>;
2759
+ /**
2760
+ * Validates the config and throws a ConfigError with actionable message if invalid.
2761
+ */
2762
+ declare function validateConfig(rootDir: string): Promise<void>;
2763
+
2764
+ /**
2765
+ * Saves a run result to results/runs/{runId}.json.
2766
+ */
2767
+ declare function writeResult(rootDir: string, result: RunResult): Promise<void>;
2768
+ /**
2769
+ * Reads a run result by runId.
2770
+ */
2771
+ declare function readResult(rootDir: string, runId: string): Promise<RunResult>;
2772
+ /**
2773
+ * Lists all run result IDs, sorted newest-first.
2774
+ */
2775
+ declare function listResultIds(rootDir: string): Promise<string[]>;
2776
+ /**
2777
+ * Lists run results (metadata only — no step details) for dashboard display.
2778
+ */
2779
+ declare function listResults(rootDir: string, limit?: number): Promise<(Pick<RunResult, 'runId' | 'status' | 'environment' | 'startedAt' | 'finishedAt' | 'totalTests' | 'passed' | 'failed' | 'skipped' | 'duration'> & {
2780
+ suiteIds: string[];
2781
+ })[]>;
2782
+ /**
2783
+ * Deletes a run result file.
2784
+ */
2785
+ declare function deleteResult(rootDir: string, runId: string): Promise<void>;
2786
+ /**
2787
+ * Returns the screenshots directory path for a run.
2788
+ */
2789
+ declare function screenshotsDir(rootDir: string): string;
2790
+ /**
2791
+ * Returns the videos directory path.
2792
+ */
2793
+ declare function videosDir(rootDir: string): string;
2794
+ /**
2795
+ * Returns the traces directory path.
2796
+ */
2797
+ declare function tracesDir(rootDir: string): string;
2798
+
2799
+ /**
2800
+ * Saves a complete healing report for a run.
2801
+ */
2802
+ declare function writeHealingReport(rootDir: string, report: HealingReport): Promise<void>;
2803
+ /**
2804
+ * Reads a healing report for a specific run.
2805
+ */
2806
+ declare function readHealingReport(rootDir: string, runId: string): Promise<HealingReport>;
2807
+ /**
2808
+ * Reads all pending healing events across all runs.
2809
+ */
2810
+ declare function readPendingEvents(rootDir: string): Promise<HealingEvent[]>;
2811
+ /**
2812
+ * Appends a new healing event to the pending list, then enforces the 50-event cap.
2813
+ */
2814
+ declare function appendPendingEvent(rootDir: string, event: HealingEvent): Promise<void>;
2815
+ /**
2816
+ * Accepts a pending healing event: updates status and persists.
2817
+ */
2818
+ declare function acceptHealingEvent(rootDir: string, eventId: string): Promise<HealingEvent>;
2819
+ /**
2820
+ * Rejects a pending healing event.
2821
+ */
2822
+ declare function rejectHealingEvent(rootDir: string, eventId: string): Promise<HealingEvent>;
2823
+ /**
2824
+ * Removes accepted and rejected events older than retentionDays from the pending file.
2825
+ */
2826
+ declare function pruneResolvedEvents(rootDir: string, retentionDays?: number): Promise<number>;
2827
+ /**
2828
+ * Returns summary statistics for the healing store.
2829
+ */
2830
+ declare function getHealingStats(rootDir: string): Promise<{
2831
+ pending: number;
2832
+ accepted: number;
2833
+ rejected: number;
2834
+ total: number;
2835
+ }>;
2836
+ /**
2837
+ * Lists all healing report runIds (newest-first by mtime).
2838
+ */
2839
+ declare function listHealingReportIds(rootDir: string): Promise<string[]>;
2840
+
2841
+ declare const logger: pino.Logger<never, boolean>;
2842
+ declare function createChildLogger(component: string): pino.Logger;
2843
+
2844
+ declare class AssuremindError extends Error {
2845
+ readonly code: string;
2846
+ constructor(message: string, code: string);
2847
+ }
2848
+ declare class ProviderError extends AssuremindError {
2849
+ readonly provider: string;
2850
+ constructor(message: string, provider: string, code?: string);
2851
+ }
2852
+ declare class ExecutionError extends AssuremindError {
2853
+ readonly stepId: string;
2854
+ constructor(message: string, stepId: string, code?: string);
2855
+ }
2856
+ declare class ConfigError extends AssuremindError {
2857
+ constructor(message: string, code?: string);
2858
+ }
2859
+ declare class ValidationError extends AssuremindError {
2860
+ readonly field?: string;
2861
+ constructor(message: string, field?: string, code?: string);
2862
+ }
2863
+ declare class HealingError extends AssuremindError {
2864
+ readonly level: number;
2865
+ constructor(message: string, level: number, code?: string);
2866
+ }
2867
+ declare class StorageError extends AssuremindError {
2868
+ readonly path: string;
2869
+ constructor(message: string, path: string, code?: string);
2870
+ }
2871
+ declare function isAssuremindError(error: unknown): error is AssuremindError;
2872
+ declare function formatError(error: unknown): string;
2873
+
2874
+ /**
2875
+ * Sanitizes AI-generated code: strips fences, removes anti-patterns,
2876
+ * trims whitespace, and validates against forbidden patterns.
2877
+ */
2878
+ declare function sanitizeGeneratedCode(raw: string): string;
2879
+ /**
2880
+ * Sanitizes a string for safe use as a filename component.
2881
+ * Replaces whitespace and special chars with hyphens, lowercases.
2882
+ */
2883
+ declare function toSlug(input: string): string;
2884
+ /**
2885
+ * Redacts secret variable values from a string so they never appear in logs.
2886
+ */
2887
+ declare function redactSecrets(text: string, secrets: ReadonlyArray<string>): string;
2888
+
2889
+ declare function sha256(input: string): string;
2890
+ /**
2891
+ * Normalises a URL by replacing dynamic path segments (IDs) with wildcards.
2892
+ * Example: /users/123/edit becomes /users/{star}/edit
2893
+ * Example: /posts/abc-def/comments becomes /posts/{star}/comments
2894
+ */
2895
+ declare function normalizeUrl(url: string): string;
2896
+ /**
2897
+ * Generates a short cache key from an instruction and URL.
2898
+ * Key = first 16 chars of sha256(normalizedInstruction|urlPattern)
2899
+ */
2900
+ declare function generateCacheKey(instruction: string, url: string): string;
2901
+
2902
+ declare const BaseEnvSchema: z.ZodObject<{
2903
+ NODE_ENV: z.ZodDefault<z.ZodEnum<["development", "production", "test"]>>;
2904
+ LOG_LEVEL: z.ZodDefault<z.ZodEnum<["trace", "debug", "info", "warn", "error", "fatal"]>>;
2905
+ AI_PROVIDER: z.ZodEnum<["anthropic", "openai", "google", "azure-openai", "bedrock", "deepseek", "groq", "together", "qwen", "perplexity", "ollama", "custom"]>;
2906
+ AI_TIERED_ENABLED: z.ZodDefault<z.ZodEffects<z.ZodString, boolean, string>>;
2907
+ AI_TIERED_FAST_PROVIDER: z.ZodOptional<z.ZodEnum<["anthropic", "openai", "google", "azure-openai", "bedrock", "deepseek", "groq", "together", "qwen", "perplexity", "ollama", "custom"]>>;
2908
+ AI_TIERED_FAST_MODEL: z.ZodOptional<z.ZodString>;
2909
+ AI_TIMEOUT: z.ZodDefault<z.ZodNumber>;
2910
+ AI_MAX_RETRIES: z.ZodDefault<z.ZodNumber>;
2911
+ }, "strip", z.ZodTypeAny, {
2912
+ NODE_ENV: "test" | "production" | "development";
2913
+ LOG_LEVEL: "trace" | "error" | "info" | "fatal" | "warn" | "debug";
2914
+ AI_PROVIDER: "custom" | "anthropic" | "openai" | "google" | "azure-openai" | "bedrock" | "deepseek" | "groq" | "together" | "qwen" | "perplexity" | "ollama";
2915
+ AI_TIERED_ENABLED: boolean;
2916
+ AI_TIMEOUT: number;
2917
+ AI_MAX_RETRIES: number;
2918
+ AI_TIERED_FAST_PROVIDER?: "custom" | "anthropic" | "openai" | "google" | "azure-openai" | "bedrock" | "deepseek" | "groq" | "together" | "qwen" | "perplexity" | "ollama" | undefined;
2919
+ AI_TIERED_FAST_MODEL?: string | undefined;
2920
+ }, {
2921
+ AI_PROVIDER: "custom" | "anthropic" | "openai" | "google" | "azure-openai" | "bedrock" | "deepseek" | "groq" | "together" | "qwen" | "perplexity" | "ollama";
2922
+ NODE_ENV?: "test" | "production" | "development" | undefined;
2923
+ LOG_LEVEL?: "trace" | "error" | "info" | "fatal" | "warn" | "debug" | undefined;
2924
+ AI_TIERED_ENABLED?: string | undefined;
2925
+ AI_TIERED_FAST_PROVIDER?: "custom" | "anthropic" | "openai" | "google" | "azure-openai" | "bedrock" | "deepseek" | "groq" | "together" | "qwen" | "perplexity" | "ollama" | undefined;
2926
+ AI_TIERED_FAST_MODEL?: string | undefined;
2927
+ AI_TIMEOUT?: number | undefined;
2928
+ AI_MAX_RETRIES?: number | undefined;
2929
+ }>;
2930
+ type BaseEnv = z.infer<typeof BaseEnvSchema>;
2931
+ type ValidatedEnv = BaseEnv & Record<string, unknown>;
2932
+ /**
2933
+ * Loads and validates the environment for the configured AI provider.
2934
+ * Throws a ConfigError with actionable message if validation fails.
2935
+ * Result is cached after first call.
2936
+ */
2937
+ declare function validateEnv(): ValidatedEnv;
2938
+ /** Clears the cached env — used in tests to reset state between test cases. */
2939
+ declare function clearEnvCache(): void;
2940
+ /** Returns the validated env without throwing — for non-critical reads. */
2941
+ declare function tryGetEnv(): ValidatedEnv | null;
2942
+
2943
+ /**
2944
+ * defineConfig — type-safe helper for autotest.config.ts.
2945
+ * Validates the config at definition time and returns it unchanged.
2946
+ * Usage: export default defineConfig({ baseUrl: '...', ... })
2947
+ */
2948
+ declare function defineConfig(config: Partial<AutotestConfig>): AutotestConfig;
2949
+
2950
+ export { type AIProvider, AssuremindError, type AutotestConfig, type BrowserName, ConfigError, ExecutionError, type GeneratedCase, type GeneratedStep, type GeneratedSuite, type GenerationResult, type GenerationStrategy$1 as GenerationStrategy, type HealingConfig, type HealingDecision, HealingError, type HealingEvent, type HealingReport, type HealingStatus, type HealingStrategy, type PageContext, type Priority, ProviderError, type ReportingConfig, type ResolvedVariables, type RouterStats, type RunConfig, type RunResult, type RunStatus, type ScreenshotMode, type SecretVariable, type StepFailure, type StepResult, StorageError, type SuiteResult, type TestCase, type TestCaseResult, type TestStep, type TestSuite, type TraceMode, ValidationError, type VariableStore, type VariableValue, type VideoMode, acceptHealingEvent, appendPendingEvent, clearEnvCache, configExists, createCase, createChildLogger, createSuite, defineConfig, deleteCase, deleteGlobalVariable, deleteResult, deleteSuite, formatError, generateCacheKey, getCasePath, getHealingStats, isAssuremindError, listCasePaths, listCases, listHealingReportIds, listResultIds, listResults, listSuiteDirs, listSuites, listSuitesWithCounts, listVariableFiles, logger, normalizeUrl, pruneResolvedEvents, readCase, readConfig, readEnvVariables, readGlobalVariables, readHealingReport, readPendingEvents, readResult, readSuite, readVariables, redactSecrets, rejectHealingEvent, resolveVariables, sanitizeGeneratedCode, screenshotsDir, setGlobalVariable, sha256, toSlug, tracesDir, tryGetEnv, updateCase, updateConfig, updateSuite, validateConfig, validateEnv, videosDir, writeCase, writeConfig, writeHealingReport, writeResult, writeSuite, writeVariables };