@elaraai/e3-ui 1.0.21 → 1.0.23

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.
@@ -15,18 +15,18 @@
15
15
  * 1. `e3.input('batches', Array(BatchRow), [...])` — the **input dataset**. The
16
16
  * renderer introspects this row struct to drive the treatment / outcome /
17
17
  * confounder pickers, exactly like `Table`.
18
- * 2. `e3.input('experiment_config', Experiment.Types.Config, {...})` — the
19
- * staged config the pickers edit (snake_case; structurally identical to
20
- * east-py-datascience's `Causal.Types.CausalExperimentConfigType`).
21
- * 3. ONE `e3.function('experiment', (rows, config) ExperimentResult)`. In
22
- * production its body calls east-py-datascience's `Causal.experiment`; here
23
- * it is a pure-East fixture returning the constants the real engine would,
24
- * so the surface runs offline with no datascience dependency. The snapshot
25
- * harness compiles this body to seed the function the numbers live only
26
- * here, so the two copies cannot drift.
27
- * 4. `<Experiment data config experiment journal />`. The renderer auto-runs on
28
- * mount, derives every word / colour / bar from the single returned result
29
- * and its `verdict`, and re-runs when the user edits the config.
18
+ * 2. `e3.input('experiment_configs', Array(Configuration), [...])` — the list of
19
+ * **questions**. Each entry is self-contained: a full `spec`
20
+ * ({@link Experiment.Types.Config}) and an OPTIONAL precomputed `result`
21
+ * (+ `design`). Selecting one seeds the working config.
22
+ * 3. An OPTIONAL `e3.function('experiment', (rows, config) → ExperimentResult)`.
23
+ * One universal estimator serves every question; omit it when every shown
24
+ * config carries a precomputed `result`. Here it returns the constants the
25
+ * real `Causal.experiment` engine would, so the surface runs offline.
26
+ * 4. `<Experiment data configs experiment journal />`. The renderer selects the
27
+ * first config, auto-runs (unless it has a precomputed result), derives every
28
+ * word / colour / bar from the single result + its `verdict`, and re-runs when
29
+ * the user edits the config.
30
30
  */
31
31
  import { ArrayType, StructType, BooleanType, FloatType, IntegerType, StringType, DateTimeType, variant } from '@elaraai/east';
32
32
  /** One production batch — the row struct the pickers are generic over. */
@@ -50,48 +50,6 @@ export declare const batchesInput: import("@elaraai/e3").DatasetDef<ArrayType<St
50
50
  readonly product: StringType;
51
51
  readonly run_date: DateTimeType;
52
52
  }>>, [variant<"field", "inputs">, variant<"field", "batches">]>;
53
- export declare const experimentConfigInput: import("@elaraai/e3").DatasetDef<StructType<{
54
- readonly treatment: StringType;
55
- readonly outcome: StringType;
56
- readonly common_causes: ArrayType<StringType>;
57
- readonly categorical: import("@elaraai/east").OptionType<ArrayType<StringType>>;
58
- readonly method: import("@elaraai/east").OptionType<import("@elaraai/east").VariantType<{
59
- readonly linear_regression: import("@elaraai/east").NullType;
60
- readonly propensity_score_weighting: StructType<{
61
- readonly weighting_scheme: import("@elaraai/east").OptionType<import("@elaraai/east").VariantType<{
62
- readonly ips_weight: import("@elaraai/east").NullType;
63
- readonly ips_stabilized_weight: import("@elaraai/east").NullType;
64
- readonly ips_normalized_weight: import("@elaraai/east").NullType;
65
- }>>;
66
- }>;
67
- }>>;
68
- readonly estimand: import("@elaraai/east").OptionType<import("@elaraai/east").VariantType<{
69
- readonly ate: import("@elaraai/east").NullType;
70
- readonly att: import("@elaraai/east").NullType;
71
- readonly atc: import("@elaraai/east").NullType;
72
- }>>;
73
- readonly refute: import("@elaraai/east").OptionType<StructType<{
74
- readonly placebo: BooleanType;
75
- readonly random_common_cause: BooleanType;
76
- readonly data_subset: BooleanType;
77
- readonly sensitivity: import("@elaraai/east").OptionType<ArrayType<FloatType>>;
78
- }>>;
79
- readonly dose_feature: import("@elaraai/east").OptionType<StringType>;
80
- readonly min_overlap: import("@elaraai/east").OptionType<FloatType>;
81
- readonly min_treatment_variation: import("@elaraai/east").OptionType<FloatType>;
82
- readonly bootstrap: import("@elaraai/east").OptionType<StructType<{
83
- readonly reps: IntegerType;
84
- readonly cluster_column: import("@elaraai/east").OptionType<StringType>;
85
- readonly confidence_level: import("@elaraai/east").OptionType<FloatType>;
86
- }>>;
87
- readonly random_state: import("@elaraai/east").OptionType<IntegerType>;
88
- readonly strong_overlap: import("@elaraai/east").OptionType<FloatType>;
89
- readonly evalue_floor: import("@elaraai/east").OptionType<FloatType>;
90
- readonly expected_sign: import("@elaraai/east").OptionType<import("@elaraai/east").VariantType<{
91
- readonly positive: import("@elaraai/east").NullType;
92
- readonly negative: import("@elaraai/east").NullType;
93
- }>>;
94
- }>, [variant<"field", "inputs">, variant<"field", "experiment_config">]>;
95
53
  export declare const experimentFn: import("@elaraai/e3").FunctionDef<[ArrayType<StructType<{
96
54
  readonly slow_cure: BooleanType;
97
55
  readonly bond_strength: FloatType;
@@ -358,6 +316,597 @@ export declare const designFn: import("@elaraai/e3").FunctionDef<[ArrayType<Stru
358
316
  }>;
359
317
  readonly rationale: StringType;
360
318
  }>>;
319
+ /** A single question, no precomputed answer — the estimator auto-runs on select. */
320
+ export declare const experimentConfigsInput: import("@elaraai/e3").DatasetDef<ArrayType<StructType<{
321
+ readonly id: StringType;
322
+ readonly label: StringType;
323
+ readonly spec: StructType<{
324
+ readonly treatment: StringType;
325
+ readonly outcome: StringType;
326
+ readonly common_causes: ArrayType<StringType>;
327
+ readonly categorical: import("@elaraai/east").OptionType<ArrayType<StringType>>;
328
+ readonly method: import("@elaraai/east").OptionType<import("@elaraai/east").VariantType<{
329
+ readonly linear_regression: import("@elaraai/east").NullType;
330
+ readonly propensity_score_weighting: StructType<{
331
+ readonly weighting_scheme: import("@elaraai/east").OptionType<import("@elaraai/east").VariantType<{
332
+ readonly ips_weight: import("@elaraai/east").NullType;
333
+ readonly ips_stabilized_weight: import("@elaraai/east").NullType;
334
+ readonly ips_normalized_weight: import("@elaraai/east").NullType;
335
+ }>>;
336
+ }>;
337
+ }>>;
338
+ readonly estimand: import("@elaraai/east").OptionType<import("@elaraai/east").VariantType<{
339
+ readonly ate: import("@elaraai/east").NullType;
340
+ readonly att: import("@elaraai/east").NullType;
341
+ readonly atc: import("@elaraai/east").NullType;
342
+ }>>;
343
+ readonly refute: import("@elaraai/east").OptionType<StructType<{
344
+ readonly placebo: BooleanType;
345
+ readonly random_common_cause: BooleanType;
346
+ readonly data_subset: BooleanType;
347
+ readonly sensitivity: import("@elaraai/east").OptionType<ArrayType<FloatType>>;
348
+ }>>;
349
+ readonly dose_feature: import("@elaraai/east").OptionType<StringType>;
350
+ readonly min_overlap: import("@elaraai/east").OptionType<FloatType>;
351
+ readonly min_treatment_variation: import("@elaraai/east").OptionType<FloatType>;
352
+ readonly bootstrap: import("@elaraai/east").OptionType<StructType<{
353
+ readonly reps: IntegerType;
354
+ readonly cluster_column: import("@elaraai/east").OptionType<StringType>;
355
+ readonly confidence_level: import("@elaraai/east").OptionType<FloatType>;
356
+ }>>;
357
+ readonly random_state: import("@elaraai/east").OptionType<IntegerType>;
358
+ readonly strong_overlap: import("@elaraai/east").OptionType<FloatType>;
359
+ readonly evalue_floor: import("@elaraai/east").OptionType<FloatType>;
360
+ readonly expected_sign: import("@elaraai/east").OptionType<import("@elaraai/east").VariantType<{
361
+ readonly positive: import("@elaraai/east").NullType;
362
+ readonly negative: import("@elaraai/east").NullType;
363
+ }>>;
364
+ }>;
365
+ readonly population: import("@elaraai/east").OptionType<ArrayType<import("@elaraai/east").VariantType<{
366
+ readonly string: import("@elaraai/east").StructType<{
367
+ readonly fieldId: import("@elaraai/east").StringType;
368
+ readonly op: import("@elaraai/east").VariantType<{
369
+ readonly eq: import("@elaraai/east").StringType;
370
+ readonly neq: import("@elaraai/east").StringType;
371
+ readonly in: import("@elaraai/east").SetType<import("@elaraai/east").StringType>;
372
+ readonly notIn: import("@elaraai/east").SetType<import("@elaraai/east").StringType>;
373
+ readonly contains: import("@elaraai/east").StringType;
374
+ readonly matches: import("@elaraai/east").StringType;
375
+ }>;
376
+ }>;
377
+ readonly integer: import("@elaraai/east").StructType<{
378
+ readonly fieldId: import("@elaraai/east").StringType;
379
+ readonly op: import("@elaraai/east").VariantType<{
380
+ readonly eq: import("@elaraai/east").IntegerType;
381
+ readonly neq: import("@elaraai/east").IntegerType;
382
+ readonly lt: import("@elaraai/east").IntegerType;
383
+ readonly lte: import("@elaraai/east").IntegerType;
384
+ readonly gt: import("@elaraai/east").IntegerType;
385
+ readonly gte: import("@elaraai/east").IntegerType;
386
+ readonly in: import("@elaraai/east").SetType<import("@elaraai/east").IntegerType>;
387
+ }>;
388
+ }>;
389
+ readonly float: import("@elaraai/east").StructType<{
390
+ readonly fieldId: import("@elaraai/east").StringType;
391
+ readonly op: import("@elaraai/east").VariantType<{
392
+ readonly lt: import("@elaraai/east").FloatType;
393
+ readonly lte: import("@elaraai/east").FloatType;
394
+ readonly gt: import("@elaraai/east").FloatType;
395
+ readonly gte: import("@elaraai/east").FloatType;
396
+ }>;
397
+ }>;
398
+ readonly datetime: import("@elaraai/east").StructType<{
399
+ readonly fieldId: import("@elaraai/east").StringType;
400
+ readonly op: import("@elaraai/east").VariantType<{
401
+ readonly before: import("@elaraai/east").DateTimeType;
402
+ readonly after: import("@elaraai/east").DateTimeType;
403
+ readonly between: import("@elaraai/east").StructType<{
404
+ readonly from: import("@elaraai/east").DateTimeType;
405
+ readonly to: import("@elaraai/east").DateTimeType;
406
+ }>;
407
+ }>;
408
+ }>;
409
+ readonly boolean: import("@elaraai/east").StructType<{
410
+ readonly fieldId: import("@elaraai/east").StringType;
411
+ readonly op: import("@elaraai/east").VariantType<{
412
+ readonly is: import("@elaraai/east").BooleanType;
413
+ }>;
414
+ }>;
415
+ }>>>;
416
+ readonly group: import("@elaraai/east").OptionType<StringType>;
417
+ readonly result: import("@elaraai/east").OptionType<StructType<{
418
+ readonly naive: FloatType;
419
+ readonly naive_ci: import("@elaraai/east").OptionType<StructType<{
420
+ readonly lower: FloatType;
421
+ readonly upper: FloatType;
422
+ }>>;
423
+ readonly adjusted: import("@elaraai/east").OptionType<StructType<{
424
+ readonly effect: FloatType;
425
+ readonly ci: import("@elaraai/east").OptionType<StructType<{
426
+ readonly lower: FloatType;
427
+ readonly upper: FloatType;
428
+ }>>;
429
+ }>>;
430
+ readonly n_total: IntegerType;
431
+ readonly n_treated: IntegerType;
432
+ readonly n_control: IntegerType;
433
+ readonly n_dropped: IntegerType;
434
+ readonly balance: ArrayType<StructType<{
435
+ readonly column: StringType;
436
+ readonly base_column: StringType;
437
+ readonly treated_mean: FloatType;
438
+ readonly control_mean: FloatType;
439
+ readonly std_diff: FloatType;
440
+ }>>;
441
+ readonly overlap: StructType<{
442
+ readonly treated_propensity: import("@elaraai/east").VectorType<FloatType>;
443
+ readonly control_propensity: import("@elaraai/east").VectorType<FloatType>;
444
+ readonly common_support_frac: FloatType;
445
+ readonly positivity_ok: BooleanType;
446
+ readonly support_strength: import("@elaraai/east").VariantType<{
447
+ readonly refused: import("@elaraai/east").NullType;
448
+ readonly thin: import("@elaraai/east").NullType;
449
+ readonly strong: import("@elaraai/east").NullType;
450
+ }>;
451
+ }>;
452
+ readonly refutation: import("@elaraai/east").OptionType<StructType<{
453
+ readonly placebo_effect: import("@elaraai/east").OptionType<FloatType>;
454
+ readonly placebo_passes: import("@elaraai/east").OptionType<BooleanType>;
455
+ readonly random_cc_within_ci: import("@elaraai/east").OptionType<BooleanType>;
456
+ readonly data_subset_effect: import("@elaraai/east").OptionType<FloatType>;
457
+ readonly data_subset_std: import("@elaraai/east").OptionType<FloatType>;
458
+ readonly robustness_value: import("@elaraai/east").OptionType<FloatType>;
459
+ readonly sensitivity: import("@elaraai/east").OptionType<StructType<{
460
+ readonly strengths: import("@elaraai/east").VectorType<FloatType>;
461
+ readonly effects: import("@elaraai/east").VectorType<FloatType>;
462
+ }>>;
463
+ readonly expected_sign_ok: import("@elaraai/east").OptionType<BooleanType>;
464
+ }>>;
465
+ readonly dose_response: import("@elaraai/east").OptionType<StructType<{
466
+ readonly feature: StringType;
467
+ readonly grid: import("@elaraai/east").VectorType<FloatType>;
468
+ readonly effect: import("@elaraai/east").VectorType<FloatType>;
469
+ readonly lower: import("@elaraai/east").OptionType<import("@elaraai/east").VectorType<FloatType>>;
470
+ readonly upper: import("@elaraai/east").OptionType<import("@elaraai/east").VectorType<FloatType>>;
471
+ readonly size: import("@elaraai/east").VectorType<IntegerType>;
472
+ }>>;
473
+ readonly verdict: import("@elaraai/east").VariantType<{
474
+ readonly causal: import("@elaraai/east").NullType;
475
+ readonly modest: import("@elaraai/east").NullType;
476
+ readonly adjustment_insufficient: import("@elaraai/east").NullType;
477
+ readonly non_identifiable_positivity: import("@elaraai/east").NullType;
478
+ readonly not_estimable: StringType;
479
+ }>;
480
+ }>>;
481
+ readonly design: import("@elaraai/east").OptionType<StructType<{
482
+ readonly verdict: import("@elaraai/east").VariantType<{
483
+ readonly causal: import("@elaraai/east").NullType;
484
+ readonly modest: import("@elaraai/east").NullType;
485
+ readonly adjustment_insufficient: import("@elaraai/east").NullType;
486
+ readonly non_identifiable_positivity: import("@elaraai/east").NullType;
487
+ readonly not_estimable: StringType;
488
+ }>;
489
+ readonly basis: import("@elaraai/east").VariantType<{
490
+ readonly detect_observed: import("@elaraai/east").NullType;
491
+ readonly resolve_vs_null: import("@elaraai/east").NullType;
492
+ readonly de_bias: import("@elaraai/east").NullType;
493
+ readonly restrict_to_overlap: import("@elaraai/east").NullType;
494
+ readonly create_control: import("@elaraai/east").NullType;
495
+ }>;
496
+ readonly target_effect: FloatType;
497
+ readonly outcome_sd: FloatType;
498
+ readonly target_power: FloatType;
499
+ readonly alpha: FloatType;
500
+ readonly current_power: import("@elaraai/east").OptionType<FloatType>;
501
+ readonly match_on: ArrayType<StringType>;
502
+ readonly options: ArrayType<StructType<{
503
+ readonly label: StringType;
504
+ readonly treated_share: FloatType;
505
+ readonly n_treated: IntegerType;
506
+ readonly n_control: IntegerType;
507
+ readonly n_total: IntegerType;
508
+ }>>;
509
+ readonly power_curve: StructType<{
510
+ readonly n: import("@elaraai/east").VectorType<IntegerType>;
511
+ readonly power: import("@elaraai/east").VectorType<FloatType>;
512
+ }>;
513
+ readonly rationale: StringType;
514
+ }>>;
515
+ }>>, [variant<"field", "inputs">, variant<"field", "experiment_configs">]>;
516
+ /** Three vetted questions — the curated menu (no precomputed answers; each runs live). */
517
+ export declare const experimentMenuConfigsInput: import("@elaraai/e3").DatasetDef<ArrayType<StructType<{
518
+ readonly id: StringType;
519
+ readonly label: StringType;
520
+ readonly spec: StructType<{
521
+ readonly treatment: StringType;
522
+ readonly outcome: StringType;
523
+ readonly common_causes: ArrayType<StringType>;
524
+ readonly categorical: import("@elaraai/east").OptionType<ArrayType<StringType>>;
525
+ readonly method: import("@elaraai/east").OptionType<import("@elaraai/east").VariantType<{
526
+ readonly linear_regression: import("@elaraai/east").NullType;
527
+ readonly propensity_score_weighting: StructType<{
528
+ readonly weighting_scheme: import("@elaraai/east").OptionType<import("@elaraai/east").VariantType<{
529
+ readonly ips_weight: import("@elaraai/east").NullType;
530
+ readonly ips_stabilized_weight: import("@elaraai/east").NullType;
531
+ readonly ips_normalized_weight: import("@elaraai/east").NullType;
532
+ }>>;
533
+ }>;
534
+ }>>;
535
+ readonly estimand: import("@elaraai/east").OptionType<import("@elaraai/east").VariantType<{
536
+ readonly ate: import("@elaraai/east").NullType;
537
+ readonly att: import("@elaraai/east").NullType;
538
+ readonly atc: import("@elaraai/east").NullType;
539
+ }>>;
540
+ readonly refute: import("@elaraai/east").OptionType<StructType<{
541
+ readonly placebo: BooleanType;
542
+ readonly random_common_cause: BooleanType;
543
+ readonly data_subset: BooleanType;
544
+ readonly sensitivity: import("@elaraai/east").OptionType<ArrayType<FloatType>>;
545
+ }>>;
546
+ readonly dose_feature: import("@elaraai/east").OptionType<StringType>;
547
+ readonly min_overlap: import("@elaraai/east").OptionType<FloatType>;
548
+ readonly min_treatment_variation: import("@elaraai/east").OptionType<FloatType>;
549
+ readonly bootstrap: import("@elaraai/east").OptionType<StructType<{
550
+ readonly reps: IntegerType;
551
+ readonly cluster_column: import("@elaraai/east").OptionType<StringType>;
552
+ readonly confidence_level: import("@elaraai/east").OptionType<FloatType>;
553
+ }>>;
554
+ readonly random_state: import("@elaraai/east").OptionType<IntegerType>;
555
+ readonly strong_overlap: import("@elaraai/east").OptionType<FloatType>;
556
+ readonly evalue_floor: import("@elaraai/east").OptionType<FloatType>;
557
+ readonly expected_sign: import("@elaraai/east").OptionType<import("@elaraai/east").VariantType<{
558
+ readonly positive: import("@elaraai/east").NullType;
559
+ readonly negative: import("@elaraai/east").NullType;
560
+ }>>;
561
+ }>;
562
+ readonly population: import("@elaraai/east").OptionType<ArrayType<import("@elaraai/east").VariantType<{
563
+ readonly string: import("@elaraai/east").StructType<{
564
+ readonly fieldId: import("@elaraai/east").StringType;
565
+ readonly op: import("@elaraai/east").VariantType<{
566
+ readonly eq: import("@elaraai/east").StringType;
567
+ readonly neq: import("@elaraai/east").StringType;
568
+ readonly in: import("@elaraai/east").SetType<import("@elaraai/east").StringType>;
569
+ readonly notIn: import("@elaraai/east").SetType<import("@elaraai/east").StringType>;
570
+ readonly contains: import("@elaraai/east").StringType;
571
+ readonly matches: import("@elaraai/east").StringType;
572
+ }>;
573
+ }>;
574
+ readonly integer: import("@elaraai/east").StructType<{
575
+ readonly fieldId: import("@elaraai/east").StringType;
576
+ readonly op: import("@elaraai/east").VariantType<{
577
+ readonly eq: import("@elaraai/east").IntegerType;
578
+ readonly neq: import("@elaraai/east").IntegerType;
579
+ readonly lt: import("@elaraai/east").IntegerType;
580
+ readonly lte: import("@elaraai/east").IntegerType;
581
+ readonly gt: import("@elaraai/east").IntegerType;
582
+ readonly gte: import("@elaraai/east").IntegerType;
583
+ readonly in: import("@elaraai/east").SetType<import("@elaraai/east").IntegerType>;
584
+ }>;
585
+ }>;
586
+ readonly float: import("@elaraai/east").StructType<{
587
+ readonly fieldId: import("@elaraai/east").StringType;
588
+ readonly op: import("@elaraai/east").VariantType<{
589
+ readonly lt: import("@elaraai/east").FloatType;
590
+ readonly lte: import("@elaraai/east").FloatType;
591
+ readonly gt: import("@elaraai/east").FloatType;
592
+ readonly gte: import("@elaraai/east").FloatType;
593
+ }>;
594
+ }>;
595
+ readonly datetime: import("@elaraai/east").StructType<{
596
+ readonly fieldId: import("@elaraai/east").StringType;
597
+ readonly op: import("@elaraai/east").VariantType<{
598
+ readonly before: import("@elaraai/east").DateTimeType;
599
+ readonly after: import("@elaraai/east").DateTimeType;
600
+ readonly between: import("@elaraai/east").StructType<{
601
+ readonly from: import("@elaraai/east").DateTimeType;
602
+ readonly to: import("@elaraai/east").DateTimeType;
603
+ }>;
604
+ }>;
605
+ }>;
606
+ readonly boolean: import("@elaraai/east").StructType<{
607
+ readonly fieldId: import("@elaraai/east").StringType;
608
+ readonly op: import("@elaraai/east").VariantType<{
609
+ readonly is: import("@elaraai/east").BooleanType;
610
+ }>;
611
+ }>;
612
+ }>>>;
613
+ readonly group: import("@elaraai/east").OptionType<StringType>;
614
+ readonly result: import("@elaraai/east").OptionType<StructType<{
615
+ readonly naive: FloatType;
616
+ readonly naive_ci: import("@elaraai/east").OptionType<StructType<{
617
+ readonly lower: FloatType;
618
+ readonly upper: FloatType;
619
+ }>>;
620
+ readonly adjusted: import("@elaraai/east").OptionType<StructType<{
621
+ readonly effect: FloatType;
622
+ readonly ci: import("@elaraai/east").OptionType<StructType<{
623
+ readonly lower: FloatType;
624
+ readonly upper: FloatType;
625
+ }>>;
626
+ }>>;
627
+ readonly n_total: IntegerType;
628
+ readonly n_treated: IntegerType;
629
+ readonly n_control: IntegerType;
630
+ readonly n_dropped: IntegerType;
631
+ readonly balance: ArrayType<StructType<{
632
+ readonly column: StringType;
633
+ readonly base_column: StringType;
634
+ readonly treated_mean: FloatType;
635
+ readonly control_mean: FloatType;
636
+ readonly std_diff: FloatType;
637
+ }>>;
638
+ readonly overlap: StructType<{
639
+ readonly treated_propensity: import("@elaraai/east").VectorType<FloatType>;
640
+ readonly control_propensity: import("@elaraai/east").VectorType<FloatType>;
641
+ readonly common_support_frac: FloatType;
642
+ readonly positivity_ok: BooleanType;
643
+ readonly support_strength: import("@elaraai/east").VariantType<{
644
+ readonly refused: import("@elaraai/east").NullType;
645
+ readonly thin: import("@elaraai/east").NullType;
646
+ readonly strong: import("@elaraai/east").NullType;
647
+ }>;
648
+ }>;
649
+ readonly refutation: import("@elaraai/east").OptionType<StructType<{
650
+ readonly placebo_effect: import("@elaraai/east").OptionType<FloatType>;
651
+ readonly placebo_passes: import("@elaraai/east").OptionType<BooleanType>;
652
+ readonly random_cc_within_ci: import("@elaraai/east").OptionType<BooleanType>;
653
+ readonly data_subset_effect: import("@elaraai/east").OptionType<FloatType>;
654
+ readonly data_subset_std: import("@elaraai/east").OptionType<FloatType>;
655
+ readonly robustness_value: import("@elaraai/east").OptionType<FloatType>;
656
+ readonly sensitivity: import("@elaraai/east").OptionType<StructType<{
657
+ readonly strengths: import("@elaraai/east").VectorType<FloatType>;
658
+ readonly effects: import("@elaraai/east").VectorType<FloatType>;
659
+ }>>;
660
+ readonly expected_sign_ok: import("@elaraai/east").OptionType<BooleanType>;
661
+ }>>;
662
+ readonly dose_response: import("@elaraai/east").OptionType<StructType<{
663
+ readonly feature: StringType;
664
+ readonly grid: import("@elaraai/east").VectorType<FloatType>;
665
+ readonly effect: import("@elaraai/east").VectorType<FloatType>;
666
+ readonly lower: import("@elaraai/east").OptionType<import("@elaraai/east").VectorType<FloatType>>;
667
+ readonly upper: import("@elaraai/east").OptionType<import("@elaraai/east").VectorType<FloatType>>;
668
+ readonly size: import("@elaraai/east").VectorType<IntegerType>;
669
+ }>>;
670
+ readonly verdict: import("@elaraai/east").VariantType<{
671
+ readonly causal: import("@elaraai/east").NullType;
672
+ readonly modest: import("@elaraai/east").NullType;
673
+ readonly adjustment_insufficient: import("@elaraai/east").NullType;
674
+ readonly non_identifiable_positivity: import("@elaraai/east").NullType;
675
+ readonly not_estimable: StringType;
676
+ }>;
677
+ }>>;
678
+ readonly design: import("@elaraai/east").OptionType<StructType<{
679
+ readonly verdict: import("@elaraai/east").VariantType<{
680
+ readonly causal: import("@elaraai/east").NullType;
681
+ readonly modest: import("@elaraai/east").NullType;
682
+ readonly adjustment_insufficient: import("@elaraai/east").NullType;
683
+ readonly non_identifiable_positivity: import("@elaraai/east").NullType;
684
+ readonly not_estimable: StringType;
685
+ }>;
686
+ readonly basis: import("@elaraai/east").VariantType<{
687
+ readonly detect_observed: import("@elaraai/east").NullType;
688
+ readonly resolve_vs_null: import("@elaraai/east").NullType;
689
+ readonly de_bias: import("@elaraai/east").NullType;
690
+ readonly restrict_to_overlap: import("@elaraai/east").NullType;
691
+ readonly create_control: import("@elaraai/east").NullType;
692
+ }>;
693
+ readonly target_effect: FloatType;
694
+ readonly outcome_sd: FloatType;
695
+ readonly target_power: FloatType;
696
+ readonly alpha: FloatType;
697
+ readonly current_power: import("@elaraai/east").OptionType<FloatType>;
698
+ readonly match_on: ArrayType<StringType>;
699
+ readonly options: ArrayType<StructType<{
700
+ readonly label: StringType;
701
+ readonly treated_share: FloatType;
702
+ readonly n_treated: IntegerType;
703
+ readonly n_control: IntegerType;
704
+ readonly n_total: IntegerType;
705
+ }>>;
706
+ readonly power_curve: StructType<{
707
+ readonly n: import("@elaraai/east").VectorType<IntegerType>;
708
+ readonly power: import("@elaraai/east").VectorType<FloatType>;
709
+ }>;
710
+ readonly rationale: StringType;
711
+ }>>;
712
+ }>>, [variant<"field", "inputs">, variant<"field", "experiment_menu_configs">]>;
713
+ /** Curated, precomputed — the question carries its answer inline; no estimator needed. */
714
+ export declare const experimentPrecomputedConfigsInput: import("@elaraai/e3").DatasetDef<ArrayType<StructType<{
715
+ readonly id: StringType;
716
+ readonly label: StringType;
717
+ readonly spec: StructType<{
718
+ readonly treatment: StringType;
719
+ readonly outcome: StringType;
720
+ readonly common_causes: ArrayType<StringType>;
721
+ readonly categorical: import("@elaraai/east").OptionType<ArrayType<StringType>>;
722
+ readonly method: import("@elaraai/east").OptionType<import("@elaraai/east").VariantType<{
723
+ readonly linear_regression: import("@elaraai/east").NullType;
724
+ readonly propensity_score_weighting: StructType<{
725
+ readonly weighting_scheme: import("@elaraai/east").OptionType<import("@elaraai/east").VariantType<{
726
+ readonly ips_weight: import("@elaraai/east").NullType;
727
+ readonly ips_stabilized_weight: import("@elaraai/east").NullType;
728
+ readonly ips_normalized_weight: import("@elaraai/east").NullType;
729
+ }>>;
730
+ }>;
731
+ }>>;
732
+ readonly estimand: import("@elaraai/east").OptionType<import("@elaraai/east").VariantType<{
733
+ readonly ate: import("@elaraai/east").NullType;
734
+ readonly att: import("@elaraai/east").NullType;
735
+ readonly atc: import("@elaraai/east").NullType;
736
+ }>>;
737
+ readonly refute: import("@elaraai/east").OptionType<StructType<{
738
+ readonly placebo: BooleanType;
739
+ readonly random_common_cause: BooleanType;
740
+ readonly data_subset: BooleanType;
741
+ readonly sensitivity: import("@elaraai/east").OptionType<ArrayType<FloatType>>;
742
+ }>>;
743
+ readonly dose_feature: import("@elaraai/east").OptionType<StringType>;
744
+ readonly min_overlap: import("@elaraai/east").OptionType<FloatType>;
745
+ readonly min_treatment_variation: import("@elaraai/east").OptionType<FloatType>;
746
+ readonly bootstrap: import("@elaraai/east").OptionType<StructType<{
747
+ readonly reps: IntegerType;
748
+ readonly cluster_column: import("@elaraai/east").OptionType<StringType>;
749
+ readonly confidence_level: import("@elaraai/east").OptionType<FloatType>;
750
+ }>>;
751
+ readonly random_state: import("@elaraai/east").OptionType<IntegerType>;
752
+ readonly strong_overlap: import("@elaraai/east").OptionType<FloatType>;
753
+ readonly evalue_floor: import("@elaraai/east").OptionType<FloatType>;
754
+ readonly expected_sign: import("@elaraai/east").OptionType<import("@elaraai/east").VariantType<{
755
+ readonly positive: import("@elaraai/east").NullType;
756
+ readonly negative: import("@elaraai/east").NullType;
757
+ }>>;
758
+ }>;
759
+ readonly population: import("@elaraai/east").OptionType<ArrayType<import("@elaraai/east").VariantType<{
760
+ readonly string: import("@elaraai/east").StructType<{
761
+ readonly fieldId: import("@elaraai/east").StringType;
762
+ readonly op: import("@elaraai/east").VariantType<{
763
+ readonly eq: import("@elaraai/east").StringType;
764
+ readonly neq: import("@elaraai/east").StringType;
765
+ readonly in: import("@elaraai/east").SetType<import("@elaraai/east").StringType>;
766
+ readonly notIn: import("@elaraai/east").SetType<import("@elaraai/east").StringType>;
767
+ readonly contains: import("@elaraai/east").StringType;
768
+ readonly matches: import("@elaraai/east").StringType;
769
+ }>;
770
+ }>;
771
+ readonly integer: import("@elaraai/east").StructType<{
772
+ readonly fieldId: import("@elaraai/east").StringType;
773
+ readonly op: import("@elaraai/east").VariantType<{
774
+ readonly eq: import("@elaraai/east").IntegerType;
775
+ readonly neq: import("@elaraai/east").IntegerType;
776
+ readonly lt: import("@elaraai/east").IntegerType;
777
+ readonly lte: import("@elaraai/east").IntegerType;
778
+ readonly gt: import("@elaraai/east").IntegerType;
779
+ readonly gte: import("@elaraai/east").IntegerType;
780
+ readonly in: import("@elaraai/east").SetType<import("@elaraai/east").IntegerType>;
781
+ }>;
782
+ }>;
783
+ readonly float: import("@elaraai/east").StructType<{
784
+ readonly fieldId: import("@elaraai/east").StringType;
785
+ readonly op: import("@elaraai/east").VariantType<{
786
+ readonly lt: import("@elaraai/east").FloatType;
787
+ readonly lte: import("@elaraai/east").FloatType;
788
+ readonly gt: import("@elaraai/east").FloatType;
789
+ readonly gte: import("@elaraai/east").FloatType;
790
+ }>;
791
+ }>;
792
+ readonly datetime: import("@elaraai/east").StructType<{
793
+ readonly fieldId: import("@elaraai/east").StringType;
794
+ readonly op: import("@elaraai/east").VariantType<{
795
+ readonly before: import("@elaraai/east").DateTimeType;
796
+ readonly after: import("@elaraai/east").DateTimeType;
797
+ readonly between: import("@elaraai/east").StructType<{
798
+ readonly from: import("@elaraai/east").DateTimeType;
799
+ readonly to: import("@elaraai/east").DateTimeType;
800
+ }>;
801
+ }>;
802
+ }>;
803
+ readonly boolean: import("@elaraai/east").StructType<{
804
+ readonly fieldId: import("@elaraai/east").StringType;
805
+ readonly op: import("@elaraai/east").VariantType<{
806
+ readonly is: import("@elaraai/east").BooleanType;
807
+ }>;
808
+ }>;
809
+ }>>>;
810
+ readonly group: import("@elaraai/east").OptionType<StringType>;
811
+ readonly result: import("@elaraai/east").OptionType<StructType<{
812
+ readonly naive: FloatType;
813
+ readonly naive_ci: import("@elaraai/east").OptionType<StructType<{
814
+ readonly lower: FloatType;
815
+ readonly upper: FloatType;
816
+ }>>;
817
+ readonly adjusted: import("@elaraai/east").OptionType<StructType<{
818
+ readonly effect: FloatType;
819
+ readonly ci: import("@elaraai/east").OptionType<StructType<{
820
+ readonly lower: FloatType;
821
+ readonly upper: FloatType;
822
+ }>>;
823
+ }>>;
824
+ readonly n_total: IntegerType;
825
+ readonly n_treated: IntegerType;
826
+ readonly n_control: IntegerType;
827
+ readonly n_dropped: IntegerType;
828
+ readonly balance: ArrayType<StructType<{
829
+ readonly column: StringType;
830
+ readonly base_column: StringType;
831
+ readonly treated_mean: FloatType;
832
+ readonly control_mean: FloatType;
833
+ readonly std_diff: FloatType;
834
+ }>>;
835
+ readonly overlap: StructType<{
836
+ readonly treated_propensity: import("@elaraai/east").VectorType<FloatType>;
837
+ readonly control_propensity: import("@elaraai/east").VectorType<FloatType>;
838
+ readonly common_support_frac: FloatType;
839
+ readonly positivity_ok: BooleanType;
840
+ readonly support_strength: import("@elaraai/east").VariantType<{
841
+ readonly refused: import("@elaraai/east").NullType;
842
+ readonly thin: import("@elaraai/east").NullType;
843
+ readonly strong: import("@elaraai/east").NullType;
844
+ }>;
845
+ }>;
846
+ readonly refutation: import("@elaraai/east").OptionType<StructType<{
847
+ readonly placebo_effect: import("@elaraai/east").OptionType<FloatType>;
848
+ readonly placebo_passes: import("@elaraai/east").OptionType<BooleanType>;
849
+ readonly random_cc_within_ci: import("@elaraai/east").OptionType<BooleanType>;
850
+ readonly data_subset_effect: import("@elaraai/east").OptionType<FloatType>;
851
+ readonly data_subset_std: import("@elaraai/east").OptionType<FloatType>;
852
+ readonly robustness_value: import("@elaraai/east").OptionType<FloatType>;
853
+ readonly sensitivity: import("@elaraai/east").OptionType<StructType<{
854
+ readonly strengths: import("@elaraai/east").VectorType<FloatType>;
855
+ readonly effects: import("@elaraai/east").VectorType<FloatType>;
856
+ }>>;
857
+ readonly expected_sign_ok: import("@elaraai/east").OptionType<BooleanType>;
858
+ }>>;
859
+ readonly dose_response: import("@elaraai/east").OptionType<StructType<{
860
+ readonly feature: StringType;
861
+ readonly grid: import("@elaraai/east").VectorType<FloatType>;
862
+ readonly effect: import("@elaraai/east").VectorType<FloatType>;
863
+ readonly lower: import("@elaraai/east").OptionType<import("@elaraai/east").VectorType<FloatType>>;
864
+ readonly upper: import("@elaraai/east").OptionType<import("@elaraai/east").VectorType<FloatType>>;
865
+ readonly size: import("@elaraai/east").VectorType<IntegerType>;
866
+ }>>;
867
+ readonly verdict: import("@elaraai/east").VariantType<{
868
+ readonly causal: import("@elaraai/east").NullType;
869
+ readonly modest: import("@elaraai/east").NullType;
870
+ readonly adjustment_insufficient: import("@elaraai/east").NullType;
871
+ readonly non_identifiable_positivity: import("@elaraai/east").NullType;
872
+ readonly not_estimable: StringType;
873
+ }>;
874
+ }>>;
875
+ readonly design: import("@elaraai/east").OptionType<StructType<{
876
+ readonly verdict: import("@elaraai/east").VariantType<{
877
+ readonly causal: import("@elaraai/east").NullType;
878
+ readonly modest: import("@elaraai/east").NullType;
879
+ readonly adjustment_insufficient: import("@elaraai/east").NullType;
880
+ readonly non_identifiable_positivity: import("@elaraai/east").NullType;
881
+ readonly not_estimable: StringType;
882
+ }>;
883
+ readonly basis: import("@elaraai/east").VariantType<{
884
+ readonly detect_observed: import("@elaraai/east").NullType;
885
+ readonly resolve_vs_null: import("@elaraai/east").NullType;
886
+ readonly de_bias: import("@elaraai/east").NullType;
887
+ readonly restrict_to_overlap: import("@elaraai/east").NullType;
888
+ readonly create_control: import("@elaraai/east").NullType;
889
+ }>;
890
+ readonly target_effect: FloatType;
891
+ readonly outcome_sd: FloatType;
892
+ readonly target_power: FloatType;
893
+ readonly alpha: FloatType;
894
+ readonly current_power: import("@elaraai/east").OptionType<FloatType>;
895
+ readonly match_on: ArrayType<StringType>;
896
+ readonly options: ArrayType<StructType<{
897
+ readonly label: StringType;
898
+ readonly treated_share: FloatType;
899
+ readonly n_treated: IntegerType;
900
+ readonly n_control: IntegerType;
901
+ readonly n_total: IntegerType;
902
+ }>>;
903
+ readonly power_curve: StructType<{
904
+ readonly n: import("@elaraai/east").VectorType<IntegerType>;
905
+ readonly power: import("@elaraai/east").VectorType<FloatType>;
906
+ }>;
907
+ readonly rationale: StringType;
908
+ }>>;
909
+ }>>, [variant<"field", "inputs">, variant<"field", "experiment_precomputed_configs">]>;
361
910
  export declare const experimentJournalInput: import("@elaraai/e3").DatasetDef<ArrayType<StructType<{
362
911
  readonly config: StructType<{
363
912
  readonly treatment: StringType;
@@ -414,60 +963,14 @@ export declare const experimentJournalInput: import("@elaraai/e3").DatasetDef<Ar
414
963
  readonly committed_by: StringType;
415
964
  readonly preset: import("@elaraai/east").OptionType<StringType>;
416
965
  }>>, [variant<"field", "inputs">, variant<"field", "experiment_journal">]>;
417
- export declare const experimentPopulationInput: import("@elaraai/e3").DatasetDef<ArrayType<import("@elaraai/east").VariantType<{
418
- readonly string: import("@elaraai/east").StructType<{
419
- readonly fieldId: import("@elaraai/east").StringType;
420
- readonly op: import("@elaraai/east").VariantType<{
421
- readonly eq: import("@elaraai/east").StringType;
422
- readonly neq: import("@elaraai/east").StringType;
423
- readonly in: import("@elaraai/east").SetType<import("@elaraai/east").StringType>;
424
- readonly notIn: import("@elaraai/east").SetType<import("@elaraai/east").StringType>;
425
- readonly contains: import("@elaraai/east").StringType;
426
- readonly matches: import("@elaraai/east").StringType;
427
- }>;
428
- }>;
429
- readonly integer: import("@elaraai/east").StructType<{
430
- readonly fieldId: import("@elaraai/east").StringType;
431
- readonly op: import("@elaraai/east").VariantType<{
432
- readonly eq: import("@elaraai/east").IntegerType;
433
- readonly neq: import("@elaraai/east").IntegerType;
434
- readonly lt: import("@elaraai/east").IntegerType;
435
- readonly lte: import("@elaraai/east").IntegerType;
436
- readonly gt: import("@elaraai/east").IntegerType;
437
- readonly gte: import("@elaraai/east").IntegerType;
438
- readonly in: import("@elaraai/east").SetType<import("@elaraai/east").IntegerType>;
439
- }>;
440
- }>;
441
- readonly float: import("@elaraai/east").StructType<{
442
- readonly fieldId: import("@elaraai/east").StringType;
443
- readonly op: import("@elaraai/east").VariantType<{
444
- readonly lt: import("@elaraai/east").FloatType;
445
- readonly lte: import("@elaraai/east").FloatType;
446
- readonly gt: import("@elaraai/east").FloatType;
447
- readonly gte: import("@elaraai/east").FloatType;
448
- }>;
449
- }>;
450
- readonly datetime: import("@elaraai/east").StructType<{
451
- readonly fieldId: import("@elaraai/east").StringType;
452
- readonly op: import("@elaraai/east").VariantType<{
453
- readonly before: import("@elaraai/east").DateTimeType;
454
- readonly after: import("@elaraai/east").DateTimeType;
455
- readonly between: import("@elaraai/east").StructType<{
456
- readonly from: import("@elaraai/east").DateTimeType;
457
- readonly to: import("@elaraai/east").DateTimeType;
458
- }>;
459
- }>;
460
- }>;
461
- readonly boolean: import("@elaraai/east").StructType<{
462
- readonly fieldId: import("@elaraai/east").StringType;
463
- readonly op: import("@elaraai/east").VariantType<{
464
- readonly is: import("@elaraai/east").BooleanType;
465
- }>;
466
- }>;
467
- }>>, [variant<"field", "inputs">, variant<"field", "experiment_population">]>;
966
+ /** Freeform single-question surface — one config, the estimator auto-runs. */
468
967
  export declare const experimentSurface: import("@elaraai/east").ExampleDef<[], any>;
469
968
  export declare const experimentTrust: import("@elaraai/east").ExampleDef<[], any>;
470
969
  export declare const experimentDose: import("@elaraai/east").ExampleDef<[], any>;
471
970
  export declare const experimentValidate: import("@elaraai/east").ExampleDef<[], any>;
472
- export declare const experimentPresets: import("@elaraai/east").ExampleDef<[], any>;
971
+ /** The question selector — a menu of three vetted questions, each estimated live. */
972
+ export declare const experimentMenu: import("@elaraai/east").ExampleDef<[], any>;
973
+ /** Curated decision surface — a precomputed answer, read-only, no live estimator. */
974
+ export declare const experimentPrecomputed: import("@elaraai/east").ExampleDef<[], any>;
975
+ export declare const experimentReadonlyPrecomputed: import("@elaraai/east").ExampleDef<[], any>;
473
976
  //# sourceMappingURL=experiment.examples.d.ts.map