@revturbine/sdk 0.7.12 → 0.8.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.
Files changed (42) hide show
  1. package/dist/headless.d.ts +1506 -114
  2. package/dist/headless.js +2 -2
  3. package/dist/headless.js.map +1 -1
  4. package/dist/index.d.ts +1749 -121
  5. package/dist/index.js +2 -2
  6. package/dist/index.js.map +1 -1
  7. package/dist/types/web-sdk/config-artifact.d.ts +54 -12
  8. package/dist/types/web-sdk/config-artifact.d.ts.map +1 -1
  9. package/dist/types/web-sdk/control-plane-events.d.ts +6 -5
  10. package/dist/types/web-sdk/control-plane-events.d.ts.map +1 -1
  11. package/dist/types/web-sdk/controllers.d.ts +17 -0
  12. package/dist/types/web-sdk/controllers.d.ts.map +1 -1
  13. package/dist/types/web-sdk/customer-side.d.ts +332 -4
  14. package/dist/types/web-sdk/customer-side.d.ts.map +1 -1
  15. package/dist/types/web-sdk/headless.d.ts +1 -1
  16. package/dist/types/web-sdk/headless.d.ts.map +1 -1
  17. package/dist/types/web-sdk/pii-redact.d.ts +19 -0
  18. package/dist/types/web-sdk/pii-redact.d.ts.map +1 -1
  19. package/dist/types/web-sdk/placements/FixedSurfaceSlot.d.ts +14 -3
  20. package/dist/types/web-sdk/placements/FixedSurfaceSlot.d.ts.map +1 -1
  21. package/dist/types/web-sdk/placements/MessageSurfaceSlot.d.ts.map +1 -1
  22. package/dist/types/web-sdk/placements/useSurfaceSlot.d.ts +24 -0
  23. package/dist/types/web-sdk/placements/useSurfaceSlot.d.ts.map +1 -1
  24. package/dist/types/web-sdk/react/InitFailureDiagnostic.d.ts +35 -0
  25. package/dist/types/web-sdk/react/InitFailureDiagnostic.d.ts.map +1 -0
  26. package/dist/types/web-sdk/react/RevTurbineProvider.d.ts +18 -4
  27. package/dist/types/web-sdk/react/RevTurbineProvider.d.ts.map +1 -1
  28. package/dist/types/web-sdk/react/index.d.ts +2 -0
  29. package/dist/types/web-sdk/react/index.d.ts.map +1 -1
  30. package/dist/types/web-sdk/react/init-status.d.ts +63 -0
  31. package/dist/types/web-sdk/react/init-status.d.ts.map +1 -0
  32. package/dist/types/web-sdk/react/useRevTurbine.d.ts +18 -0
  33. package/dist/types/web-sdk/react/useRevTurbine.d.ts.map +1 -1
  34. package/dist/types/web-sdk/theme/ThemeContext.d.ts +28 -2
  35. package/dist/types/web-sdk/theme/ThemeContext.d.ts.map +1 -1
  36. package/dist/types/web-sdk/theme/defaults.d.ts +44 -3
  37. package/dist/types/web-sdk/theme/defaults.d.ts.map +1 -1
  38. package/dist/types/web-sdk/theme/index.d.ts +4 -2
  39. package/dist/types/web-sdk/theme/index.d.ts.map +1 -1
  40. package/dist/types/web-sdk/theme/useColorScheme.d.ts +14 -0
  41. package/dist/types/web-sdk/theme/useColorScheme.d.ts.map +1 -0
  42. package/package.json +4 -4
package/dist/index.d.ts CHANGED
@@ -3330,6 +3330,23 @@ declare const AnalyticsCatalogMetricSchema: z.ZodObject<{
3330
3330
  }>>;
3331
3331
  numerator_metric: z.ZodOptional<z.ZodString>;
3332
3332
  denominator_metric: z.ZodOptional<z.ZodString>;
3333
+ derivation: z.ZodOptional<z.ZodObject<{
3334
+ kind: z.ZodEnum<{
3335
+ derived: "derived";
3336
+ observed: "observed";
3337
+ unavailable: "unavailable";
3338
+ }>;
3339
+ input_origin: z.ZodEnum<{
3340
+ none: "none";
3341
+ platform: "platform";
3342
+ customer_authored: "customer_authored";
3343
+ mixed: "mixed";
3344
+ }>;
3345
+ ingested_events: z.ZodArray<z.ZodString>;
3346
+ ingested_datasources: z.ZodOptional<z.ZodArray<z.ZodString>>;
3347
+ carried_by: z.ZodOptional<z.ZodArray<z.ZodString>>;
3348
+ note: z.ZodOptional<z.ZodString>;
3349
+ }, z.core.$strip>>;
3333
3350
  deprecation: z.ZodOptional<z.ZodObject<{
3334
3351
  deprecated: z.ZodBoolean;
3335
3352
  replaced_by: z.ZodOptional<z.ZodString>;
@@ -3401,6 +3418,23 @@ declare const AnalyticsCatalogMetricValidatedSchema: z.ZodObject<{
3401
3418
  }>>;
3402
3419
  numerator_metric: z.ZodOptional<z.ZodString>;
3403
3420
  denominator_metric: z.ZodOptional<z.ZodString>;
3421
+ derivation: z.ZodOptional<z.ZodObject<{
3422
+ kind: z.ZodEnum<{
3423
+ derived: "derived";
3424
+ observed: "observed";
3425
+ unavailable: "unavailable";
3426
+ }>;
3427
+ input_origin: z.ZodEnum<{
3428
+ none: "none";
3429
+ platform: "platform";
3430
+ customer_authored: "customer_authored";
3431
+ mixed: "mixed";
3432
+ }>;
3433
+ ingested_events: z.ZodArray<z.ZodString>;
3434
+ ingested_datasources: z.ZodOptional<z.ZodArray<z.ZodString>>;
3435
+ carried_by: z.ZodOptional<z.ZodArray<z.ZodString>>;
3436
+ note: z.ZodOptional<z.ZodString>;
3437
+ }, z.core.$strip>>;
3404
3438
  deprecation: z.ZodOptional<z.ZodObject<{
3405
3439
  deprecated: z.ZodBoolean;
3406
3440
  replaced_by: z.ZodOptional<z.ZodString>;
@@ -3441,6 +3475,16 @@ declare const AnalyticsCatalogConceptSchema: z.ZodObject<{
3441
3475
  revturbine_influenced: "revturbine_influenced";
3442
3476
  }>;
3443
3477
  coverage_metric: z.ZodOptional<z.ZodString>;
3478
+ dimension_groundings: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
3479
+ kind: z.ZodEnum<{
3480
+ derived: "derived";
3481
+ stamped: "stamped";
3482
+ membership_join: "membership_join";
3483
+ config_join: "config_join";
3484
+ }>;
3485
+ source: z.ZodString;
3486
+ note: z.ZodOptional<z.ZodString>;
3487
+ }, z.core.$strip>>>;
3444
3488
  deprecation: z.ZodOptional<z.ZodObject<{
3445
3489
  deprecated: z.ZodBoolean;
3446
3490
  replaced_by: z.ZodOptional<z.ZodString>;
@@ -5565,6 +5609,16 @@ declare const AnalyticsCatalogSchema: z.ZodObject<{
5565
5609
  revturbine_influenced: "revturbine_influenced";
5566
5610
  }>;
5567
5611
  coverage_metric: z.ZodOptional<z.ZodString>;
5612
+ dimension_groundings: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
5613
+ kind: z.ZodEnum<{
5614
+ derived: "derived";
5615
+ stamped: "stamped";
5616
+ membership_join: "membership_join";
5617
+ config_join: "config_join";
5618
+ }>;
5619
+ source: z.ZodString;
5620
+ note: z.ZodOptional<z.ZodString>;
5621
+ }, z.core.$strip>>>;
5568
5622
  deprecation: z.ZodOptional<z.ZodObject<{
5569
5623
  deprecated: z.ZodBoolean;
5570
5624
  replaced_by: z.ZodOptional<z.ZodString>;
@@ -5689,6 +5743,23 @@ declare const AnalyticsCatalogSchema: z.ZodObject<{
5689
5743
  }>>;
5690
5744
  numerator_metric: z.ZodOptional<z.ZodString>;
5691
5745
  denominator_metric: z.ZodOptional<z.ZodString>;
5746
+ derivation: z.ZodOptional<z.ZodObject<{
5747
+ kind: z.ZodEnum<{
5748
+ derived: "derived";
5749
+ observed: "observed";
5750
+ unavailable: "unavailable";
5751
+ }>;
5752
+ input_origin: z.ZodEnum<{
5753
+ none: "none";
5754
+ platform: "platform";
5755
+ customer_authored: "customer_authored";
5756
+ mixed: "mixed";
5757
+ }>;
5758
+ ingested_events: z.ZodArray<z.ZodString>;
5759
+ ingested_datasources: z.ZodOptional<z.ZodArray<z.ZodString>>;
5760
+ carried_by: z.ZodOptional<z.ZodArray<z.ZodString>>;
5761
+ note: z.ZodOptional<z.ZodString>;
5762
+ }, z.core.$strip>>;
5692
5763
  deprecation: z.ZodOptional<z.ZodObject<{
5693
5764
  deprecated: z.ZodBoolean;
5694
5765
  replaced_by: z.ZodOptional<z.ZodString>;
@@ -6050,6 +6121,33 @@ interface AnalyticsCatalogView {
6050
6121
  metricsFor(conceptId: string): AnalyticsCatalogMetric$1[];
6051
6122
  /** The annotation-kind vocabulary this catalog carries, sorted by kind. */
6052
6123
  listAnnotationKinds(): AnalyticsCatalogAnnotationKind$1[];
6124
+ /**
6125
+ * The derived data products one INGESTED EVENT feeds, sorted by metric id.
6126
+ *
6127
+ * The question this answers is the one nobody could answer before: "a tenant
6128
+ * emits `gate_evaluated` — what lights up?" and, read backwards, "this chart
6129
+ * is empty, which event is missing?" Pass a platform event name from the
6130
+ * taxonomy or a datasource name; both sides of a metric's declared inputs
6131
+ * are indexed.
6132
+ */
6133
+ metricsFromIngestedSource(sourceName: string): AnalyticsCatalogMetric$1[];
6134
+ /**
6135
+ * Every ingested event and datasource the catalog reads, sorted. The set of
6136
+ * inputs the product depends on — useful for asking what a new tenant must
6137
+ * emit before its analytics are populated.
6138
+ */
6139
+ listIngestedSources(): string[];
6140
+ /**
6141
+ * The metrics one Tinybird pipe carries, sorted by metric id (plan 228
6142
+ * TASK-3). "Carries" is pipe-allowlist truth — the pipe accepts and serves
6143
+ * the metric id — not a claim that rows exist for it (a carried metric with
6144
+ * derivation.kind='unavailable' is exactly the carried-but-dark state the
6145
+ * register surfaces). This is the read the web execution layer derives its
6146
+ * pipe allowlists from, replacing hand-maintained Record maps.
6147
+ */
6148
+ metricsForPipe(pipeName: string): AnalyticsCatalogMetric$1[];
6149
+ /** Every pipe name any metric declares carriage on, sorted. */
6150
+ listCarryingPipes(): string[];
6053
6151
  }
6054
6152
  declare function createInMemoryAnalyticsCatalog(data: unknown): AnalyticsCatalogView;
6055
6153
  /**
@@ -6606,9 +6704,9 @@ declare const GrowthSignalSeriesSchema: z.ZodObject<{
6606
6704
  /** Normalized output of a GrowthSignalProvider. */
6607
6705
  declare const GrowthSignalBundleSchema: z.ZodObject<{
6608
6706
  availability: z.ZodEnum<{
6707
+ unavailable: "unavailable";
6609
6708
  available: "available";
6610
6709
  stale: "stale";
6611
- unavailable: "unavailable";
6612
6710
  unsupported: "unsupported";
6613
6711
  partial: "partial";
6614
6712
  }>;
@@ -6766,20 +6864,20 @@ declare const OpportunityCandidateSchema: z.ZodObject<{
6766
6864
 
6767
6865
  declare const EventSourceSchema: z.ZodEnum<{
6768
6866
  system: "system";
6867
+ workflow: "workflow";
6769
6868
  clickstream: "clickstream";
6770
6869
  telemetry: "telemetry";
6771
6870
  sdk: "sdk";
6772
- workflow: "workflow";
6773
6871
  }>;
6774
6872
  declare const EventEnvelopeSchema: z.ZodObject<{
6775
6873
  id: z.ZodString;
6776
6874
  event_type: z.ZodString;
6777
6875
  source: z.ZodDefault<z.ZodEnum<{
6778
6876
  system: "system";
6877
+ workflow: "workflow";
6779
6878
  clickstream: "clickstream";
6780
6879
  telemetry: "telemetry";
6781
6880
  sdk: "sdk";
6782
- workflow: "workflow";
6783
6881
  }>>;
6784
6882
  tenant_id: z.ZodOptional<z.ZodString>;
6785
6883
  user_id: z.ZodOptional<z.ZodString>;
@@ -6794,10 +6892,10 @@ declare const IngestedEventSchema: z.ZodObject<{
6794
6892
  event_type: z.ZodString;
6795
6893
  source: z.ZodDefault<z.ZodEnum<{
6796
6894
  system: "system";
6895
+ workflow: "workflow";
6797
6896
  clickstream: "clickstream";
6798
6897
  telemetry: "telemetry";
6799
6898
  sdk: "sdk";
6800
- workflow: "workflow";
6801
6899
  }>>;
6802
6900
  tenant_id: z.ZodOptional<z.ZodString>;
6803
6901
  user_id: z.ZodOptional<z.ZodString>;
@@ -6831,6 +6929,7 @@ declare const TreatmentInteractionTypeSchema: z.ZodEnum<{
6831
6929
  }>;
6832
6930
  declare const TreatmentInteractionInputSchema: z.ZodObject<{
6833
6931
  user_id: z.ZodString;
6932
+ account_id: z.ZodOptional<z.ZodString>;
6834
6933
  placement_id: z.ZodString;
6835
6934
  treatment_id: z.ZodOptional<z.ZodString>;
6836
6935
  surface_slot_id: z.ZodOptional<z.ZodString>;
@@ -6852,12 +6951,105 @@ declare const TreatmentInteractionInputSchema: z.ZodObject<{
6852
6951
  test: z.ZodOptional<z.ZodBoolean>;
6853
6952
  metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
6854
6953
  }, z.core.$strip>;
6954
+ /**
6955
+ * Batch ceiling for `/api/events/interactions`, mirroring the clickstream
6956
+ * batch bound so both ingest surfaces refuse at the same size.
6957
+ */
6958
+ declare const MAX_TREATMENT_INTERACTIONS_PER_BATCH = 500;
6959
+ /**
6960
+ * The array wire shape for treatment interactions.
6961
+ *
6962
+ * The SDK's `flushInteractionQueue` sends a bare {@link TreatmentInteractionInputSchema}
6963
+ * when one interaction is queued and this array when two or more are. Only the
6964
+ * bare shape was ever declared, so the route parsed only that — every
6965
+ * multi-item flush 422'd and its interactions were lost (plan 232). Declaring
6966
+ * the array here makes the batch bound and the item shape one definition that
6967
+ * the route and the SDK both consume, so the two cannot drift apart silently
6968
+ * again; a wire-contract test asserts the exact bodies the SDK builds parse
6969
+ * against {@link TreatmentInteractionRequestSchema}.
6970
+ */
6971
+ declare const TreatmentInteractionBatchSchema: z.ZodArray<z.ZodObject<{
6972
+ user_id: z.ZodString;
6973
+ account_id: z.ZodOptional<z.ZodString>;
6974
+ placement_id: z.ZodString;
6975
+ treatment_id: z.ZodOptional<z.ZodString>;
6976
+ surface_slot_id: z.ZodOptional<z.ZodString>;
6977
+ surface_template_id: z.ZodOptional<z.ZodString>;
6978
+ payload_id: z.ZodOptional<z.ZodString>;
6979
+ interaction_type: z.ZodEnum<{
6980
+ dismiss: "dismiss";
6981
+ impression: "impression";
6982
+ remind_me_later: "remind_me_later";
6983
+ cta_clicked: "cta_clicked";
6984
+ cta_completed: "cta_completed";
6985
+ suppress: "suppress";
6986
+ }>;
6987
+ interaction_at: z.ZodOptional<z.ZodString>;
6988
+ message_block_handle: z.ZodOptional<z.ZodString>;
6989
+ message_block_id: z.ZodOptional<z.ZodString>;
6990
+ experiment_id: z.ZodOptional<z.ZodString>;
6991
+ variant_key: z.ZodOptional<z.ZodString>;
6992
+ test: z.ZodOptional<z.ZodBoolean>;
6993
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
6994
+ }, z.core.$strip>>;
6995
+ /**
6996
+ * Either wire shape, as the route accepts them. This is what the OpenAPI
6997
+ * request body declares, so a generated client can send either without
6998
+ * reaching past the contract.
6999
+ */
7000
+ declare const TreatmentInteractionRequestSchema: z.ZodUnion<readonly [z.ZodObject<{
7001
+ user_id: z.ZodString;
7002
+ account_id: z.ZodOptional<z.ZodString>;
7003
+ placement_id: z.ZodString;
7004
+ treatment_id: z.ZodOptional<z.ZodString>;
7005
+ surface_slot_id: z.ZodOptional<z.ZodString>;
7006
+ surface_template_id: z.ZodOptional<z.ZodString>;
7007
+ payload_id: z.ZodOptional<z.ZodString>;
7008
+ interaction_type: z.ZodEnum<{
7009
+ dismiss: "dismiss";
7010
+ impression: "impression";
7011
+ remind_me_later: "remind_me_later";
7012
+ cta_clicked: "cta_clicked";
7013
+ cta_completed: "cta_completed";
7014
+ suppress: "suppress";
7015
+ }>;
7016
+ interaction_at: z.ZodOptional<z.ZodString>;
7017
+ message_block_handle: z.ZodOptional<z.ZodString>;
7018
+ message_block_id: z.ZodOptional<z.ZodString>;
7019
+ experiment_id: z.ZodOptional<z.ZodString>;
7020
+ variant_key: z.ZodOptional<z.ZodString>;
7021
+ test: z.ZodOptional<z.ZodBoolean>;
7022
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
7023
+ }, z.core.$strip>, z.ZodArray<z.ZodObject<{
7024
+ user_id: z.ZodString;
7025
+ account_id: z.ZodOptional<z.ZodString>;
7026
+ placement_id: z.ZodString;
7027
+ treatment_id: z.ZodOptional<z.ZodString>;
7028
+ surface_slot_id: z.ZodOptional<z.ZodString>;
7029
+ surface_template_id: z.ZodOptional<z.ZodString>;
7030
+ payload_id: z.ZodOptional<z.ZodString>;
7031
+ interaction_type: z.ZodEnum<{
7032
+ dismiss: "dismiss";
7033
+ impression: "impression";
7034
+ remind_me_later: "remind_me_later";
7035
+ cta_clicked: "cta_clicked";
7036
+ cta_completed: "cta_completed";
7037
+ suppress: "suppress";
7038
+ }>;
7039
+ interaction_at: z.ZodOptional<z.ZodString>;
7040
+ message_block_handle: z.ZodOptional<z.ZodString>;
7041
+ message_block_id: z.ZodOptional<z.ZodString>;
7042
+ experiment_id: z.ZodOptional<z.ZodString>;
7043
+ variant_key: z.ZodOptional<z.ZodString>;
7044
+ test: z.ZodOptional<z.ZodBoolean>;
7045
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
7046
+ }, z.core.$strip>>]>;
6855
7047
  declare const TriggerEventTypeSchema: z.ZodEnum<{
6856
7048
  payment_failed: "payment_failed";
6857
7049
  feature_gated: "feature_gated";
7050
+ trial_expired: "trial_expired";
6858
7051
  trial_midpoint: "trial_midpoint";
6859
7052
  trial_expiring: "trial_expiring";
6860
- trial_expired: "trial_expired";
6861
7053
  usage_limit_approaching: "usage_limit_approaching";
6862
7054
  usage_limit_reached: "usage_limit_reached";
6863
7055
  credit_balance_low: "credit_balance_low";
@@ -6904,17 +7096,17 @@ declare const ControlPlaneEventTypeSchema: z.ZodEnum<{
6904
7096
  cli_signed_up: "cli_signed_up";
6905
7097
  cli_signed_in: "cli_signed_in";
6906
7098
  cli_command_executed: "cli_command_executed";
6907
- changeset_submitted: "changeset_submitted";
6908
- changeset_approved: "changeset_approved";
6909
- changeset_rejected: "changeset_rejected";
6910
- changeset_deployed: "changeset_deployed";
6911
- changeset_launched: "changeset_launched";
6912
- changeset_parked: "changeset_parked";
6913
- changeset_resumed: "changeset_resumed";
6914
- changeset_discarded: "changeset_discarded";
6915
- changeset_archived: "changeset_archived";
6916
- config_imported: "config_imported";
6917
- config_exported: "config_exported";
7099
+ playbook_version_submitted: "playbook_version_submitted";
7100
+ playbook_version_approved: "playbook_version_approved";
7101
+ playbook_version_rejected: "playbook_version_rejected";
7102
+ playbook_version_deployed: "playbook_version_deployed";
7103
+ playbook_version_launched: "playbook_version_launched";
7104
+ playbook_version_parked: "playbook_version_parked";
7105
+ playbook_version_resumed: "playbook_version_resumed";
7106
+ playbook_version_discarded: "playbook_version_discarded";
7107
+ playbook_version_archived: "playbook_version_archived";
7108
+ playbook_imported: "playbook_imported";
7109
+ playbook_exported: "playbook_exported";
6918
7110
  entity_created: "entity_created";
6919
7111
  entity_updated: "entity_updated";
6920
7112
  entity_deleted: "entity_deleted";
@@ -6927,17 +7119,17 @@ declare const ControlPlaneSemanticEventSchema: z.ZodObject<{
6927
7119
  cli_signed_up: "cli_signed_up";
6928
7120
  cli_signed_in: "cli_signed_in";
6929
7121
  cli_command_executed: "cli_command_executed";
6930
- changeset_submitted: "changeset_submitted";
6931
- changeset_approved: "changeset_approved";
6932
- changeset_rejected: "changeset_rejected";
6933
- changeset_deployed: "changeset_deployed";
6934
- changeset_launched: "changeset_launched";
6935
- changeset_parked: "changeset_parked";
6936
- changeset_resumed: "changeset_resumed";
6937
- changeset_discarded: "changeset_discarded";
6938
- changeset_archived: "changeset_archived";
6939
- config_imported: "config_imported";
6940
- config_exported: "config_exported";
7122
+ playbook_version_submitted: "playbook_version_submitted";
7123
+ playbook_version_approved: "playbook_version_approved";
7124
+ playbook_version_rejected: "playbook_version_rejected";
7125
+ playbook_version_deployed: "playbook_version_deployed";
7126
+ playbook_version_launched: "playbook_version_launched";
7127
+ playbook_version_parked: "playbook_version_parked";
7128
+ playbook_version_resumed: "playbook_version_resumed";
7129
+ playbook_version_discarded: "playbook_version_discarded";
7130
+ playbook_version_archived: "playbook_version_archived";
7131
+ playbook_imported: "playbook_imported";
7132
+ playbook_exported: "playbook_exported";
6941
7133
  entity_created: "entity_created";
6942
7134
  entity_updated: "entity_updated";
6943
7135
  entity_deleted: "entity_deleted";
@@ -6953,10 +7145,10 @@ declare const EventSearchParamsSchema: z.ZodObject<{
6953
7145
  q: z.ZodOptional<z.ZodString>;
6954
7146
  source: z.ZodOptional<z.ZodEnum<{
6955
7147
  system: "system";
7148
+ workflow: "workflow";
6956
7149
  clickstream: "clickstream";
6957
7150
  telemetry: "telemetry";
6958
7151
  sdk: "sdk";
6959
- workflow: "workflow";
6960
7152
  }>>;
6961
7153
  event_type: z.ZodOptional<z.ZodString>;
6962
7154
  from: z.ZodOptional<z.ZodString>;
@@ -7011,9 +7203,9 @@ declare const TrackEventSchema: z.ZodObject<{
7011
7203
  tenant_id: z.ZodOptional<z.ZodString>;
7012
7204
  event_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
7013
7205
  origin: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
7206
+ derived: "derived";
7014
7207
  explicit: "explicit";
7015
7208
  automatic: "automatic";
7016
- derived: "derived";
7017
7209
  raw: "raw";
7018
7210
  }>>>;
7019
7211
  playbook_version: z.ZodOptional<z.ZodNullable<z.ZodString>>;
@@ -7037,9 +7229,9 @@ declare const TrackIngestBatchSchema: z.ZodObject<{
7037
7229
  tenant_id: z.ZodOptional<z.ZodString>;
7038
7230
  event_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
7039
7231
  origin: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
7232
+ derived: "derived";
7040
7233
  explicit: "explicit";
7041
7234
  automatic: "automatic";
7042
- derived: "derived";
7043
7235
  raw: "raw";
7044
7236
  }>>>;
7045
7237
  playbook_version: z.ZodOptional<z.ZodNullable<z.ZodString>>;
@@ -7240,16 +7432,24 @@ declare const EventTaxonomySchema: z.ZodObject<{
7240
7432
  * Control-plane events, emitted by revturbine-web itself (plan 112).
7241
7433
  * `source` (system vs workflow) is a separate axis carried on the event.
7242
7434
  */
7243
- declare const CONTROL_PLANE_EVENT_NAMES: readonly ["web_signed_up", "web_signed_in", "cli_signed_up", "cli_signed_in", "cli_command_executed", "changeset_submitted", "changeset_approved", "changeset_rejected", "changeset_deployed", "changeset_launched", "changeset_parked", "changeset_resumed", "changeset_discarded", "changeset_archived", "config_imported", "config_exported", "entity_created", "entity_updated", "entity_deleted", "web_api_error"];
7435
+ declare const CONTROL_PLANE_EVENT_NAMES: readonly ["web_signed_up", "web_signed_in", "cli_signed_up", "cli_signed_in", "cli_command_executed", "playbook_version_submitted", "playbook_version_approved", "playbook_version_rejected", "playbook_version_deployed", "playbook_version_launched", "playbook_version_parked", "playbook_version_resumed", "playbook_version_discarded", "playbook_version_archived", "playbook_imported", "playbook_exported", "entity_created", "entity_updated", "entity_deleted", "web_api_error"];
7244
7436
  /**
7245
7437
  * SDK-automatic client events with fixed names. Prefix-family members
7246
7438
  * (`engagement_*`) are NOT listed here — see {@link EVENT_PREFIX_FAMILIES}.
7247
7439
  */
7248
- declare const SDK_CLIENT_EVENT_NAMES: readonly ["placement_resolved", "placement_rendered", "placement_exposed", "placement_outcome", "placement_interaction", "gate_evaluated", "gate_attempted", "gate_allowed", "gate_denied", "slot_evaluated", "slot_filled", "slot_empty", "slot_suppressed", "slot_error", "segment_enrolled", "segment_unenrolled", "experiment_assigned", "user_context_observed", "page_view"];
7440
+ declare const SDK_CLIENT_EVENT_NAMES: readonly ["placement_resolved", "placement_rendered", "placement_exposed", "placement_outcome", "placement_interaction", "gate_evaluated", "gate_attempted", "gate_allowed", "gate_denied", "slot_evaluated", "slot_filled", "slot_empty", "slot_suppressed", "slot_error", "segment_enrolled", "segment_unenrolled", "experiment_assigned", "user_context_observed", "clickstream_page_view", "account_created", "user_signed_up", "onboarding_completed", "account_activated", "product_used", "value_realized", "usage_recorded", "plan_viewed", "promotion_applied", "promotion_converted"];
7249
7441
  /**
7250
7442
  * Anonymous SDK telemetry on the keyless meta lane (plan 95/144). These carry
7251
7443
  * no tenant and no user context, so they are `internal` by construction.
7252
7444
  */
7445
+ /**
7446
+ * Server-produced derived observations (plan 228 TASK-2 audit). Not emitted by
7447
+ * the client SDK — written by producers that aggregate facts into windowed
7448
+ * metric observations (today: the Growth Lab loader; tomorrow: any in-engine
7449
+ * aggregator). Declared so the parity scan and every reader can SEE the name;
7450
+ * excluded from the sdk_client emit-parity direction by surface.
7451
+ */
7452
+ declare const SDK_SERVER_EVENT_NAMES: readonly ["growth_signal_observed"];
7253
7453
  declare const SDK_META_EVENT_NAMES: readonly ["sdk_init", "sdk_error", "sdk_validation_warning", "resolution_failure"];
7254
7454
  /**
7255
7455
  * Product signals revturbine-web emits about ITSELF, through the customer
@@ -7265,14 +7465,32 @@ declare const SDK_META_EVENT_NAMES: readonly ["sdk_init", "sdk_error", "sdk_vali
7265
7465
  * from `ControlPlaneEventType`; a name on both lanes double-counts one
7266
7466
  * operator action.
7267
7467
  *
7268
- * They are `control_plane` by SURFACE — they originate in revturbine-web — and
7269
- * so are excluded from the SDK's two-directional parity scan, which is scoped
7270
- * to `sdk_client`. That is correct: no SDK emit site produces them, and
7271
- * declaring them as SDK-emitted would manufacture exactly the
7272
- * declared-but-never-emitted defect that scan exists to catch.
7468
+ * SURFACE (plan 228 TASK-5 dogfood ruling): `sdk_client`, reclassified from
7469
+ * `control_plane`. These are generic product-usage telemetry any tenant's
7470
+ * app could legitimately report about itself through the SDK's typed emit
7471
+ * surface — "RevTurbine's own vocabulary" was never load-bearing for them,
7472
+ * unlike the CP proper (auth, playbook-version lifecycle, entity CRUD),
7473
+ * which stays structurally unforgeable. revturbine-web swaps its `track()`
7474
+ * call sites to `emitPlatformEvent` at its next SDK pin bump; until then
7475
+ * its emissions ride the generic lane of a pre-namespacing SDK and land
7476
+ * raw, exactly as before.
7273
7477
  */
7274
7478
  declare const DOGFOOD_CLIENT_EVENT_NAMES: readonly ["area_viewed", "feature_gated"];
7275
- type EventName = (typeof CONTROL_PLANE_EVENT_NAMES)[number] | (typeof DOGFOOD_CLIENT_EVENT_NAMES)[number] | (typeof SDK_CLIENT_EVENT_NAMES)[number] | (typeof SDK_META_EVENT_NAMES)[number];
7479
+ /**
7480
+ * Billing lifecycle events (plan 228 R-2). Dual-source BY CONTRACT: the Stripe
7481
+ * webhook processor translates `stripe_event_type` onto these names, AND the
7482
+ * SDK exposes a typed emit path for each under the same payload schema — so a
7483
+ * tenant on a different biller (or none) produces identical facts. The surface
7484
+ * is `webhook_derived` because that is the historically-primary producer; it
7485
+ * does NOT mean webhook-only, and the emit↔taxonomy parity scan includes these
7486
+ * on the SDK side.
7487
+ *
7488
+ * Every payload carries `billing_ref` — the producer-minted idempotency key
7489
+ * that makes a Stripe delivery and an SDK emission of the same commercial fact
7490
+ * collapse to one row (the identity key, consumed by datasource derivation).
7491
+ */
7492
+ declare const WEBHOOK_DERIVED_EVENT_NAMES: readonly ["subscription_started", "subscription_renewed", "subscription_expanded", "subscription_canceled", "trial_started", "trial_converted", "trial_expired", "payment_succeeded", "payment_failed"];
7493
+ type EventName = (typeof CONTROL_PLANE_EVENT_NAMES)[number] | (typeof DOGFOOD_CLIENT_EVENT_NAMES)[number] | (typeof SDK_CLIENT_EVENT_NAMES)[number] | (typeof SDK_SERVER_EVENT_NAMES)[number] | (typeof SDK_META_EVENT_NAMES)[number] | (typeof WEBHOOK_DERIVED_EVENT_NAMES)[number];
7276
7494
  /**
7277
7495
  * Names the SDK classifies as platform-automatic for ORIGIN tagging without
7278
7496
  * emitting them itself. `impression` is the clearest case: it is an
@@ -7314,9 +7532,744 @@ declare const PLATFORM_EVENT_TAXONOMY: {
7314
7532
  };
7315
7533
  /** Every platform-emitted event name, for the cross-repo parity assertion. */
7316
7534
  declare const PLATFORM_EMITTED_EVENT_NAMES: readonly string[];
7535
+ /**
7536
+ * Namespace a customer-supplied event name that collides with platform
7537
+ * vocabulary (plan 228 TASK-4). The generic `track()` lane — SDK and
7538
+ * `/api/track` ingest alike — runs every ALREADY-NORMALIZED name through
7539
+ * this, so platform events are unforgeable from the untyped path: a
7540
+ * customer's `track('gate_attempted')` lands as `clickstream_gate_attempted`
7541
+ * while the typed emit surface sends `gate_attempted` raw.
7542
+ *
7543
+ * Derived from the taxonomy, not a hardcoded switch, so a name added to the
7544
+ * taxonomy is protected the moment it exists. Names already carrying the
7545
+ * `clickstream_` namespace pass through — `clickstream_page_view` IS the
7546
+ * platform name for the generic page-view alias (wire truth), and the guard
7547
+ * also makes the function idempotent.
7548
+ */
7549
+ declare function namespacePlatformCollision(normalizedName: string): string;
7317
7550
  /** Names exempt from the declared-but-never-emitted parity direction. */
7318
7551
  declare const DEPRECATED_EVENT_NAMES: readonly string[];
7319
7552
 
7553
+ /**
7554
+ * Per-event payload contracts (plan 228 REQ-1) — one Zod schema for EVERY
7555
+ * taxonomy event, plus the identity key that makes two emissions the same
7556
+ * fact.
7557
+ *
7558
+ * Before this file, event NAMES were declared (plan 181) but payloads were
7559
+ * untyped bags: `EventEnvelopeSchema.payload` is `z.record(z.string(),
7560
+ * z.unknown())`, and each contract lived only in the body of its emit site.
7561
+ * That is how R-10 shipped — `emitGateEvaluated`'s property set existed
7562
+ * nowhere a validator, a reader, or a simulator could check against, so a
7563
+ * double-wrapped payload validated fine and read as empty everywhere.
7564
+ *
7565
+ * Every schema below is transcribed from a VERIFIED producer, not designed at
7566
+ * a desk: the control-plane shapes from revturbine-web's `emitControlPlaneEvent`
7567
+ * call sites, the SDK client shapes from `web-sdk/customer-side.ts` +
7568
+ * `controllers.ts` emit sites, the meta-lane shapes from the
7569
+ * `events_sdk_meta` / `events_sdk_diagnostics` datasource columns they land
7570
+ * in. The billing band (plan 228 R-2) is the one designed-first set — it is
7571
+ * NEW vocabulary, dual-source by contract (Stripe webhook processor and typed
7572
+ * SDK emit share these schemas), and its fields exist to ground the catalog
7573
+ * dimensions REQ-11 names (`commercial.plan`, `commercial.billing_period`,
7574
+ * `trial.rule`).
7575
+ *
7576
+ * Three deliberate contract decisions:
7577
+ *
7578
+ * - **Loose objects.** REQ-9's evolution policy is additive-only, and its
7579
+ * reader half is that a validator built against schema rev N accepts a
7580
+ * payload from rev N+1. `z.looseObject` preserves unknown keys instead of
7581
+ * stripping or rejecting them — an old ingest never mangles a newer
7582
+ * producer's additive field.
7583
+ * - **Identity keys are part of the contract.** `identity` names the payload
7584
+ * fields that make two emissions the same fact; `'event_id'` means the
7585
+ * envelope-level id is the only identity (the common case for telemetry).
7586
+ * Datasource sorting keys and dedup discriminators DERIVE from this
7587
+ * (REQ-4) — the `experiment_assignments` partition-key near-miss is why
7588
+ * keys are declared here rather than chosen per datasource.
7589
+ * - **Classification rides every field** (house `DataClassification` meta),
7590
+ * so PII handling derives from the contract; `pii-redact` remains
7591
+ * defense-in-depth, not the source of truth.
7592
+ */
7593
+
7594
+ type PlatformEventName = (typeof CONTROL_PLANE_EVENT_NAMES)[number] | (typeof DOGFOOD_CLIENT_EVENT_NAMES)[number] | (typeof SDK_CLIENT_EVENT_NAMES)[number] | (typeof SDK_SERVER_EVENT_NAMES)[number] | (typeof SDK_META_EVENT_NAMES)[number] | (typeof WEBHOOK_DERIVED_EVENT_NAMES)[number];
7595
+ interface EventPayloadContract {
7596
+ /** The payload's Zod schema — loose, additive-tolerant (REQ-9). */
7597
+ schema: z.ZodType;
7598
+ /**
7599
+ * Payload fields that make two emissions the same fact. `['event_id']`
7600
+ * means the envelope id is the only identity (plain telemetry). Datasource
7601
+ * sorting keys and dedup discriminators derive from this (REQ-4).
7602
+ */
7603
+ identity: readonly string[];
7604
+ }
7605
+ /**
7606
+ * Total over every taxonomy name — adding an event in `taxonomy.ts` without a
7607
+ * payload contract here is a COMPILE error, and the parity test holds the
7608
+ * reverse direction.
7609
+ *
7610
+ * Declared with `satisfies` rather than an annotation so each entry keeps its
7611
+ * SPECIFIC schema type: `EventPayloadInput<'gate_evaluated'>` resolves to the
7612
+ * gate payload's input shape, which is what the SDK's typed emit surface
7613
+ * infers its per-event parameter types from (plan 228 TASK-4).
7614
+ */
7615
+ declare const EVENT_PAYLOAD_CONTRACTS: {
7616
+ readonly web_signed_up: {
7617
+ readonly schema: z.ZodObject<{
7618
+ control_plane_source: z.ZodEnum<{
7619
+ system: "system";
7620
+ workflow: "workflow";
7621
+ }>;
7622
+ }, z.core.$loose>;
7623
+ readonly identity: readonly ["event_id"];
7624
+ };
7625
+ readonly web_signed_in: {
7626
+ readonly schema: z.ZodObject<{
7627
+ control_plane_source: z.ZodEnum<{
7628
+ system: "system";
7629
+ workflow: "workflow";
7630
+ }>;
7631
+ }, z.core.$loose>;
7632
+ readonly identity: readonly ["event_id"];
7633
+ };
7634
+ readonly cli_signed_up: {
7635
+ readonly schema: z.ZodObject<{
7636
+ control_plane_source: z.ZodEnum<{
7637
+ system: "system";
7638
+ workflow: "workflow";
7639
+ }>;
7640
+ }, z.core.$loose>;
7641
+ readonly identity: readonly ["event_id"];
7642
+ };
7643
+ readonly cli_signed_in: {
7644
+ readonly schema: z.ZodObject<{
7645
+ control_plane_source: z.ZodEnum<{
7646
+ system: "system";
7647
+ workflow: "workflow";
7648
+ }>;
7649
+ }, z.core.$loose>;
7650
+ readonly identity: readonly ["event_id"];
7651
+ };
7652
+ readonly cli_command_executed: {
7653
+ readonly schema: z.ZodObject<{
7654
+ command: z.ZodString;
7655
+ control_plane_source: z.ZodEnum<{
7656
+ system: "system";
7657
+ workflow: "workflow";
7658
+ }>;
7659
+ }, z.core.$loose>;
7660
+ readonly identity: readonly ["event_id"];
7661
+ };
7662
+ readonly playbook_version_submitted: {
7663
+ readonly schema: z.ZodObject<{
7664
+ playbook_version_id: z.ZodString;
7665
+ control_plane_source: z.ZodEnum<{
7666
+ system: "system";
7667
+ workflow: "workflow";
7668
+ }>;
7669
+ }, z.core.$loose>;
7670
+ readonly identity: readonly ["event_id"];
7671
+ };
7672
+ readonly playbook_version_approved: {
7673
+ readonly schema: z.ZodObject<{
7674
+ playbook_version_id: z.ZodString;
7675
+ control_plane_source: z.ZodEnum<{
7676
+ system: "system";
7677
+ workflow: "workflow";
7678
+ }>;
7679
+ }, z.core.$loose>;
7680
+ readonly identity: readonly ["event_id"];
7681
+ };
7682
+ readonly playbook_version_rejected: {
7683
+ readonly schema: z.ZodObject<{
7684
+ playbook_version_id: z.ZodString;
7685
+ control_plane_source: z.ZodEnum<{
7686
+ system: "system";
7687
+ workflow: "workflow";
7688
+ }>;
7689
+ }, z.core.$loose>;
7690
+ readonly identity: readonly ["event_id"];
7691
+ };
7692
+ readonly playbook_version_deployed: {
7693
+ readonly schema: z.ZodObject<{
7694
+ playbook_version_id: z.ZodString;
7695
+ control_plane_source: z.ZodEnum<{
7696
+ system: "system";
7697
+ workflow: "workflow";
7698
+ }>;
7699
+ }, z.core.$loose>;
7700
+ readonly identity: readonly ["event_id"];
7701
+ };
7702
+ readonly playbook_version_launched: {
7703
+ readonly schema: z.ZodObject<{
7704
+ playbook_version_id: z.ZodString;
7705
+ control_plane_source: z.ZodEnum<{
7706
+ system: "system";
7707
+ workflow: "workflow";
7708
+ }>;
7709
+ }, z.core.$loose>;
7710
+ readonly identity: readonly ["event_id"];
7711
+ };
7712
+ readonly playbook_version_parked: {
7713
+ readonly schema: z.ZodObject<{
7714
+ playbook_version_id: z.ZodString;
7715
+ control_plane_source: z.ZodEnum<{
7716
+ system: "system";
7717
+ workflow: "workflow";
7718
+ }>;
7719
+ }, z.core.$loose>;
7720
+ readonly identity: readonly ["event_id"];
7721
+ };
7722
+ readonly playbook_version_resumed: {
7723
+ readonly schema: z.ZodObject<{
7724
+ playbook_version_id: z.ZodString;
7725
+ control_plane_source: z.ZodEnum<{
7726
+ system: "system";
7727
+ workflow: "workflow";
7728
+ }>;
7729
+ }, z.core.$loose>;
7730
+ readonly identity: readonly ["event_id"];
7731
+ };
7732
+ readonly playbook_version_discarded: {
7733
+ readonly schema: z.ZodObject<{
7734
+ playbook_version_id: z.ZodString;
7735
+ control_plane_source: z.ZodEnum<{
7736
+ system: "system";
7737
+ workflow: "workflow";
7738
+ }>;
7739
+ }, z.core.$loose>;
7740
+ readonly identity: readonly ["event_id"];
7741
+ };
7742
+ readonly playbook_version_archived: {
7743
+ readonly schema: z.ZodObject<{
7744
+ playbook_version_id: z.ZodString;
7745
+ control_plane_source: z.ZodEnum<{
7746
+ system: "system";
7747
+ workflow: "workflow";
7748
+ }>;
7749
+ }, z.core.$loose>;
7750
+ readonly identity: readonly ["event_id"];
7751
+ };
7752
+ readonly playbook_imported: {
7753
+ readonly schema: z.ZodObject<{
7754
+ playbook_version_id: z.ZodString;
7755
+ control_plane_source: z.ZodEnum<{
7756
+ system: "system";
7757
+ workflow: "workflow";
7758
+ }>;
7759
+ }, z.core.$loose>;
7760
+ readonly identity: readonly ["event_id"];
7761
+ };
7762
+ readonly playbook_exported: {
7763
+ readonly schema: z.ZodObject<{
7764
+ control_plane_source: z.ZodEnum<{
7765
+ system: "system";
7766
+ workflow: "workflow";
7767
+ }>;
7768
+ }, z.core.$loose>;
7769
+ readonly identity: readonly ["event_id"];
7770
+ };
7771
+ readonly entity_created: {
7772
+ readonly schema: z.ZodObject<{
7773
+ resource: z.ZodString;
7774
+ resource_id: z.ZodOptional<z.ZodString>;
7775
+ control_plane_source: z.ZodEnum<{
7776
+ system: "system";
7777
+ workflow: "workflow";
7778
+ }>;
7779
+ }, z.core.$loose>;
7780
+ readonly identity: readonly ["event_id"];
7781
+ };
7782
+ readonly entity_updated: {
7783
+ readonly schema: z.ZodObject<{
7784
+ resource: z.ZodString;
7785
+ resource_id: z.ZodOptional<z.ZodString>;
7786
+ control_plane_source: z.ZodEnum<{
7787
+ system: "system";
7788
+ workflow: "workflow";
7789
+ }>;
7790
+ }, z.core.$loose>;
7791
+ readonly identity: readonly ["event_id"];
7792
+ };
7793
+ readonly entity_deleted: {
7794
+ readonly schema: z.ZodObject<{
7795
+ resource: z.ZodString;
7796
+ resource_id: z.ZodOptional<z.ZodString>;
7797
+ control_plane_source: z.ZodEnum<{
7798
+ system: "system";
7799
+ workflow: "workflow";
7800
+ }>;
7801
+ }, z.core.$loose>;
7802
+ readonly identity: readonly ["event_id"];
7803
+ };
7804
+ readonly web_api_error: {
7805
+ readonly schema: z.ZodObject<{
7806
+ request_id: z.ZodString;
7807
+ status: z.ZodNumber;
7808
+ route: z.ZodOptional<z.ZodString>;
7809
+ method: z.ZodOptional<z.ZodString>;
7810
+ error_code: z.ZodOptional<z.ZodString>;
7811
+ control_plane_source: z.ZodEnum<{
7812
+ system: "system";
7813
+ workflow: "workflow";
7814
+ }>;
7815
+ }, z.core.$loose>;
7816
+ readonly identity: readonly ["event_id"];
7817
+ };
7818
+ readonly area_viewed: {
7819
+ readonly schema: z.ZodObject<{
7820
+ area: z.ZodString;
7821
+ }, z.core.$loose>;
7822
+ readonly identity: readonly ["event_id"];
7823
+ };
7824
+ readonly feature_gated: {
7825
+ readonly schema: z.ZodObject<{
7826
+ pathname: z.ZodNullable<z.ZodString>;
7827
+ reason: z.ZodString;
7828
+ }, z.core.$loose>;
7829
+ readonly identity: readonly ["event_id"];
7830
+ };
7831
+ readonly placement_resolved: {
7832
+ readonly schema: z.ZodObject<{
7833
+ placement_id: z.ZodString;
7834
+ surface_slot_id: z.ZodNullable<z.ZodString>;
7835
+ payload_id: z.ZodNullable<z.ZodString>;
7836
+ decision_id: z.ZodNullable<z.ZodString>;
7837
+ decision_source: z.ZodNullable<z.ZodString>;
7838
+ }, z.core.$loose>;
7839
+ readonly identity: readonly ["event_id"];
7840
+ };
7841
+ readonly placement_rendered: {
7842
+ readonly schema: z.ZodObject<{
7843
+ placement_id: z.ZodString;
7844
+ surface_slot_id: z.ZodNullable<z.ZodString>;
7845
+ payload_id: z.ZodNullable<z.ZodString>;
7846
+ decision_id: z.ZodNullable<z.ZodString>;
7847
+ decision_source: z.ZodNullable<z.ZodString>;
7848
+ }, z.core.$loose>;
7849
+ readonly identity: readonly ["event_id"];
7850
+ };
7851
+ readonly placement_exposed: {
7852
+ readonly schema: z.ZodObject<{
7853
+ exposure_basis: z.ZodOptional<z.ZodString>;
7854
+ placement_id: z.ZodString;
7855
+ surface_slot_id: z.ZodNullable<z.ZodString>;
7856
+ payload_id: z.ZodNullable<z.ZodString>;
7857
+ decision_id: z.ZodNullable<z.ZodString>;
7858
+ decision_source: z.ZodNullable<z.ZodString>;
7859
+ }, z.core.$loose>;
7860
+ readonly identity: readonly ["event_id"];
7861
+ };
7862
+ readonly placement_outcome: {
7863
+ readonly schema: z.ZodObject<{
7864
+ outcome: z.ZodString;
7865
+ cta_target: z.ZodNullable<z.ZodString>;
7866
+ placement_id: z.ZodString;
7867
+ surface_slot_id: z.ZodNullable<z.ZodString>;
7868
+ payload_id: z.ZodNullable<z.ZodString>;
7869
+ decision_id: z.ZodNullable<z.ZodString>;
7870
+ decision_source: z.ZodNullable<z.ZodString>;
7871
+ }, z.core.$loose>;
7872
+ readonly identity: readonly ["event_id"];
7873
+ };
7874
+ readonly placement_interaction: {
7875
+ readonly schema: z.ZodObject<{
7876
+ interaction_type: z.ZodString;
7877
+ placement_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
7878
+ payload_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
7879
+ decision_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
7880
+ user_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
7881
+ action_type: z.ZodOptional<z.ZodString>;
7882
+ action_success: z.ZodOptional<z.ZodBoolean>;
7883
+ interaction_at: z.ZodOptional<z.ZodNullable<z.ZodString>>;
7884
+ remind_after_seconds: z.ZodOptional<z.ZodNumber>;
7885
+ }, z.core.$loose>;
7886
+ readonly identity: readonly ["event_id"];
7887
+ };
7888
+ readonly gate_evaluated: {
7889
+ readonly schema: z.ZodObject<{
7890
+ entitlement_handle: z.ZodString;
7891
+ outcome: z.ZodEnum<{
7892
+ allowed: "allowed";
7893
+ limited: "limited";
7894
+ denied: "denied";
7895
+ }>;
7896
+ gated: z.ZodBoolean;
7897
+ reason: z.ZodNullable<z.ZodString>;
7898
+ limit: z.ZodNullable<z.ZodNumber>;
7899
+ used: z.ZodNullable<z.ZodNumber>;
7900
+ remaining: z.ZodNullable<z.ZodNumber>;
7901
+ }, z.core.$loose>;
7902
+ readonly identity: readonly ["event_id"];
7903
+ };
7904
+ readonly gate_attempted: {
7905
+ readonly schema: z.ZodObject<{
7906
+ entitlement_handle: z.ZodString;
7907
+ }, z.core.$loose>;
7908
+ readonly identity: readonly ["event_id"];
7909
+ };
7910
+ readonly gate_allowed: {
7911
+ readonly schema: z.ZodObject<{
7912
+ entitlement_handle: z.ZodString;
7913
+ }, z.core.$loose>;
7914
+ readonly identity: readonly ["event_id"];
7915
+ };
7916
+ readonly gate_denied: {
7917
+ readonly schema: z.ZodObject<{
7918
+ entitlement_handle: z.ZodString;
7919
+ reason: z.ZodOptional<z.ZodNullable<z.ZodString>>;
7920
+ }, z.core.$loose>;
7921
+ readonly identity: readonly ["event_id"];
7922
+ };
7923
+ readonly slot_evaluated: {
7924
+ readonly schema: z.ZodObject<{
7925
+ surface_slot_id: z.ZodNullable<z.ZodString>;
7926
+ slot_name: z.ZodNullable<z.ZodString>;
7927
+ template_ids: z.ZodNullable<z.ZodArray<z.ZodString>>;
7928
+ template_id: z.ZodNullable<z.ZodString>;
7929
+ surface_type: z.ZodNullable<z.ZodString>;
7930
+ category: z.ZodNullable<z.ZodString>;
7931
+ decision_source: z.ZodNullable<z.ZodString>;
7932
+ reason_codes: z.ZodArray<z.ZodString>;
7933
+ decision_id: z.ZodNullable<z.ZodString>;
7934
+ }, z.core.$loose>;
7935
+ readonly identity: readonly ["event_id"];
7936
+ };
7937
+ readonly slot_filled: {
7938
+ readonly schema: z.ZodObject<{
7939
+ surface_slot_id: z.ZodNullable<z.ZodString>;
7940
+ slot_name: z.ZodNullable<z.ZodString>;
7941
+ template_ids: z.ZodNullable<z.ZodArray<z.ZodString>>;
7942
+ template_id: z.ZodNullable<z.ZodString>;
7943
+ surface_type: z.ZodNullable<z.ZodString>;
7944
+ category: z.ZodNullable<z.ZodString>;
7945
+ decision_source: z.ZodNullable<z.ZodString>;
7946
+ reason_codes: z.ZodArray<z.ZodString>;
7947
+ decision_id: z.ZodNullable<z.ZodString>;
7948
+ }, z.core.$loose>;
7949
+ readonly identity: readonly ["event_id"];
7950
+ };
7951
+ readonly slot_empty: {
7952
+ readonly schema: z.ZodObject<{
7953
+ surface_slot_id: z.ZodNullable<z.ZodString>;
7954
+ slot_name: z.ZodNullable<z.ZodString>;
7955
+ template_ids: z.ZodNullable<z.ZodArray<z.ZodString>>;
7956
+ template_id: z.ZodNullable<z.ZodString>;
7957
+ surface_type: z.ZodNullable<z.ZodString>;
7958
+ category: z.ZodNullable<z.ZodString>;
7959
+ decision_source: z.ZodNullable<z.ZodString>;
7960
+ reason_codes: z.ZodArray<z.ZodString>;
7961
+ decision_id: z.ZodNullable<z.ZodString>;
7962
+ }, z.core.$loose>;
7963
+ readonly identity: readonly ["event_id"];
7964
+ };
7965
+ readonly slot_suppressed: {
7966
+ readonly schema: z.ZodObject<{
7967
+ surface_slot_id: z.ZodNullable<z.ZodString>;
7968
+ slot_name: z.ZodNullable<z.ZodString>;
7969
+ template_ids: z.ZodNullable<z.ZodArray<z.ZodString>>;
7970
+ template_id: z.ZodNullable<z.ZodString>;
7971
+ surface_type: z.ZodNullable<z.ZodString>;
7972
+ category: z.ZodNullable<z.ZodString>;
7973
+ decision_source: z.ZodNullable<z.ZodString>;
7974
+ reason_codes: z.ZodArray<z.ZodString>;
7975
+ decision_id: z.ZodNullable<z.ZodString>;
7976
+ }, z.core.$loose>;
7977
+ readonly identity: readonly ["event_id"];
7978
+ };
7979
+ readonly slot_error: {
7980
+ readonly schema: z.ZodObject<{
7981
+ message: z.ZodOptional<z.ZodString>;
7982
+ surface_slot_id: z.ZodNullable<z.ZodString>;
7983
+ slot_name: z.ZodNullable<z.ZodString>;
7984
+ template_ids: z.ZodNullable<z.ZodArray<z.ZodString>>;
7985
+ template_id: z.ZodNullable<z.ZodString>;
7986
+ surface_type: z.ZodNullable<z.ZodString>;
7987
+ category: z.ZodNullable<z.ZodString>;
7988
+ decision_source: z.ZodNullable<z.ZodString>;
7989
+ reason_codes: z.ZodArray<z.ZodString>;
7990
+ decision_id: z.ZodNullable<z.ZodString>;
7991
+ }, z.core.$loose>;
7992
+ readonly identity: readonly ["event_id"];
7993
+ };
7994
+ readonly segment_enrolled: {
7995
+ readonly schema: z.ZodObject<{
7996
+ segment_id: z.ZodString;
7997
+ user_id: z.ZodNullable<z.ZodString>;
7998
+ }, z.core.$loose>;
7999
+ readonly identity: readonly ["event_id"];
8000
+ };
8001
+ readonly segment_unenrolled: {
8002
+ readonly schema: z.ZodObject<{
8003
+ segment_id: z.ZodString;
8004
+ user_id: z.ZodNullable<z.ZodString>;
8005
+ }, z.core.$loose>;
8006
+ readonly identity: readonly ["event_id"];
8007
+ };
8008
+ readonly experiment_assigned: {
8009
+ readonly schema: z.ZodObject<{
8010
+ schema_version: z.ZodNumber;
8011
+ assignment_id: z.ZodString;
8012
+ experiment_id: z.ZodString;
8013
+ experiment_version: z.ZodNumber;
8014
+ variant_key: z.ZodString;
8015
+ assignment_unit: z.ZodEnum<{
8016
+ account: "account";
8017
+ user: "user";
8018
+ billing_unit: "billing_unit";
8019
+ organization: "organization";
8020
+ }>;
8021
+ subject_id: z.ZodString;
8022
+ assigned_at: z.ZodString;
8023
+ provider_handle: z.ZodOptional<z.ZodString>;
8024
+ provider_revision: z.ZodOptional<z.ZodString>;
8025
+ }, z.core.$loose>;
8026
+ readonly identity: readonly ["assignment_id"];
8027
+ };
8028
+ readonly user_context_observed: {
8029
+ readonly schema: z.ZodObject<{
8030
+ context_fields: z.ZodArray<z.ZodString>;
8031
+ }, z.core.$loose>;
8032
+ readonly identity: readonly ["event_id"];
8033
+ };
8034
+ readonly clickstream_page_view: {
8035
+ readonly schema: z.ZodObject<{
8036
+ mode: z.ZodOptional<z.ZodString>;
8037
+ runtime_mode: z.ZodOptional<z.ZodString>;
8038
+ source: z.ZodOptional<z.ZodString>;
8039
+ }, z.core.$loose>;
8040
+ readonly identity: readonly ["event_id"];
8041
+ };
8042
+ readonly account_created: {
8043
+ readonly schema: z.ZodObject<{
8044
+ acquisition_source: z.ZodOptional<z.ZodString>;
8045
+ }, z.core.$loose>;
8046
+ readonly identity: readonly ["event_id"];
8047
+ };
8048
+ readonly user_signed_up: {
8049
+ readonly schema: z.ZodObject<{
8050
+ acquisition_source: z.ZodOptional<z.ZodString>;
8051
+ }, z.core.$loose>;
8052
+ readonly identity: readonly ["event_id"];
8053
+ };
8054
+ readonly onboarding_completed: {
8055
+ readonly schema: z.ZodObject<{}, z.core.$loose>;
8056
+ readonly identity: readonly ["event_id"];
8057
+ };
8058
+ readonly account_activated: {
8059
+ readonly schema: z.ZodObject<{}, z.core.$loose>;
8060
+ readonly identity: readonly ["event_id"];
8061
+ };
8062
+ readonly product_used: {
8063
+ readonly schema: z.ZodObject<{}, z.core.$loose>;
8064
+ readonly identity: readonly ["event_id"];
8065
+ };
8066
+ readonly value_realized: {
8067
+ readonly schema: z.ZodObject<{}, z.core.$loose>;
8068
+ readonly identity: readonly ["event_id"];
8069
+ };
8070
+ readonly usage_recorded: {
8071
+ readonly schema: z.ZodObject<{
8072
+ metered_units: z.ZodNumber;
8073
+ included_allowance: z.ZodNumber;
8074
+ utilization: z.ZodNumber;
8075
+ }, z.core.$loose>;
8076
+ readonly identity: readonly ["event_id"];
8077
+ };
8078
+ readonly plan_viewed: {
8079
+ readonly schema: z.ZodObject<{
8080
+ plan_handle: z.ZodString;
8081
+ entry_tier: z.ZodOptional<z.ZodBoolean>;
8082
+ }, z.core.$loose>;
8083
+ readonly identity: readonly ["event_id"];
8084
+ };
8085
+ readonly promotion_applied: {
8086
+ readonly schema: z.ZodObject<{
8087
+ promotion_handle: z.ZodString;
8088
+ plan_handle: z.ZodOptional<z.ZodString>;
8089
+ }, z.core.$loose>;
8090
+ readonly identity: readonly ["event_id"];
8091
+ };
8092
+ readonly promotion_converted: {
8093
+ readonly schema: z.ZodObject<{
8094
+ promotion_handle: z.ZodString;
8095
+ full_price: z.ZodOptional<z.ZodBoolean>;
8096
+ plan_handle: z.ZodOptional<z.ZodString>;
8097
+ }, z.core.$loose>;
8098
+ readonly identity: readonly ["event_id"];
8099
+ };
8100
+ readonly growth_signal_observed: {
8101
+ readonly schema: z.ZodObject<{
8102
+ metric: z.ZodString;
8103
+ dimension_key: z.ZodString;
8104
+ dimension_value: z.ZodString;
8105
+ window_start: z.ZodString;
8106
+ window_end: z.ZodString;
8107
+ value: z.ZodNumber;
8108
+ numerator: z.ZodOptional<z.ZodNumber>;
8109
+ denominator: z.ZodOptional<z.ZodNumber>;
8110
+ sample_size: z.ZodOptional<z.ZodNumber>;
8111
+ }, z.core.$loose>;
8112
+ readonly identity: readonly ["event_id"];
8113
+ };
8114
+ readonly sdk_init: {
8115
+ readonly schema: z.ZodObject<{
8116
+ config_hash_id: z.ZodOptional<z.ZodString>;
8117
+ sdk_version: z.ZodOptional<z.ZodString>;
8118
+ runtime_mode: z.ZodOptional<z.ZodString>;
8119
+ schema_version: z.ZodOptional<z.ZodString>;
8120
+ bundle_version: z.ZodOptional<z.ZodString>;
8121
+ config_shape: z.ZodOptional<z.ZodString>;
8122
+ }, z.core.$loose>;
8123
+ readonly identity: readonly ["event_id"];
8124
+ };
8125
+ readonly sdk_error: {
8126
+ readonly schema: z.ZodObject<{
8127
+ message: z.ZodString;
8128
+ config_hash_id: z.ZodOptional<z.ZodString>;
8129
+ sdk_version: z.ZodOptional<z.ZodString>;
8130
+ }, z.core.$loose>;
8131
+ readonly identity: readonly ["event_id"];
8132
+ };
8133
+ readonly sdk_validation_warning: {
8134
+ readonly schema: z.ZodObject<{
8135
+ message: z.ZodString;
8136
+ config_hash_id: z.ZodOptional<z.ZodString>;
8137
+ sdk_version: z.ZodOptional<z.ZodString>;
8138
+ }, z.core.$loose>;
8139
+ readonly identity: readonly ["event_id"];
8140
+ };
8141
+ readonly resolution_failure: {
8142
+ readonly schema: z.ZodObject<{
8143
+ reason: z.ZodString;
8144
+ placement_handle: z.ZodOptional<z.ZodNullable<z.ZodString>>;
8145
+ slot_handle: z.ZodOptional<z.ZodNullable<z.ZodString>>;
8146
+ surface: z.ZodOptional<z.ZodNullable<z.ZodString>>;
8147
+ plan_handle: z.ZodOptional<z.ZodNullable<z.ZodString>>;
8148
+ entitlement_handle: z.ZodOptional<z.ZodNullable<z.ZodString>>;
8149
+ message: z.ZodOptional<z.ZodString>;
8150
+ config_hash_id: z.ZodOptional<z.ZodString>;
8151
+ }, z.core.$loose>;
8152
+ readonly identity: readonly ["event_id"];
8153
+ };
8154
+ readonly subscription_started: {
8155
+ readonly schema: z.ZodObject<{
8156
+ billing_period: z.ZodString;
8157
+ amount_cents: z.ZodNumber;
8158
+ currency: z.ZodString;
8159
+ billing_ref: z.ZodString;
8160
+ plan_handle: z.ZodString;
8161
+ }, z.core.$loose>;
8162
+ readonly identity: readonly ["billing_ref"];
8163
+ };
8164
+ readonly subscription_renewed: {
8165
+ readonly schema: z.ZodObject<{
8166
+ billing_period: z.ZodString;
8167
+ amount_cents: z.ZodNumber;
8168
+ currency: z.ZodString;
8169
+ billing_ref: z.ZodString;
8170
+ plan_handle: z.ZodString;
8171
+ }, z.core.$loose>;
8172
+ readonly identity: readonly ["billing_ref"];
8173
+ };
8174
+ readonly subscription_expanded: {
8175
+ readonly schema: z.ZodObject<{
8176
+ previous_plan_handle: z.ZodOptional<z.ZodString>;
8177
+ delta_cents: z.ZodOptional<z.ZodNumber>;
8178
+ self_serve: z.ZodOptional<z.ZodBoolean>;
8179
+ billing_period: z.ZodString;
8180
+ amount_cents: z.ZodNumber;
8181
+ currency: z.ZodString;
8182
+ billing_ref: z.ZodString;
8183
+ plan_handle: z.ZodString;
8184
+ }, z.core.$loose>;
8185
+ readonly identity: readonly ["billing_ref"];
8186
+ };
8187
+ readonly subscription_canceled: {
8188
+ readonly schema: z.ZodObject<{
8189
+ reason: z.ZodOptional<z.ZodString>;
8190
+ billing_ref: z.ZodString;
8191
+ plan_handle: z.ZodString;
8192
+ }, z.core.$loose>;
8193
+ readonly identity: readonly ["billing_ref"];
8194
+ };
8195
+ readonly trial_started: {
8196
+ readonly schema: z.ZodObject<{
8197
+ trial_rule_handle: z.ZodString;
8198
+ ends_at: z.ZodString;
8199
+ billing_ref: z.ZodString;
8200
+ plan_handle: z.ZodString;
8201
+ }, z.core.$loose>;
8202
+ readonly identity: readonly ["billing_ref"];
8203
+ };
8204
+ readonly trial_converted: {
8205
+ readonly schema: z.ZodObject<{
8206
+ trial_rule_handle: z.ZodString;
8207
+ billing_period: z.ZodString;
8208
+ amount_cents: z.ZodNumber;
8209
+ currency: z.ZodString;
8210
+ billing_ref: z.ZodString;
8211
+ plan_handle: z.ZodString;
8212
+ }, z.core.$loose>;
8213
+ readonly identity: readonly ["billing_ref"];
8214
+ };
8215
+ readonly trial_expired: {
8216
+ readonly schema: z.ZodObject<{
8217
+ trial_rule_handle: z.ZodString;
8218
+ billing_ref: z.ZodString;
8219
+ plan_handle: z.ZodString;
8220
+ }, z.core.$loose>;
8221
+ readonly identity: readonly ["billing_ref"];
8222
+ };
8223
+ readonly payment_succeeded: {
8224
+ readonly schema: z.ZodObject<{
8225
+ billing_ref: z.ZodString;
8226
+ amount_cents: z.ZodNumber;
8227
+ currency: z.ZodString;
8228
+ plan_handle: z.ZodOptional<z.ZodString>;
8229
+ }, z.core.$loose>;
8230
+ readonly identity: readonly ["billing_ref"];
8231
+ };
8232
+ readonly payment_failed: {
8233
+ readonly schema: z.ZodObject<{
8234
+ billing_ref: z.ZodString;
8235
+ reason: z.ZodString;
8236
+ amount_cents: z.ZodOptional<z.ZodNumber>;
8237
+ currency: z.ZodOptional<z.ZodString>;
8238
+ plan_handle: z.ZodOptional<z.ZodString>;
8239
+ }, z.core.$loose>;
8240
+ readonly identity: readonly ["billing_ref"];
8241
+ };
8242
+ };
8243
+ /** The contracts map with per-event schema types preserved (plan 228 TASK-4). */
8244
+ type EventPayloadContractMap = typeof EVENT_PAYLOAD_CONTRACTS;
8245
+ /**
8246
+ * The input (pre-parse) payload shape for one platform event, inferred from
8247
+ * its contract schema. The SDK's typed emit surface takes exactly this per
8248
+ * event name, so the emit API cannot drift from the contract it validates
8249
+ * against.
8250
+ */
8251
+ type EventPayloadInput<K extends PlatformEventName> = z.input<EventPayloadContractMap[K]['schema']>;
8252
+ /**
8253
+ * Every contracted event name, sorted in UTF-16 code-unit order (the default
8254
+ * string sort — deliberately NOT localeCompare, per the single-canonicalizer
8255
+ * rule; names are lowercase snake_case ASCII, where the two orders coincide,
8256
+ * but the manifest must never depend on a locale).
8257
+ */
8258
+ declare const EVENT_PAYLOAD_EVENT_NAMES: readonly string[];
8259
+ /**
8260
+ * Validate a payload against its event's contract. Unknown events are a
8261
+ * structured failure, not an exception — `/api/track` routes those (and
8262
+ * schema violations) to the REQ-10 quarantine lane rather than dropping.
8263
+ */
8264
+ declare function validateEventPayload(eventName: string, payload: unknown): {
8265
+ ok: true;
8266
+ payload: Record<string, unknown>;
8267
+ } | {
8268
+ ok: false;
8269
+ reason: 'unknown_event' | 'schema_violation';
8270
+ detail?: string;
8271
+ };
8272
+
7320
8273
  /**
7321
8274
  * Trial schemas — free trial rules, reverse trial rules, and trial instances.
7322
8275
  */
@@ -8925,8 +9878,8 @@ declare const ExperimentSchema: z.ZodObject<{
8925
9878
  provider_handle: z.ZodString;
8926
9879
  capability: z.ZodLiteral<"experiment_assignment">;
8927
9880
  allocation_mode: z.ZodEnum<{
8928
- managed: "managed";
8929
9881
  observed: "observed";
9882
+ managed: "managed";
8930
9883
  }>;
8931
9884
  }, z.core.$strip>>;
8932
9885
  evidence_provider_binding: z.ZodOptional<z.ZodObject<{
@@ -14141,9 +15094,9 @@ declare const ProviderConnectionSchema: z.ZodObject<{
14141
15094
  credential_reference: z.ZodDefault<z.ZodNullable<z.ZodString>>;
14142
15095
  environment_id: z.ZodDefault<z.ZodString>;
14143
15096
  health_state: z.ZodDefault<z.ZodEnum<{
15097
+ unavailable: "unavailable";
14144
15098
  available: "available";
14145
15099
  stale: "stale";
14146
- unavailable: "unavailable";
14147
15100
  unsupported: "unsupported";
14148
15101
  partial: "partial";
14149
15102
  }>>;
@@ -14698,9 +15651,9 @@ declare const ProviderCapabilitySchema: z.ZodEnum<{
14698
15651
  * configuration error rather than an outage.
14699
15652
  */
14700
15653
  declare const ProviderAvailabilitySchema: z.ZodEnum<{
15654
+ unavailable: "unavailable";
14701
15655
  available: "available";
14702
15656
  stale: "stale";
14703
- unavailable: "unavailable";
14704
15657
  unsupported: "unsupported";
14705
15658
  partial: "partial";
14706
15659
  }>;
@@ -15087,7 +16040,9 @@ type TenantStatus = z.infer<typeof TenantStatusSchema>;
15087
16040
  type Theme = z.infer<typeof ThemeSchema>;
15088
16041
  type TrackEvent = z.infer<typeof TrackEventSchema>;
15089
16042
  type TrackIngestBatch = z.infer<typeof TrackIngestBatchSchema>;
16043
+ type TreatmentInteractionBatch = z.infer<typeof TreatmentInteractionBatchSchema>;
15090
16044
  type TreatmentInteractionInput = z.infer<typeof TreatmentInteractionInputSchema>;
16045
+ type TreatmentInteractionRequest = z.infer<typeof TreatmentInteractionRequestSchema>;
15091
16046
  type TreatmentInteractionType = z.infer<typeof TreatmentInteractionTypeSchema>;
15092
16047
  type TrendFeatures = z.infer<typeof TrendFeaturesSchema>;
15093
16048
  type TrialEligibilityScope = z.infer<typeof TrialEligibilityScopeSchema>;
@@ -15116,26 +16071,67 @@ type WebhookEventLog = z.infer<typeof WebhookEventLogSchema>;
15116
16071
  type WebhookEventSource = z.infer<typeof WebhookEventSourceSchema>;
15117
16072
  type WebhookEventStatus = z.infer<typeof WebhookEventStatusSchema>;
15118
16073
 
16074
+ declare const REQUIRED_BODY_ARRAY_FIELDS: readonly ["plans", "entitlements", "entitlement_rules", "segments", "content_ui_paths"];
15119
16075
  /** A canonical Playbook or the deprecated RevTurbineConfig wire shape. */
15120
16076
  type ConfigArtifact = Playbook | RevTurbineConfig;
15121
16077
  /**
15122
16078
  * A config artifact as raw parsed JSON — what
15123
16079
  * `import playbook from './revturbine.playbook.json'` produces.
15124
16080
  *
15125
- * TypeScript widens JSON modules to plain `string`/`number` property types,
15126
- * which can never satisfy the literal-typed {@link ConfigArtifact}
15127
- * (`artifact_type: "playbook"` etc.), so a strict-mode project could not pass
15128
- * the imported JSON without a cast. The SDK therefore accepts this raw shape
15129
- * everywhere a {@link ConfigArtifact} is accepted at the `localRuntime`
15130
- * boundary and validates it at runtime ({@link normalizeConfigArtifactOrThrow}
15131
- * — a malformed artifact fails fast at init with a descriptive error).
15132
- */
15133
- type UnvalidatedConfigArtifact = Record<string, unknown>;
15134
- /** Target values used only when an older legacy artifact predates target stamping. */
15135
- interface LegacyConfigTargetDefaults {
16081
+ * This exists because TypeScript widens JSON modules to plain `string`/`number`
16082
+ * property types, which can never satisfy the literal-typed
16083
+ * {@link ConfigArtifact} (`artifact_type: "playbook"` etc.), so a strict-mode
16084
+ * project could not pass the imported JSON without a cast.
16085
+ *
16086
+ * Widening affects only *literal* types, so it is no reason to give up on the
16087
+ * rest of the shape. The body arrays are structurally required here, which
16088
+ * makes a truncated artifact a **compile** error at the `localRuntime`
16089
+ * boundary rather than a runtime one — the whole point of plan 233. The header
16090
+ * fields stay unconstrained because those are exactly the widened ones.
16091
+ *
16092
+ * The required-field list is *derived* from {@link REQUIRED_BODY_ARRAY_FIELDS},
16093
+ * the same constant {@link normalizeConfigArtifactOrThrow} validates against at
16094
+ * runtime, so the compile-time and runtime contracts cannot drift apart.
16095
+ *
16096
+ * The index signature keeps every other field open: a Playbook carries many
16097
+ * optional header fields, and a *fetched* artifact (`await res.json()`, typed
16098
+ * `any`) still satisfies this, so the served path is not made harder to write —
16099
+ * only harder to get silently wrong. Values are still validated at runtime by
16100
+ * {@link normalizeConfigArtifactOrThrow}, which fails fast with a descriptive
16101
+ * error; this type constrains the *shape*, never the values.
16102
+ */
16103
+ type UnvalidatedConfigArtifact = {
16104
+ [K in (typeof REQUIRED_BODY_ARRAY_FIELDS)[number]]: unknown[];
16105
+ } & {
16106
+ [key: string]: unknown;
16107
+ };
16108
+ /**
16109
+ * The target (tenant + environment) the SDK was initialized against.
16110
+ *
16111
+ * These are the **authority** on which tenant a runtime decides for. An
16112
+ * artifact's own `tenant_id` / `environment_id` are a *guard*: they exist so the
16113
+ * CLI can refuse to upload a config to the wrong tenant while setting up demo
16114
+ * environments, and they are not a runtime input (plan 233 REQ-2, Kent 2026-09-10).
16115
+ *
16116
+ * A disagreement between the two warns and proceeds on these values — it never
16117
+ * fails init. See {@link normalizeConfigArtifactOrThrow}.
16118
+ *
16119
+ * @public
16120
+ */
16121
+ interface ConfigTargetDefaults {
16122
+ /** Tenant the SDK was initialized with. Wins over the artifact's `tenant_id`. */
15136
16123
  tenantId: string;
16124
+ /** Environment the SDK was initialized with. Wins over the artifact's `environment_id`. */
15137
16125
  environmentId: string;
15138
16126
  }
16127
+ /**
16128
+ * @deprecated Renamed to {@link ConfigTargetDefaults} in plan 233 — these values
16129
+ * are no longer "legacy defaults" applied only to pre-stamping artifacts; they
16130
+ * are the authoritative target for every artifact shape. Kept as an alias so the
16131
+ * already-shipped export keeps resolving.
16132
+ * @public
16133
+ */
16134
+ type LegacyConfigTargetDefaults = ConfigTargetDefaults;
15139
16135
  /**
15140
16136
  * Parse either supported wire shape into the canonical Playbook shape.
15141
16137
  *
@@ -15143,7 +16139,7 @@ interface LegacyConfigTargetDefaults {
15143
16139
  * an unsupported future `format_version` can never fall back to legacy.
15144
16140
  */
15145
16141
  declare function normalizeConfigArtifactOrThrow(raw: unknown, // sdk-ok: boundary-parse
15146
- source: string, legacyTargetDefaults?: LegacyConfigTargetDefaults): Playbook | undefined;
16142
+ source: string, targetDefaults?: ConfigTargetDefaults): Playbook | undefined;
15147
16143
 
15148
16144
  /**
15149
16145
  * Core type definitions shared across the isomorphic SDK.
@@ -17198,10 +18194,10 @@ declare function resolveBranding(input?: BrandingResolutionInput): ResolvedBrand
17198
18194
  /**
17199
18195
  * Control-plane semantic events (plan 112).
17200
18196
  *
17201
- * A typed layer over the SDK's generic event emit path for RevTurbine's OWN
17202
- * control-plane activity — web/CLI auth, change-set lifecycle, config, and
17203
- * product-entity actions. This is the "dogfood" surface: RevTurbine emits its
17204
- * product usage through the same SDK a customer uses.
18197
+ * A typed layer over the SDK's raw event emit path for RevTurbine's OWN
18198
+ * control-plane activity — web/CLI auth, playbook-version lifecycle, playbook
18199
+ * transfer, and product-entity actions. This is the "dogfood" surface:
18200
+ * RevTurbine emits its product usage through the same SDK a customer uses.
17205
18201
  *
17206
18202
  * The taxonomy itself is the canonical `ControlPlaneEventType` /
17207
18203
  * `ControlPlaneEventSource` enums from `@revt-eng/schema`; this module adds the
@@ -17219,7 +18215,8 @@ declare function resolveBranding(input?: BrandingResolutionInput): ResolvedBrand
17219
18215
  /**
17220
18216
  * Canonical source classification for every control-plane event type — mirrors
17221
18217
  * the scaffold taxonomy. `system` covers identity/auth + CLI command telemetry;
17222
- * `workflow` covers change-set lifecycle, config, and product-entity actions.
18218
+ * `workflow` covers playbook-version lifecycle, playbook transfer, and
18219
+ * product-entity actions.
17223
18220
  *
17224
18221
  * Typed as a total `Record`, so adding a new `ControlPlaneEventType` in scaffold
17225
18222
  * without classifying it here is a compile error.
@@ -17921,6 +18918,43 @@ type RevTurbineLocalOnlyMinimalInitOptions = Omit<RevTurbineInitOptions, 'tenant
17921
18918
  * alias) is provided.
17922
18919
  */
17923
18920
  type RevTurbineInitInputOptions = RevTurbineInitWithProviderOptions | (RevTurbineLocalOnlyMinimalInitOptions & RevTurbineProviderOptionAugmentations);
18921
+ /**
18922
+ * Every key any init-options branch accepts.
18923
+ *
18924
+ * Built from the branches rather than written as `keyof RevTurbineInitInputOptions`:
18925
+ * `keyof` over a union yields the INTERSECTION of its members' keys, so that
18926
+ * form would reject `localRuntime` (local-only branch) and `provider`
18927
+ * (augmentation branch) — every key that makes the union worth having.
18928
+ */
18929
+ type RevTurbineInitOptionKey = keyof RevTurbineInitOptions | keyof RevTurbineProviderOptionAugmentations;
18930
+ /**
18931
+ * Exact-check for init options (plan 233 REQ-2b).
18932
+ *
18933
+ * A key the options do not declare becomes `never`, which turns a typo or a
18934
+ * stale option into a compile error instead of a value the SDK silently ignores.
18935
+ *
18936
+ * The motivating shape is the same one `Exact` was introduced for in plan 191:
18937
+ * TypeScript's excess-property check applies only to fresh object literals, so
18938
+ * options assembled in a variable — or in an un-annotated `useMemo`, which is
18939
+ * exactly how React integrations build them — carried unknown keys with no
18940
+ * diagnostic at all.
18941
+ *
18942
+ * Scope limit worth stating: this cannot catch a wrong VALUE. The escalated
18943
+ * `tenant_id` defect was never reachable from here — that one is caught by
18944
+ * init-time validation (REQ-1/REQ-2) and the reachable init status (REQ-3).
18945
+ *
18946
+ * It is *not* true that a Playbook is beyond compile-time reach. An earlier
18947
+ * version of this note claimed a served artifact is `Record<string, unknown>`
18948
+ * “by necessity”; that was wrong. {@link UnvalidatedConfigArtifact} structurally
18949
+ * requires the body arrays, so a truncated Playbook fails to compile at the
18950
+ * `localRuntime` boundary. What genuinely cannot be checked is the artifact's
18951
+ * *contents* — whether a plan handle exists, whether a rule is satisfiable.
18952
+ *
18953
+ * @public
18954
+ */
18955
+ type ExactInitOptions<T> = {
18956
+ [K in keyof T]: K extends RevTurbineInitOptionKey ? T[K] : never;
18957
+ };
17924
18958
  /**
17925
18959
  * SDK integration mode.
17926
18960
  * - `snippet` — lightweight script tag embed
@@ -18625,7 +19659,14 @@ interface RevTurbineEndpointOverrides {
18625
19659
  /** Keyless anonymous SDK telemetry endpoint (`POST /api/sdk/meta`). */
18626
19660
  ingestSdkMeta: string;
18627
19661
  touchpointTransition: string;
18628
- legacyInteractions: string;
19662
+ /**
19663
+ * @deprecated Ignored since plan 232. This pointed at a fallback the SDK
19664
+ * retried when the interactions POST failed — against a route the app does
19665
+ * not serve, with the internal queue shape rather than the wire shape, so it
19666
+ * could only ever 404. Setting it has no effect; the key remains so an
19667
+ * existing integration that passes it still compiles.
19668
+ */
19669
+ legacyInteractions?: string;
18629
19670
  placementTypes: string;
18630
19671
  surfaceSlots: string;
18631
19672
  }
@@ -18975,6 +20016,67 @@ declare function createTreatmentInteraction(userId: string, placementId: string,
18975
20016
  interface RevTurbineEventOptions {
18976
20017
  immediate?: boolean;
18977
20018
  }
20019
+ /**
20020
+ * One surface slot this app currently has mounted.
20021
+ *
20022
+ * @public
20023
+ */
20024
+ interface RevTurbineRegisteredSlot {
20025
+ /**
20026
+ * The author-facing slot id — what a Playbook placement's `trigger.slot_id`
20027
+ * must equal. NOT the internal hashed registry key.
20028
+ */
20029
+ slotId: string;
20030
+ /** Display name supplied at registration. */
20031
+ name: string;
20032
+ /** Normalized route the slot was mounted on. */
20033
+ route: string;
20034
+ /** The SDK's internal registry id (hashed). Useful when correlating logs. */
20035
+ internalId: string;
20036
+ /** Surface template ids the slot declared it can render, if any. */
20037
+ surfaceTemplateIds: string[];
20038
+ }
20039
+ /**
20040
+ * A Playbook placement that targets a surface slot.
20041
+ *
20042
+ * @public
20043
+ */
20044
+ interface RevTurbineAuthoredSlotRef {
20045
+ /** The slot id the placement targets (`trigger.slot_id`). */
20046
+ slotId: string;
20047
+ /** The authored placement's id. */
20048
+ placementId: string;
20049
+ /** The placement's category, when the Playbook declares one. */
20050
+ category?: string;
20051
+ }
20052
+ /**
20053
+ * Result of {@link RevTurbineCustomerSdk.diagnoseSlotInventory}.
20054
+ *
20055
+ * @public
20056
+ */
20057
+ interface RevTurbineSlotInventoryDiagnosis {
20058
+ /** Every slot mounted by this app right now. */
20059
+ mounted: RevTurbineRegisteredSlot[];
20060
+ /** Every slot-targeted placement in the Playbook. */
20061
+ authored: RevTurbineAuthoredSlotRef[];
20062
+ /**
20063
+ * Placements targeting a slot no code renders. **These can never show**, and
20064
+ * nothing else reports them — the decision path is never asked about a slot
20065
+ * that was never mounted, so there is no error and no reason code.
20066
+ */
20067
+ authoredButUnmounted: RevTurbineAuthoredSlotRef[];
20068
+ /**
20069
+ * Slots mounted that no placement targets. They render their fallback
20070
+ * forever; usually a typo in the slot id, or config that was never deployed.
20071
+ */
20072
+ mountedButUnauthored: RevTurbineRegisteredSlot[];
20073
+ /**
20074
+ * Whether a Playbook was available to diff against. When `false`, `authored`
20075
+ * is empty because nothing could be read — which is NOT the same as "nothing
20076
+ * is authored", and a caller must not treat the two alike.
20077
+ */
20078
+ configAvailable: boolean;
20079
+ }
18978
20080
 
18979
20081
  /** A named semantic event with structured payload. */
18980
20082
  interface RevTurbineSemanticEvent {
@@ -19027,6 +20129,31 @@ type RevTurbineTriggerPayload = TrialTriggerPayload | UsageTriggerPayload | Feat
19027
20129
  */
19028
20130
  declare function createSemanticEvent(eventType: string, payload: SdkEventProperties, options?: RevTurbineEventOptions): RevTurbineSemanticEvent;
19029
20131
 
20132
+ /**
20133
+ * Every event name on the taxonomy's `control_plane` surface — emitted via
20134
+ * {@link RevTurbineCustomerSdk.trackControlPlaneEvent}, never the platform
20135
+ * surface. The TYPE is the CP ingest enum; the runtime set below derives
20136
+ * from the taxonomy's surface field, so a scaffold surface reclassification
20137
+ * (plan 228's dogfood ruling moved `area_viewed`/`feature_gated` OUT of
20138
+ * this surface) flows through on a pin bump with no SDK edit.
20139
+ */
20140
+ type ControlPlaneEventName = (typeof CONTROL_PLANE_EVENT_NAMES)[number];
20141
+ /**
20142
+ * Every platform event the typed emit surface accepts: the full taxonomy
20143
+ * MINUS the control-plane surface (structural exclusion — the CP has its own
20144
+ * typed path with source classification, and a customer emitting
20145
+ * `playbook_version_deployed` would be forging RevTurbine's own product
20146
+ * telemetry). Includes the R-2 billing vocabulary: billing facts consumed
20147
+ * from Stripe must be equally emittable first-party (plan 228 R-1).
20148
+ */
20149
+ type EmittablePlatformEventName = Exclude<PlatformEventName, ControlPlaneEventName>;
20150
+ /**
20151
+ * Runtime mirror of {@link EmittablePlatformEventName}, derived from the
20152
+ * payload-contract map so the emit surface and the taxonomy cannot drift —
20153
+ * the parity test asserts this set plus the control-plane surface IS the
20154
+ * taxonomy.
20155
+ */
20156
+ declare const EMITTABLE_PLATFORM_EVENT_NAMES: readonly string[];
19030
20157
  /**
19031
20158
  * The core RevTurbine customer-facing SDK.
19032
20159
  *
@@ -19035,7 +20162,9 @@ declare function createSemanticEvent(eventType: string, payload: SdkEventPropert
19035
20162
  * - **Placements** — `registerPlacement()`, `getPlacementDecision()`, `getPlacement()`
19036
20163
  * - **Entitlements** — `checkEntitlement()`, `updateUsage()`
19037
20164
  * - **Trials** — `getTrialStatus()`
19038
- * - **Events** — `capture()`, `trackEvent()`, `emitSemantic()`
20165
+ * - **Events** — `track()` / `capture()` (generic lane; platform-name
20166
+ * collisions are namespaced), `emitPlatformEvent()` (typed platform lane,
20167
+ * contract-validated payloads)
19039
20168
  * - **Interactions** — `trackTreatmentInteraction()`, `dismiss()`, `convert()`
19040
20169
  * - **Context** — `setUserContext()`, `setPageContext()`, `refreshPageContext()`
19041
20170
  *
@@ -19091,6 +20220,22 @@ declare class RevTurbineCustomerSdk {
19091
20220
  private readonly anonymousId;
19092
20221
  private readonly sessionId;
19093
20222
  private readonly decisionCache;
20223
+ /**
20224
+ * `output_id` → the placement it was decided for, plus the attribution fields
20225
+ * the interaction path needs.
20226
+ *
20227
+ * The public `dismiss()` / `snooze()` / `convert()` take an **output** id,
20228
+ * while every terminal-state write is keyed by the **placement** id. Without
20229
+ * this index those three methods cannot reach the interaction path at all,
20230
+ * which is why `convert()` only ever emitted an event (plan 233 TASK-14).
20231
+ *
20232
+ * It outlives the decision cache deliberately. A conversion is confirmed after
20233
+ * the user comes back from a checkout redirect, long after a 60-second
20234
+ * decision TTL has expired and often in a fresh page load — so this persists,
20235
+ * and is bounded so a long session cannot grow it without limit.
20236
+ */
20237
+ private readonly outputPlacementIndex;
20238
+ private readonly outputPlacementIndexLimit;
19094
20239
  private readonly interactionState;
19095
20240
  private readonly interactionQueue;
19096
20241
  private readonly defaultDecisionTtlMs;
@@ -19115,6 +20260,14 @@ declare class RevTurbineCustomerSdk {
19115
20260
  private emittedAssignmentFactRevision?;
19116
20261
  private providerResolutionController;
19117
20262
  private lastEffectiveContext?;
20263
+ /**
20264
+ * The effective segment memberships from the most recent provider
20265
+ * resolution — resolved provider segments ∪ locally evaluated segments.
20266
+ * Stamped onto every event envelope as `segment_ids`, exactly as
20267
+ * `experiment_assignments` is stamped (plan 228 TASK-4 / REQ-11a), so
20268
+ * segment cuts read as-of-event truth instead of requiring a config join.
20269
+ */
20270
+ private lastEffectiveSegmentIds;
19118
20271
  private pageContext;
19119
20272
  /**
19120
20273
  * Secure per-user client token (`rt_client_`, plan 157). Minted by the
@@ -19263,6 +20416,16 @@ declare class RevTurbineCustomerSdk {
19263
20416
  private decisionCacheStorageKey;
19264
20417
  private interactionStateStorageKey;
19265
20418
  private presentationCapsStorageKey;
20419
+ private outputPlacementIndexStorageKey;
20420
+ /**
20421
+ * Remember which placement an output belonged to.
20422
+ *
20423
+ * Called from every path that hands a decision to a caller, because any
20424
+ * output a caller can see is an output they can later pass to `convert()`.
20425
+ */
20426
+ private indexDecisionOutput;
20427
+ private hydrateOutputPlacementIndex;
20428
+ private persistOutputPlacementIndex;
19266
20429
  private hydrateDecisionCache;
19267
20430
  private persistDecisionCache;
19268
20431
  private hydrateInteractionState;
@@ -19566,6 +20729,34 @@ declare class RevTurbineCustomerSdk {
19566
20729
  */
19567
20730
  getTelemetryCounters(): TelemetryCounters;
19568
20731
  capture(eventName: string, properties: SdkEventProperties, options?: RevTurbineEventOptions): Promise<void>;
20732
+ /**
20733
+ * Emit a typed platform event (plan 228 TASK-4).
20734
+ *
20735
+ * The sanctioned first-party path for every platform event OUTSIDE the
20736
+ * control plane — SDK lifecycle, gates, placements, milestones, growth
20737
+ * signals, and the R-2 billing vocabulary (a billing fact consumed from
20738
+ * Stripe is equally emittable here; the ingest path dedupes on the
20739
+ * contract's identity keys, e.g. `billing_ref`). The payload parameter type
20740
+ * is inferred from the event's payload contract, so the API cannot drift
20741
+ * from the schema the payload is validated against.
20742
+ *
20743
+ * The name is sent RAW — no `clickstream_*` namespacing — which is exactly
20744
+ * what distinguishes this from {@link track}: the generic lane namespaces
20745
+ * platform collisions, the typed lane IS the platform.
20746
+ *
20747
+ * In development/test builds the payload is validated against its contract
20748
+ * at emit time; a violation emits an `sdk_validation_warning` alongside
20749
+ * (never a throw — telemetry must not break the host app). Production
20750
+ * builds skip validation; the ingest boundary re-validates authoritatively.
20751
+ */
20752
+ emitPlatformEvent<K extends EmittablePlatformEventName>(eventName: K, payload: EventPayloadInput<K>, options?: RevTurbineEventOptions): Promise<void>;
20753
+ /**
20754
+ * Emit an `sdk_validation_warning` conforming to its own payload contract
20755
+ * (`message` is the contract's required field; `reason` rides along for
20756
+ * pre-228 consumers). Fire-and-forget — never throws into the host app.
20757
+ */
20758
+ private emitSdkWarning;
20759
+ private captureRaw;
19569
20760
  /**
19570
20761
  * Emit a typed control-plane semantic event (plan 112).
19571
20762
  *
@@ -19589,7 +20780,7 @@ declare class RevTurbineCustomerSdk {
19589
20780
  * @example
19590
20781
  * ```ts
19591
20782
  * sdk.identify('operator_42', { account_id: 'tn_acme' });
19592
- * await sdk.trackControlPlaneEvent('changeset_deployed', { change_set_id: 'cs_9' });
20783
+ * await sdk.trackControlPlaneEvent('playbook_version_deployed', { change_set_id: 'cs_9' });
19593
20784
  * ```
19594
20785
  */
19595
20786
  trackControlPlaneEvent(eventType: ControlPlaneEventType, payload?: SdkEventProperties, options?: RevTurbineEventOptions): Promise<void>;
@@ -19615,6 +20806,36 @@ declare class RevTurbineCustomerSdk {
19615
20806
  * instance (e.g. SPA unmount) to avoid a dangling interval/listeners.
19616
20807
  */
19617
20808
  dispose(): void;
20809
+ /**
20810
+ * Emit a semantic event through the GENERIC string lane.
20811
+ *
20812
+ * Since plan 228 TASK-4 this is a customer-lane API, not a platform one: it
20813
+ * rides {@link capture}, so a name colliding with platform vocabulary is
20814
+ * namespaced `clickstream_*` — platform events cannot be forged from here.
20815
+ * The SDK's own platform emissions use {@link emitPlatformEvent}, whose
20816
+ * payloads are typed and contract-validated.
20817
+ *
20818
+ * The fields are passed to {@link capture} DIRECTLY, exactly as a customer's
20819
+ * own `capture(name, {...})` call would. Anything else double-wraps them.
20820
+ *
20821
+ * This used to send `{semantic: true, payload: fields}`. The wire mapping
20822
+ * already stores an envelope's properties under the key `payload`, so that
20823
+ * inner wrapper landed the fields at `properties.payload.payload.<field>` in
20824
+ * `events_clickstream` — one level deeper than every `capture()` event and
20825
+ * than the canonical carrier this SDK documents. Readers that followed the
20826
+ * documented shape (`user_context_fields`, any analytics pipe) found nothing
20827
+ * on a semantic event, which is why gate telemetry was invisible to the
20828
+ * entitlement metrics despite being emitted correctly.
20829
+ *
20830
+ * The `semantic: true` marker went with it: it was written here and read
20831
+ * nowhere in the SDK, the web app, or any pipe. It marked nothing and cost a
20832
+ * whole nesting level.
20833
+ *
20834
+ * `liftClickstreamFields` / `pickClickstreamField` are unaffected — they
20835
+ * resolve top-level first and fall back to the nested bag, so they read the
20836
+ * fields either way. Only the STORED JSON changes shape, and it changes to
20837
+ * the shape everything else already expects.
20838
+ */
19618
20839
  emitSemantic(eventType: string, payload: SdkEventProperties, options?: RevTurbineEventOptions): Promise<void>;
19619
20840
  /**
19620
20841
  * Optimized routine to evaluate segment membership and usage thresholds.
@@ -19678,6 +20899,50 @@ declare class RevTurbineCustomerSdk {
19678
20899
  placementScopeKey?: string;
19679
20900
  normalizedPageRoute?: string;
19680
20901
  }): Promise<string>;
20902
+ /**
20903
+ * Every surface slot this SDK instance currently has mounted.
20904
+ *
20905
+ * Plan 233 TASK-10. `verify-integration` names the gap this closes in its own
20906
+ * text: *"A placement targeting a slot no code renders can never show, and
20907
+ * nothing reports this; there is no probe, so walk the Playbook's placement
20908
+ * triggers against your inventory of rendered slots."* There was no way to
20909
+ * obtain that inventory at runtime — the registry is private and keyed by a
20910
+ * hashed id, not by the slot id the author wrote.
20911
+ *
20912
+ * `slotId` is the author-facing identity (what a Playbook's
20913
+ * `trigger.slot_id` must match), not the internal hash. That distinction is
20914
+ * the whole point: a diff against authored config is meaningless in hash
20915
+ * space.
20916
+ *
20917
+ * @public
20918
+ */
20919
+ getRegisteredSlots(): RevTurbineRegisteredSlot[];
20920
+ /**
20921
+ * Diff the authored Playbook against what this app actually mounted, in both
20922
+ * directions.
20923
+ *
20924
+ * Plan 233 TASK-10 / AC-12. Both directions matter and they fail differently:
20925
+ *
20926
+ * - **authoredButUnmounted** — a placement targets a slot no code renders. It
20927
+ * can never show. Nothing reports this today; the decision path is never
20928
+ * even asked about a slot that was never mounted, so there is no error, no
20929
+ * warning, and no reason code. This is the silent one.
20930
+ * - **mountedButUnauthored** — a slot is mounted that no placement targets. It
20931
+ * renders its fallback forever, which usually means a typo in the slot id
20932
+ * or config that was never deployed.
20933
+ *
20934
+ * This is a diagnostic and deliberately reports rather than throws: it is run
20935
+ * against a live app, and an integration with a stale slot should keep
20936
+ * working while someone reads the output.
20937
+ *
20938
+ * A config-side audit **cannot** produce this. That is the lesson from the
20939
+ * August diagnosis of the escalated integration, which concluded the fixed
20940
+ * slots were unmounted: they were mounted, and the call sites passed slot ids
20941
+ * that no placement targeted. Only the running app knows what it mounted.
20942
+ *
20943
+ * @public
20944
+ */
20945
+ diagnoseSlotInventory(): RevTurbineSlotInventoryDiagnosis;
19681
20946
  /**
19682
20947
  * @deprecated Use `registerSurfaceSlot`.
19683
20948
  */
@@ -19725,8 +20990,37 @@ declare class RevTurbineCustomerSdk {
19725
20990
  getPlacementDecision(input: RevTurbinePlacementDecisionInput): Promise<RevTurbinePlacementDecision>;
19726
20991
  preloadPlacementDecisions(inputs: RevTurbinePlacementDecisionInput[]): Promise<void>;
19727
20992
  bootstrapPlacementDecisions(inputs: RevTurbinePlacementDecisionInput[]): Promise<void>;
20993
+ /**
20994
+ * The authored suppression windows for a payload, in milliseconds.
20995
+ *
20996
+ * Plan 233 TASK-8b/8c. `caps.cooldown_days` and `remind_later_minutes` are
20997
+ * authored per payload and round-trip through export/import (plan 167 AC-8,
20998
+ * AC-11), but nothing ever read them back: the only consumer was the
20999
+ * `hasAuthoredCaps` feature-flag derivation, which uses their PRESENCE to
21000
+ * switch caps enforcement on and discards their values. So a Playbook saying
21001
+ * `cooldown_days: 7` flipped a boolean and otherwise did nothing.
21002
+ *
21003
+ * The decision's `output_id` is the payload id (the resolver sets
21004
+ * `output_id: payload.id`), so the authored values are recoverable from the
21005
+ * loaded config at interaction time.
21006
+ */
21007
+ private authoredSuppressionWindows;
19728
21008
  private updateInteractionState;
19729
21009
  private flushInteractionQueue;
21010
+ /**
21011
+ * Re-queue a failed interaction flush and make the failure VISIBLE.
21012
+ *
21013
+ * This used to retry against a legacy path that does not exist in the app,
21014
+ * with the internal queue shape rather than the wire shape — so a failure
21015
+ * produced a silent 404, the batch went back on the queue, and it was
21016
+ * discarded at page unload with nothing recorded anywhere. That is how a
21017
+ * whole class of dropped presentations stayed invisible (plan 232).
21018
+ *
21019
+ * Re-queuing is still right — a transient failure should retry on the next
21020
+ * flush — but it is now paired with a counter and a diagnostic, so a
21021
+ * persistent failure is observable instead of merely quiet.
21022
+ */
21023
+ private failInteractionFlush;
19730
21024
  trackTreatmentInteraction(input: RevTurbineTreatmentInteractionInput): Promise<void>;
19731
21025
  getPlacementContent(placementId: string, request?: JsonObject): Promise<RevTurbinePlacementContent>;
19732
21026
  /**
@@ -20008,6 +21302,23 @@ declare class RevTurbineCustomerSdk {
20008
21302
  * throwOnMissing: true })` remains the strict opt-in.
20009
21303
  */
20010
21304
  private warnOnUiPathResolverCoverageGaps;
21305
+ /**
21306
+ * Route an output-addressed interaction through the one interaction path.
21307
+ *
21308
+ * Plan 233 TASK-14. These three methods each emitted a `placement_interaction`
21309
+ * event and stopped, so none of them wrote any terminal state:
21310
+ * `sdk.dismiss()` did not suppress, and `sdk.convert()` did not retire. Only
21311
+ * the controller path (`trackTreatmentInteraction`) ever did, which is why the
21312
+ * defect was invisible to every React integration test.
21313
+ *
21314
+ * The public API takes an **output** id while every terminal-state write is
21315
+ * keyed by the **placement** id, so the output is resolved through
21316
+ * `outputPlacementIndex`. When it cannot be resolved — an output this SDK
21317
+ * instance never decided, or one evicted from a very long session — we emit
21318
+ * the bare event as before and say so. Silently doing nothing is what shipped;
21319
+ * being loud about the one case we cannot serve is the point.
21320
+ */
21321
+ private trackOutputInteraction;
20011
21322
  dismiss(outputId: string): Promise<void>;
20012
21323
  snooze(outputId: string, seconds?: number): Promise<void>;
20013
21324
  convert(outputId: string): Promise<void>;
@@ -20018,10 +21329,22 @@ declare class RevTurbineCustomerSdk {
20018
21329
  * name to {@link RevTurbineTriggerEvent} and attaches standard context
20019
21330
  * (user_id, plan, timestamp) automatically.
20020
21331
  *
21332
+ * **Three trigger names land namespaced on the wire.** This rides the
21333
+ * generic emit lane, which prefixes `clickstream_` to any name the platform
21334
+ * taxonomy already declares — the rule that stops a client forging a
21335
+ * first-party fact by naming an event after one. `trial_expired`,
21336
+ * `payment_failed` and `feature_gated` collide, so they are stored as
21337
+ * `clickstream_trial_expired`, `clickstream_payment_failed` and
21338
+ * `clickstream_feature_gated`. Query those names, not the raw ones. The
21339
+ * remaining triggers are unaffected, and the platform's own versions of the
21340
+ * three are emitted first-party through the typed surface. Pinned by
21341
+ * `trigger-namespacing-parity.test.ts` (plan 231 REQ-4).
21342
+ *
20021
21343
  * @example
20022
21344
  * ```ts
20023
21345
  * await sdk.emitTrigger('usage_limit_approaching', { usage_percent: 85, threshold: 80 });
20024
21346
  * await sdk.emitTrigger('trial_expiring', { days_remaining: 2 });
21347
+ * // stored as `clickstream_feature_gated` — see the collision note above
20025
21348
  * await sdk.emitTrigger('feature_gated', { feature: 'advanced_automation' });
20026
21349
  * ```
20027
21350
  */
@@ -20163,7 +21486,7 @@ declare class RevTurbineCustomerSdk {
20163
21486
  * });
20164
21487
  * ```
20165
21488
  */
20166
- declare function initRevTurbine$1(options: RevTurbineInitInputOptions): RevTurbineCustomerSdk;
21489
+ declare function initRevTurbine$1<T extends RevTurbineInitInputOptions>(options: T & ExactInitOptions<T>): RevTurbineCustomerSdk;
20167
21490
  declare global {
20168
21491
  interface Window {
20169
21492
  RevTurbine?: {
@@ -20493,8 +21816,25 @@ declare class PlacementController {
20493
21816
  /** Re-fetch the placement decision (clears impression + render + exposure tracking). */
20494
21817
  refresh(): Promise<RevTurbinePlacementDecision | null>;
20495
21818
  /** Record a dismiss interaction and hide the placement. */
21819
+ /**
21820
+ * Record a dismissal.
21821
+ *
21822
+ * @param cooldownMs - Optional explicit window. Omit it — which is the normal
21823
+ * case — and the SDK resolves the payload's authored `caps.cooldown_days`,
21824
+ * falling back to the 7-day default. This used to default to 24h here and
21825
+ * pass it ALWAYS, so the authored value and the 7-day default were both
21826
+ * unreachable from React (plan 233 TASK-8b).
21827
+ */
20496
21828
  dismiss(cooldownMs?: number): Promise<void>;
20497
21829
  /** Record a snooze/remind-me-later interaction and hide the placement. */
21830
+ /**
21831
+ * Record a snooze / remind-me-later.
21832
+ *
21833
+ * @param seconds - Optional explicit window. Omit it and the SDK resolves the
21834
+ * payload's authored `remind_later_minutes`, falling back to the tenant
21835
+ * default (plan 233 TASK-8c). Remind-later is a DIFFERENT window from
21836
+ * dismiss and resolves independently.
21837
+ */
20498
21838
  snooze(seconds?: number): Promise<void>;
20499
21839
  /** Alias for {@link snooze}. */
20500
21840
  remindMeLater(seconds?: number): Promise<void>;
@@ -21636,7 +22976,7 @@ interface paths {
21636
22976
  };
21637
22977
  get?: never;
21638
22978
  put?: never;
21639
- /** Record a placement treatment interaction */
22979
+ /** Record one placement treatment interaction, or a batch of them */
21640
22980
  post: operations["recordTreatmentInteraction"];
21641
22981
  delete?: never;
21642
22982
  options?: never;
@@ -22143,8 +23483,10 @@ interface components {
22143
23483
  content_ui_paths: components["schemas"]["Anon_274ba4ca49d5_6"];
22144
23484
  surface_templates: components["schemas"]["Anon_274ba4ca49d5_7"];
22145
23485
  };
23486
+ TreatmentInteractionRequest: components["schemas"]["TreatmentInteractionInput"] | components["schemas"]["TreatmentInteractionBatch"];
22146
23487
  TreatmentInteractionInput: {
22147
23488
  user_id: components["schemas"]["Anon_761f976a1da1_2"];
23489
+ account_id?: components["schemas"]["Anon_0a729b73253d"];
22148
23490
  placement_id: components["schemas"]["Anon_57796118d046_18"];
22149
23491
  treatment_id?: components["schemas"]["Anon_4e04ec5cc4e6_4"];
22150
23492
  surface_slot_id?: components["schemas"]["Anon_4e04ec5cc4e6_5"];
@@ -22161,6 +23503,7 @@ interface components {
22161
23503
  };
22162
23504
  /** @enum {string} */
22163
23505
  TreatmentInteractionType: "impression" | "dismiss" | "remind_me_later" | "cta_clicked" | "cta_completed" | "suppress";
23506
+ TreatmentInteractionBatch: components["schemas"]["TreatmentInteractionInput"][];
22164
23507
  WebhookEventLog: {
22165
23508
  id: components["schemas"]["Anon_fb248bf5a9f7"];
22166
23509
  created_at: components["schemas"]["Anon_be3e2585472d"];
@@ -23223,27 +24566,29 @@ interface components {
23223
24566
  Anon_e17de468dbc9_10: components["schemas"]["Anon_520c691f88f7_10"];
23224
24567
  Anon_520c691f88f7_10: string;
23225
24568
  Anon_761f976a1da1_2: string;
23226
- Anon_57796118d046_18: string;
23227
- Anon_4e04ec5cc4e6_4: components["schemas"]["Anon_9ac136edb99a_9"];
24569
+ Anon_0a729b73253d: components["schemas"]["Anon_9ac136edb99a_9"];
23228
24570
  Anon_9ac136edb99a_9: string;
23229
- Anon_4e04ec5cc4e6_5: components["schemas"]["Anon_9ac136edb99a_10"];
24571
+ Anon_57796118d046_18: string;
24572
+ Anon_4e04ec5cc4e6_4: components["schemas"]["Anon_9ac136edb99a_10"];
23230
24573
  Anon_9ac136edb99a_10: string;
23231
- Anon_4e04ec5cc4e6_6: components["schemas"]["Anon_9ac136edb99a_11"];
24574
+ Anon_4e04ec5cc4e6_5: components["schemas"]["Anon_9ac136edb99a_11"];
23232
24575
  Anon_9ac136edb99a_11: string;
23233
- Anon_4e04ec5cc4e6_7: components["schemas"]["Anon_9ac136edb99a_12"];
24576
+ Anon_4e04ec5cc4e6_6: components["schemas"]["Anon_9ac136edb99a_12"];
23234
24577
  Anon_9ac136edb99a_12: string;
24578
+ Anon_4e04ec5cc4e6_7: components["schemas"]["Anon_9ac136edb99a_13"];
24579
+ Anon_9ac136edb99a_13: string;
23235
24580
  Anon_b540c131c269: components["schemas"]["TreatmentInteractionType"];
23236
24581
  Anon_e077e17ea982_3: components["schemas"]["Anon_02ecf48bed22_3"];
23237
24582
  /** Format: date-time */
23238
24583
  Anon_02ecf48bed22_3: string;
23239
- Anon_4e04ec5cc4e6_8: components["schemas"]["Anon_9ac136edb99a_13"];
23240
- Anon_9ac136edb99a_13: string;
23241
- Anon_4e04ec5cc4e6_9: components["schemas"]["Anon_9ac136edb99a_14"];
24584
+ Anon_4e04ec5cc4e6_8: components["schemas"]["Anon_9ac136edb99a_14"];
23242
24585
  Anon_9ac136edb99a_14: string;
23243
- Anon_4e04ec5cc4e6_10: components["schemas"]["Anon_9ac136edb99a_15"];
24586
+ Anon_4e04ec5cc4e6_9: components["schemas"]["Anon_9ac136edb99a_15"];
23244
24587
  Anon_9ac136edb99a_15: string;
23245
- Anon_4e04ec5cc4e6_11: components["schemas"]["Anon_9ac136edb99a_16"];
24588
+ Anon_4e04ec5cc4e6_10: components["schemas"]["Anon_9ac136edb99a_16"];
23246
24589
  Anon_9ac136edb99a_16: string;
24590
+ Anon_4e04ec5cc4e6_11: components["schemas"]["Anon_9ac136edb99a_17"];
24591
+ Anon_9ac136edb99a_17: string;
23247
24592
  Anon_fb9ddeea992e_3: components["schemas"]["Anon_7cb541e84f22_31"];
23248
24593
  Anon_7cb541e84f22_31: boolean;
23249
24594
  Anon_a249e58b3222: components["schemas"]["Anon_c65c1fbd5acf_8"];
@@ -23272,8 +24617,8 @@ interface components {
23272
24617
  Anon_39a43881005e_1: string | null;
23273
24618
  Anon_96f9066c2fdc_24: components["schemas"]["Anon_00404e686415_27"];
23274
24619
  Anon_00404e686415_27: string;
23275
- Anon_4e04ec5cc4e6_12: components["schemas"]["Anon_9ac136edb99a_17"];
23276
- Anon_9ac136edb99a_17: string;
24620
+ Anon_4e04ec5cc4e6_12: components["schemas"]["Anon_9ac136edb99a_18"];
24621
+ Anon_9ac136edb99a_18: string;
23277
24622
  Anon_2fef49d17888: components["schemas"]["UserPlanContext"];
23278
24623
  Anon_57796118d046_21: string;
23279
24624
  Anon_57796118d046_22: string;
@@ -24603,8 +25948,16 @@ interface components {
24603
25948
  query_families: components["schemas"]["Anon_54e2154d1e2d"];
24604
25949
  source_scope: components["schemas"]["Anon_a3ffad10d15c_5"];
24605
25950
  coverage_metric?: components["schemas"]["Anon_473e554f0735_16"];
25951
+ dimension_groundings?: components["schemas"]["Anon_7cdcf9f62dcd"];
24606
25952
  deprecation?: components["schemas"]["Anon_8f09b448c37f"];
24607
25953
  };
25954
+ AnalyticsDimensionGrounding: {
25955
+ kind: components["schemas"]["Anon_02276af6fec4"];
25956
+ source: components["schemas"]["Anon_872e58432369_4"];
25957
+ note?: components["schemas"]["Anon_ac655a3e6b9f"];
25958
+ };
25959
+ /** @enum {string} */
25960
+ AnalyticsDimensionGroundingKind: "stamped" | "membership_join" | "config_join" | "derived";
24608
25961
  AnalyticsCatalogDeprecation: {
24609
25962
  deprecated: components["schemas"]["Anon_a2b04841bdf1_1"];
24610
25963
  replaced_by?: components["schemas"]["Anon_473e554f0735_17"];
@@ -24649,6 +26002,7 @@ interface components {
24649
26002
  preferred_analysis_unit?: components["schemas"]["Anon_612059bf001c_6"];
24650
26003
  numerator_metric?: components["schemas"]["Anon_473e554f0735_20"];
24651
26004
  denominator_metric?: components["schemas"]["Anon_473e554f0735_21"];
26005
+ derivation?: components["schemas"]["Anon_22c006ff8d66"];
24652
26006
  deprecation?: components["schemas"]["Anon_8f09b448c37f_2"];
24653
26007
  };
24654
26008
  /** @enum {string} */
@@ -24659,6 +26013,18 @@ interface components {
24659
26013
  AnalyticsMetricStatisticalType: "binary" | "count" | "continuous" | "ratio" | "revenue";
24660
26014
  /** @enum {string} */
24661
26015
  AnalyticsMetricAggregationSemantics: "additive" | "semi_additive" | "non_additive";
26016
+ AnalyticsMetricDerivation: {
26017
+ kind: components["schemas"]["Anon_a1d7a3ac66b8"];
26018
+ input_origin: components["schemas"]["Anon_8a96081932e9"];
26019
+ ingested_events: components["schemas"]["Anon_304a69e72d83"];
26020
+ ingested_datasources?: components["schemas"]["Anon_6411eaf2b1b5"];
26021
+ carried_by?: components["schemas"]["Anon_04b033dd40a9"];
26022
+ note?: components["schemas"]["Anon_1e68bee50f0f"];
26023
+ };
26024
+ /** @enum {string} */
26025
+ AnalyticsMetricDerivationKind: "derived" | "observed" | "unavailable";
26026
+ /** @enum {string} */
26027
+ AnalyticsIngestedInputOrigin: "platform" | "customer_authored" | "mixed" | "none";
24662
26028
  AnalyticsCatalogAnnotationKind: {
24663
26029
  kind: components["schemas"]["Anon_7ed6fcd5ece3"];
24664
26030
  label: components["schemas"]["Anon_cd76cef95ac8_4"];
@@ -24672,7 +26038,7 @@ interface components {
24672
26038
  AnalyticsAnnotationMarker: "point" | "region";
24673
26039
  AnalyticsCatalogSearchResult: {
24674
26040
  catalog_version: components["schemas"]["Anon_0c649f0987df_4"];
24675
- query: components["schemas"]["Anon_872e58432369_4"];
26041
+ query: components["schemas"]["Anon_872e58432369_5"];
24676
26042
  entries: components["schemas"]["Anon_57df4039d087"];
24677
26043
  };
24678
26044
  AnalyticsAgentCatalogEntry: {
@@ -24847,7 +26213,7 @@ interface components {
24847
26213
  created_at: components["schemas"]["Anon_be3e2585472d_2"];
24848
26214
  updated_at: components["schemas"]["Anon_be3e2585472d_3"];
24849
26215
  tenant_id: components["schemas"]["Anon_fb248bf5a9f7_10"];
24850
- workspace_name: components["schemas"]["Anon_872e58432369_5"];
26216
+ workspace_name: components["schemas"]["Anon_872e58432369_6"];
24851
26217
  support_email: components["schemas"]["Anon_7dbd1de5e9ee"];
24852
26218
  timezone: components["schemas"]["Anon_c44ee03a9c5e"];
24853
26219
  default_currency: components["schemas"]["Anon_64586219ef83_1"];
@@ -24875,7 +26241,7 @@ interface components {
24875
26241
  updated_at: components["schemas"]["Anon_be3e2585472d_3"];
24876
26242
  tenant_id: components["schemas"]["Anon_fb248bf5a9f7_10"];
24877
26243
  step_key: components["schemas"]["Anon_3b8fc1cd9e8b_26"];
24878
- label: components["schemas"]["Anon_872e58432369_6"];
26244
+ label: components["schemas"]["Anon_872e58432369_7"];
24879
26245
  done: components["schemas"]["Anon_062d958a93c4_25"];
24880
26246
  completed_at: components["schemas"]["Anon_24a0ac3f017b_4"];
24881
26247
  };
@@ -24906,7 +26272,7 @@ interface components {
24906
26272
  sequence: components["schemas"]["Anon_ffffc3c874cb_1"];
24907
26273
  base_sequence: components["schemas"]["Anon_71a2fb329804_1"];
24908
26274
  handle: components["schemas"]["Anon_2457cccd64aa_12"];
24909
- identifier: components["schemas"]["Anon_872e58432369_7"];
26275
+ identifier: components["schemas"]["Anon_872e58432369_8"];
24910
26276
  identifier_type: components["schemas"]["Anon_b07a1e0dbc7b"];
24911
26277
  note: components["schemas"]["Anon_519dcb817ac7"];
24912
26278
  added_by: components["schemas"]["Anon_127eb78cd9c0_12"];
@@ -24947,8 +26313,8 @@ interface components {
24947
26313
  event_type: components["schemas"]["Anon_57796118d046_72"];
24948
26314
  source: components["schemas"]["Anon_eabbbb727ad3"];
24949
26315
  tenant_id?: components["schemas"]["Anon_4e04ec5cc4e6_17"];
24950
- user_id?: components["schemas"]["Anon_0a729b73253d"];
24951
- session_id?: components["schemas"]["Anon_0a729b73253d_1"];
26316
+ user_id?: components["schemas"]["Anon_0a729b73253d_1"];
26317
+ session_id?: components["schemas"]["Anon_0a729b73253d_2"];
24952
26318
  occurred_at: components["schemas"]["Anon_3c179513a5d9_19"];
24953
26319
  request_id: components["schemas"]["Anon_57796118d046_73"];
24954
26320
  attributes: components["schemas"]["Anon_5142f8473790_13"];
@@ -24964,8 +26330,8 @@ interface components {
24964
26330
  Anon_be3e2585472d_3: string;
24965
26331
  Anon_fb248bf5a9f7_10: string;
24966
26332
  /** @default production */
24967
- Anon_51cbbf69cb41_1: components["schemas"]["Anon_9ac136edb99a_18"];
24968
- Anon_9ac136edb99a_18: string;
26333
+ Anon_51cbbf69cb41_1: components["schemas"]["Anon_9ac136edb99a_19"];
26334
+ Anon_9ac136edb99a_19: string;
24969
26335
  Anon_2457cccd64aa_1: components["schemas"]["Anon_0eb2e3b6e08c_3"];
24970
26336
  Anon_0eb2e3b6e08c_3: string;
24971
26337
  /** @default true */
@@ -25375,7 +26741,7 @@ interface components {
25375
26741
  /** @default [] */
25376
26742
  Anon_3b6346b139c2: components["schemas"]["Anon_f836473839d1"];
25377
26743
  Anon_f836473839d1: components["schemas"]["FieldDefinitionOutput"][];
25378
- Anon_9ac136edb99a_19: string;
26744
+ Anon_9ac136edb99a_20: string;
25379
26745
  /** @default false */
25380
26746
  Anon_f56777819c8b_3: boolean;
25381
26747
  Anon_44136fa355b3_1: unknown;
@@ -25432,8 +26798,8 @@ interface components {
25432
26798
  /** @default 0 */
25433
26799
  Anon_2aa59aec1f23_4: components["schemas"]["Anon_97cc9ecfdea9_26"];
25434
26800
  Anon_97cc9ecfdea9_26: number;
25435
- Anon_4e04ec5cc4e6_13: components["schemas"]["Anon_9ac136edb99a_20"];
25436
- Anon_9ac136edb99a_20: string;
26801
+ Anon_4e04ec5cc4e6_13: components["schemas"]["Anon_9ac136edb99a_21"];
26802
+ Anon_9ac136edb99a_21: string;
25437
26803
  Anon_9717c0445e52_3: components["schemas"]["Anon_ea288f4ef558_13"];
25438
26804
  Anon_ea288f4ef558_13: number;
25439
26805
  /** @default false */
@@ -25464,8 +26830,8 @@ interface components {
25464
26830
  Anon_e7cb93d064a8_3: components["schemas"]["TrialLimitType"];
25465
26831
  Anon_62c32913f8d0_3: components["schemas"]["Anon_3b260614cba4_3"];
25466
26832
  Anon_3b260614cba4_3: number | null;
25467
- Anon_4e04ec5cc4e6_14: components["schemas"]["Anon_9ac136edb99a_21"];
25468
- Anon_9ac136edb99a_21: string;
26833
+ Anon_4e04ec5cc4e6_14: components["schemas"]["Anon_9ac136edb99a_22"];
26834
+ Anon_9ac136edb99a_22: string;
25469
26835
  Anon_9717c0445e52_4: components["schemas"]["Anon_ea288f4ef558_15"];
25470
26836
  Anon_ea288f4ef558_15: number;
25471
26837
  /** @default signup */
@@ -25500,8 +26866,8 @@ interface components {
25500
26866
  Anon_b0c21ae8f968_5: string | null;
25501
26867
  /** @default time */
25502
26868
  Anon_e7cb93d064a8_4: components["schemas"]["TrialLimitType"];
25503
- Anon_4e04ec5cc4e6_15: components["schemas"]["Anon_9ac136edb99a_22"];
25504
- Anon_9ac136edb99a_22: string;
26869
+ Anon_4e04ec5cc4e6_15: components["schemas"]["Anon_9ac136edb99a_23"];
26870
+ Anon_9ac136edb99a_23: string;
25505
26871
  Anon_9717c0445e52_5: components["schemas"]["Anon_ea288f4ef558_16"];
25506
26872
  Anon_ea288f4ef558_16: number;
25507
26873
  Anon_711dc9708535_9: components["schemas"]["Anon_11c9ad639448_1"];
@@ -25734,8 +27100,8 @@ interface components {
25734
27100
  Anon_c72f37d06352: string[];
25735
27101
  Anon_7734a34f21b6: components["schemas"]["Anon_d573fc9779f1"];
25736
27102
  Anon_d573fc9779f1: components["schemas"]["Anon_0eb2e3b6e08c_3"][];
25737
- Anon_60e62c272481: components["schemas"]["Anon_9ac136edb99a_23"][];
25738
- Anon_9ac136edb99a_23: string;
27103
+ Anon_60e62c272481: components["schemas"]["Anon_9ac136edb99a_24"][];
27104
+ Anon_9ac136edb99a_24: string;
25739
27105
  Anon_492895348dbd_12: number;
25740
27106
  Anon_3b8fc1cd9e8b_19: string;
25741
27107
  Anon_829616683b56: components["schemas"]["ExperimentDecisionFinding"][];
@@ -25765,7 +27131,7 @@ interface components {
25765
27131
  Anon_052253c90fb3_1: components["schemas"]["Anon_681004346c78_21"];
25766
27132
  Anon_681004346c78_21: string[];
25767
27133
  Anon_544a3bc583b1: components["schemas"]["ExperimentVariantOutput"][];
25768
- Anon_9ac136edb99a_24: string;
27134
+ Anon_9ac136edb99a_25: string;
25769
27135
  /** @default 0.5 */
25770
27136
  Anon_7e4345d1e208_1: number;
25771
27137
  /** @default false */
@@ -26130,8 +27496,8 @@ interface components {
26130
27496
  /** @enum {string} */
26131
27497
  Anon_fc6def941f46_1: "template" | "slot";
26132
27498
  Anon_57796118d046_59: string;
26133
- Anon_4e04ec5cc4e6_16: components["schemas"]["Anon_9ac136edb99a_25"];
26134
- Anon_9ac136edb99a_25: string;
27499
+ Anon_4e04ec5cc4e6_16: components["schemas"]["Anon_9ac136edb99a_26"];
27500
+ Anon_9ac136edb99a_26: string;
26135
27501
  Anon_c65e883b4e4a: {
26136
27502
  count: components["schemas"]["Anon_492895348dbd_13"];
26137
27503
  period: components["schemas"]["Anon_e78ca35ebc33_1"];
@@ -26521,6 +27887,14 @@ interface components {
26521
27887
  Anon_54e2154d1e2d: components["schemas"]["AnalyticsQueryFamily"][];
26522
27888
  Anon_a3ffad10d15c_5: components["schemas"]["AnalyticsSourceScope"];
26523
27889
  Anon_473e554f0735_16: components["schemas"]["Anon_c8d24748191b_1"];
27890
+ Anon_7cdcf9f62dcd: components["schemas"]["Anon_ebc742463bcd"];
27891
+ Anon_ebc742463bcd: {
27892
+ [key: string]: components["schemas"]["AnalyticsDimensionGrounding"];
27893
+ };
27894
+ Anon_02276af6fec4: components["schemas"]["AnalyticsDimensionGroundingKind"];
27895
+ Anon_872e58432369_4: string;
27896
+ Anon_ac655a3e6b9f: components["schemas"]["Anon_800d95542a20"];
27897
+ Anon_800d95542a20: string;
26524
27898
  Anon_8f09b448c37f: components["schemas"]["AnalyticsCatalogDeprecation"];
26525
27899
  Anon_a2b04841bdf1_1: boolean;
26526
27900
  Anon_473e554f0735_17: components["schemas"]["Anon_c8d24748191b_1"];
@@ -26565,6 +27939,19 @@ interface components {
26565
27939
  Anon_612059bf001c_6: components["schemas"]["AnalyticsAnalyticalUnit"];
26566
27940
  Anon_473e554f0735_20: components["schemas"]["Anon_c8d24748191b_1"];
26567
27941
  Anon_473e554f0735_21: components["schemas"]["Anon_c8d24748191b_1"];
27942
+ Anon_22c006ff8d66: components["schemas"]["AnalyticsMetricDerivation"];
27943
+ Anon_a1d7a3ac66b8: components["schemas"]["AnalyticsMetricDerivationKind"];
27944
+ Anon_8a96081932e9: components["schemas"]["AnalyticsIngestedInputOrigin"];
27945
+ Anon_304a69e72d83: components["schemas"]["Anon_64fcdc575ad5"][];
27946
+ Anon_64fcdc575ad5: string;
27947
+ Anon_6411eaf2b1b5: components["schemas"]["Anon_d36735de5e00"];
27948
+ Anon_d36735de5e00: components["schemas"]["Anon_64fcdc575ad5_1"][];
27949
+ Anon_64fcdc575ad5_1: string;
27950
+ Anon_04b033dd40a9: components["schemas"]["Anon_c6d8e2b09e6d"];
27951
+ Anon_c6d8e2b09e6d: components["schemas"]["Anon_64fcdc575ad5_2"][];
27952
+ Anon_64fcdc575ad5_2: string;
27953
+ Anon_1e68bee50f0f: components["schemas"]["Anon_45ca91dbcd70"];
27954
+ Anon_45ca91dbcd70: string;
26568
27955
  Anon_8f09b448c37f_2: components["schemas"]["AnalyticsCatalogDeprecation"];
26569
27956
  Anon_203017ce4604: components["schemas"]["Anon_d9dbfa5954cd"];
26570
27957
  Anon_d9dbfa5954cd: components["schemas"]["AnalyticsCatalogAnnotationKind"][];
@@ -26574,7 +27961,7 @@ interface components {
26574
27961
  Anon_8783ccc02cda: components["schemas"]["AnalyticsAnnotationSource"];
26575
27962
  Anon_85e861e36da5: components["schemas"]["AnalyticsAnnotationMarker"];
26576
27963
  Anon_0c649f0987df_4: string;
26577
- Anon_872e58432369_4: string;
27964
+ Anon_872e58432369_5: string;
26578
27965
  Anon_57df4039d087: components["schemas"]["AnalyticsAgentCatalogEntry"][];
26579
27966
  Anon_53c09eaf03ab_7: components["schemas"]["AnalyticsSemanticIdOutput"];
26580
27967
  Anon_33085dabcc5b: components["schemas"]["AnalyticsAgentCatalogEntryKind"];
@@ -26771,7 +28158,7 @@ interface components {
26771
28158
  /** @default true */
26772
28159
  Anon_493deecc809a_15: components["schemas"]["Anon_7cb541e84f22_77"];
26773
28160
  Anon_7cb541e84f22_77: boolean;
26774
- Anon_872e58432369_5: string;
28161
+ Anon_872e58432369_6: string;
26775
28162
  /** @default null */
26776
28163
  Anon_7dbd1de5e9ee: components["schemas"]["Anon_39a43881005e_2"];
26777
28164
  Anon_39a43881005e_2: string | null;
@@ -26814,14 +28201,14 @@ interface components {
26814
28201
  Anon_062d958a93c4_24: components["schemas"]["Anon_7cb541e84f22_79"];
26815
28202
  Anon_7cb541e84f22_79: boolean;
26816
28203
  Anon_3b8fc1cd9e8b_26: string;
26817
- Anon_872e58432369_6: string;
28204
+ Anon_872e58432369_7: string;
26818
28205
  /** @default false */
26819
28206
  Anon_062d958a93c4_25: components["schemas"]["Anon_7cb541e84f22_80"];
26820
28207
  Anon_7cb541e84f22_80: boolean;
26821
28208
  Anon_24a0ac3f017b_4: components["schemas"]["Anon_11c9ad639448_1"];
26822
28209
  /** @default production */
26823
- Anon_a2f8ac1ffbf6: components["schemas"]["Anon_9ac136edb99a_26"];
26824
- Anon_9ac136edb99a_26: string;
28210
+ Anon_a2f8ac1ffbf6: components["schemas"]["Anon_9ac136edb99a_27"];
28211
+ Anon_9ac136edb99a_27: string;
26825
28212
  Anon_a607427cce0b: components["schemas"]["AuditActorType"];
26826
28213
  /** @default null */
26827
28214
  Anon_f7fb9744a6e4_25: components["schemas"]["Anon_f090cb615c84_47"];
@@ -26841,7 +28228,7 @@ interface components {
26841
28228
  /** Format: date-time */
26842
28229
  Anon_be3e2585472d_10: string;
26843
28230
  Anon_2457cccd64aa_12: components["schemas"]["Anon_0eb2e3b6e08c_3"];
26844
- Anon_872e58432369_7: string;
28231
+ Anon_872e58432369_8: string;
26845
28232
  /** @default user_id */
26846
28233
  Anon_b07a1e0dbc7b: components["schemas"]["PlacementTestUserIdentifierType"];
26847
28234
  /** @default null */
@@ -26888,12 +28275,12 @@ interface components {
26888
28275
  Anon_57796118d046_72: string;
26889
28276
  /** @default sdk */
26890
28277
  Anon_eabbbb727ad3: components["schemas"]["EventSource"];
26891
- Anon_4e04ec5cc4e6_17: components["schemas"]["Anon_9ac136edb99a_27"];
26892
- Anon_9ac136edb99a_27: string;
26893
- Anon_0a729b73253d: components["schemas"]["Anon_9ac136edb99a_28"];
28278
+ Anon_4e04ec5cc4e6_17: components["schemas"]["Anon_9ac136edb99a_28"];
26894
28279
  Anon_9ac136edb99a_28: string;
26895
28280
  Anon_0a729b73253d_1: components["schemas"]["Anon_9ac136edb99a_29"];
26896
28281
  Anon_9ac136edb99a_29: string;
28282
+ Anon_0a729b73253d_2: components["schemas"]["Anon_9ac136edb99a_30"];
28283
+ Anon_9ac136edb99a_30: string;
26897
28284
  /** Format: date-time */
26898
28285
  Anon_3c179513a5d9_19: string;
26899
28286
  Anon_57796118d046_73: string;
@@ -26935,8 +28322,8 @@ interface components {
26935
28322
  Anon_39a43881005e_3: string | null;
26936
28323
  Anon_96f9066c2fdc_63: components["schemas"]["Anon_00404e686415_67"];
26937
28324
  Anon_00404e686415_67: string;
26938
- Anon_4e04ec5cc4e6_18: components["schemas"]["Anon_9ac136edb99a_30"];
26939
- Anon_9ac136edb99a_30: string;
28325
+ Anon_4e04ec5cc4e6_18: components["schemas"]["Anon_9ac136edb99a_31"];
28326
+ Anon_9ac136edb99a_31: string;
26940
28327
  Anon_f104771c9d3e: components["schemas"]["UserPlanContextOutput"];
26941
28328
  Anon_57796118d046_76: string;
26942
28329
  Anon_57796118d046_77: string;
@@ -27109,7 +28496,7 @@ interface components {
27109
28496
  description?: components["schemas"]["Anon_ee9224780226_6"];
27110
28497
  };
27111
28498
  FieldDefinitionOutput: {
27112
- name: components["schemas"]["Anon_9ac136edb99a_19"];
28499
+ name: components["schemas"]["Anon_9ac136edb99a_20"];
27113
28500
  field_type: components["schemas"]["TemplateFieldType"];
27114
28501
  required: components["schemas"]["Anon_f56777819c8b_3"];
27115
28502
  default_value?: components["schemas"]["Anon_44136fa355b3_1"];
@@ -27282,7 +28669,7 @@ interface components {
27282
28669
  metadata: components["schemas"]["Anon_f27cb44c32f6_22"];
27283
28670
  };
27284
28671
  ExperimentVariantOutput: {
27285
- variant_id: components["schemas"]["Anon_9ac136edb99a_24"];
28672
+ variant_id: components["schemas"]["Anon_9ac136edb99a_25"];
27286
28673
  name: components["schemas"]["Anon_52ba84a4bbf3_2"];
27287
28674
  weight: components["schemas"]["Anon_7e4345d1e208_1"];
27288
28675
  is_control: components["schemas"]["Anon_f56777819c8b_4"];
@@ -29254,7 +30641,7 @@ interface operations {
29254
30641
  };
29255
30642
  requestBody: {
29256
30643
  content: {
29257
- "application/json": components["schemas"]["TreatmentInteractionInput"];
30644
+ "application/json": components["schemas"]["TreatmentInteractionRequest"];
29258
30645
  };
29259
30646
  };
29260
30647
  responses: {
@@ -29836,10 +31223,51 @@ declare const MESSAGE_SURFACE_TEMPLATE_IDS: readonly string[];
29836
31223
  */
29837
31224
  declare const DEFAULT_THEME: Readonly<RevTurbineTheme>;
29838
31225
  /**
29839
- * Deep-merge a partial theme input with the default theme, producing a
29840
- * complete {@link RevTurbineTheme}.
31226
+ * Dark counterpart to {@link DEFAULT_THEME}.
31227
+ *
31228
+ * Plan 233 TASK-6. The SDK had no sanctioned dark story at all, so a customer
31229
+ * running a dark app either lived with white modals or — as the escalated one
31230
+ * did — injected a palette into the Playbook object and re-initialized the SDK
31231
+ * on every toggle. Shipping the palette is what makes `colorScheme` a swap
31232
+ * rather than a rebuild.
31233
+ *
31234
+ * Only the colors differ. Typography, shape and shadows are scheme-independent,
31235
+ * so they are inherited from {@link DEFAULT_THEME} rather than duplicated —
31236
+ * a second copy would drift the moment either is edited.
31237
+ *
31238
+ * Contrast: every text-on-surface pair here clears WCAG AA at body size against
31239
+ * its intended background.
31240
+ *
31241
+ * @public
31242
+ */
31243
+ declare const DARK_THEME: Readonly<RevTurbineTheme>;
31244
+ /**
31245
+ * The colour scheme a theme resolves against.
31246
+ *
31247
+ * `'system'` follows the OS/browser `prefers-color-scheme` and keeps following
31248
+ * it as the user changes it.
31249
+ *
31250
+ * @public
31251
+ */
31252
+ type RevTurbineColorScheme = 'light' | 'dark' | 'system';
31253
+ /**
31254
+ * The base palette for a resolved scheme.
31255
+ *
31256
+ * @param scheme - `'light'` or `'dark'`. Resolve `'system'` before calling.
31257
+ * @returns The matching base theme.
31258
+ * @public
31259
+ */
31260
+ declare function baseThemeForScheme(scheme: 'light' | 'dark'): Readonly<RevTurbineTheme>;
31261
+ /**
31262
+ * Deep-merge a partial theme input with a base theme, producing a complete
31263
+ * {@link RevTurbineTheme}.
31264
+ *
31265
+ * @param input - Partial tokens. Every omitted token falls back to `base`.
31266
+ * @param base - The palette to merge over. Defaults to {@link DEFAULT_THEME};
31267
+ * pass {@link DARK_THEME} (or use {@link baseThemeForScheme}) to resolve a
31268
+ * partial brand theme against the dark palette instead.
29841
31269
  */
29842
- declare function mergeTheme(input?: RevTurbineThemeInput | null): RevTurbineTheme;
31270
+ declare function mergeTheme(input?: RevTurbineThemeInput | null, base?: Readonly<RevTurbineTheme>): RevTurbineTheme;
29843
31271
 
29844
31272
  /** Clear persisted theme (useful on identity reset). */
29845
31273
  declare function clearPersistedTheme(tenantId: string, storage?: RevTurbineStorage): void;
@@ -30060,7 +31488,7 @@ declare class RevTurbineServer {
30060
31488
  type BootstrapPlacementInput = Omit<RevTurbinePlacementDecisionInput, 'placementId'> & {
30061
31489
  placement: RevTurbinePlacementConfig;
30062
31490
  };
30063
- type RevTurbineProviderProps<TUser extends RevTurbineUserContext = RevTurbineUserContext> = {
31491
+ type RevTurbineProviderProps<TUser extends RevTurbineUserContext = RevTurbineUserContext, TOptions extends RevTurbineInitInputOptions = RevTurbineInitInputOptions> = {
30064
31492
  /**
30065
31493
  * SDK initialization options. Accepts optional provider or factory.
30066
31494
  *
@@ -30070,7 +31498,7 @@ type RevTurbineProviderProps<TUser extends RevTurbineUserContext = RevTurbineUse
30070
31498
  * in an un-annotated `useMemo`, which is precisely where TypeScript's own
30071
31499
  * excess-property check stops applying.
30072
31500
  */
30073
- options: RevTurbineInitInputOptions & {
31501
+ options: TOptions & ExactInitOptions<TOptions> & {
30074
31502
  user?: Exact<RevTurbineUserContext, TUser>;
30075
31503
  };
30076
31504
  /** Placements to bootstrap (preload decisions) on mount. */
@@ -30085,6 +31513,19 @@ type RevTurbineProviderProps<TUser extends RevTurbineUserContext = RevTurbineUse
30085
31513
  * Omit to disable. Memoize an object value to avoid re-installing.
30086
31514
  */
30087
31515
  domCapture?: boolean | AnnotatedCaptureOptions;
31516
+ /**
31517
+ * Light/dark palette for rendered placements (plan 233 TASK-6).
31518
+ *
31519
+ * Deliberately a provider prop rather than an SDK init option: `options`
31520
+ * identity drives re-initialization, so a scheme toggle placed there would
31521
+ * rebuild the SDK on every switch. That was the customer workaround this
31522
+ * replaces. Defaults to `'system'`, which follows `prefers-color-scheme` and
31523
+ * keeps following it.
31524
+ *
31525
+ * A branding theme still applies on top — the scheme only selects which base
31526
+ * palette its tokens merge over.
31527
+ */
31528
+ colorScheme?: RevTurbineColorScheme;
30088
31529
  /** React children. */
30089
31530
  children: React__default.ReactNode;
30090
31531
  };
@@ -30103,12 +31544,92 @@ type RevTurbineProviderProps<TUser extends RevTurbineUserContext = RevTurbineUse
30103
31544
  * </RevTurbineProvider>
30104
31545
  * ```
30105
31546
  */
30106
- declare function RevTurbineProvider<TUser extends RevTurbineUserContext = RevTurbineUserContext>({ options, bootstrapPlacements, domCapture, children, }: RevTurbineProviderProps<TUser>): React__default.JSX.Element;
31547
+ declare function RevTurbineProvider<TUser extends RevTurbineUserContext = RevTurbineUserContext, TOptions extends RevTurbineInitInputOptions = RevTurbineInitInputOptions>({ options, bootstrapPlacements, domCapture, colorScheme, children, }: RevTurbineProviderProps<TUser, TOptions>): React__default.JSX.Element;
31548
+
31549
+ /**
31550
+ * Init status — the one surface that is reachable when the SDK is not.
31551
+ *
31552
+ * Plan 233 TASK-2. Every diagnostic the SDK ships (`getPolicy()`,
31553
+ * `getExportedConfig()`, `getTargeting()`, `getTelemetryCounters()`,
31554
+ * `validateUiPathResolvers()`, `explainPlacementDecision()`) is an instance
31555
+ * method, so all of them are unreachable in precisely the failure mode that
31556
+ * matters most: the one where the instance was never created. When init throws,
31557
+ * `useRevTurbine().sdk` is `null` and there is nothing left to ask.
31558
+ *
31559
+ * The provider already caught the error and logged it, but a `console.error` in
31560
+ * an app that renders correctly without us is indistinguishable from silence —
31561
+ * a customer ran dead for 36 hours and found it only by pasting a raw browser
31562
+ * console log. So the status lives on the context value, beside `sdk`, and is
31563
+ * populated exactly when `sdk` is not.
31564
+ */
31565
+ /**
31566
+ * Where initialization was when it failed. Useful because the phases fail for
31567
+ * different reasons: `construct` is almost always malformed options, `theme`
31568
+ * a branding/network problem, `bootstrap` a placement that does not resolve.
31569
+ *
31570
+ * @public
31571
+ */
31572
+ type RevTurbineInitPhase = 'construct' | 'identify' | 'theme' | 'placements' | 'bootstrap';
31573
+ /**
31574
+ * The provider's initialization outcome, readable with no SDK instance.
31575
+ *
31576
+ * `ok: true` with no other fields is the healthy state. On failure every field
31577
+ * is populated — `remediation` is never empty, because a diagnostic that only
31578
+ * restates the error leaves the reader exactly where they started.
31579
+ *
31580
+ * @public
31581
+ */
31582
+ interface RevTurbineInitStatus {
31583
+ /** `false` once initialization has thrown; `true` while healthy. */
31584
+ readonly ok: boolean;
31585
+ /** Which phase threw. Absent while healthy. */
31586
+ readonly phase?: RevTurbineInitPhase;
31587
+ /** The underlying error message, unmodified. Absent while healthy. */
31588
+ readonly message?: string;
31589
+ /** What to actually change, in the caller's own code. Absent while healthy. */
31590
+ readonly remediation?: string;
31591
+ }
31592
+ /** The healthy status. Frozen so a consumer cannot mutate the shared default. */
31593
+ declare const INIT_STATUS_OK: RevTurbineInitStatus;
31594
+ /**
31595
+ * Resolve the remediation for a thrown init error.
31596
+ *
31597
+ * @param message - The error message as thrown.
31598
+ * @returns Actionable guidance. Never empty.
31599
+ * @public
31600
+ */
31601
+ declare function remediationFor(message: string): string;
31602
+ /**
31603
+ * Build the failure status for a thrown init error.
31604
+ *
31605
+ * @param phase - The phase that was running when the error was thrown.
31606
+ * @param error - The thrown value; non-Errors are stringified.
31607
+ * @returns A fully-populated failure status.
31608
+ * @public
31609
+ */
31610
+ declare function initStatusForError(phase: RevTurbineInitPhase, error: unknown): RevTurbineInitStatus;
30107
31611
 
30108
31612
  type RevTurbineContextValue = {
30109
31613
  sdk: RevTurbineCustomerSdk | null;
30110
31614
  isReady: boolean;
30111
31615
  error: string;
31616
+ /**
31617
+ * Initialization outcome, readable even when {@link sdk} is `null`.
31618
+ *
31619
+ * Every other diagnostic the SDK exposes is an instance method, so all of
31620
+ * them are unreachable when init failed — which is the failure that matters
31621
+ * most (plan 233 TASK-2). On failure this carries the phase, the underlying
31622
+ * message, and a non-empty `remediation` naming what to change.
31623
+ */
31624
+ initStatus: RevTurbineInitStatus;
31625
+ /**
31626
+ * The colour scheme currently painting placements — `'light'` or `'dark'`,
31627
+ * with `'system'` already resolved against `prefers-color-scheme`.
31628
+ *
31629
+ * Read-only: set it with the provider's `colorScheme` prop. Changing it
31630
+ * re-renders placements without re-initializing the SDK (plan 233 TASK-6).
31631
+ */
31632
+ colorScheme: 'light' | 'dark';
30112
31633
  /**
30113
31634
  * Update the SDK's user context. Merges the provided fields into the
30114
31635
  * existing context and triggers segment re-evaluation.
@@ -30119,6 +31640,39 @@ type RevTurbineContextValue = {
30119
31640
  };
30120
31641
  declare function useRevTurbine(): RevTurbineContextValue;
30121
31642
 
31643
+ /**
31644
+ * Development-only visual surface for a failed SDK initialization.
31645
+ *
31646
+ * Plan 233 TASK-2. The provider renders this beside `children` when init threw
31647
+ * and the build is not production. It exists because the app renders correctly
31648
+ * without RevTurbine **by design** — a failed init changes nothing a developer
31649
+ * can see, so the only prior signal was one `console.error` line competing with
31650
+ * everything else in the log. That cost a customer 36 hours.
31651
+ *
31652
+ * Deliberately self-contained: inline styles, no theme tokens, no portal. The
31653
+ * theme itself resolves during init, so a diagnostic that depended on it would
31654
+ * be least reliable exactly when it is needed. It must never throw — a crashing
31655
+ * error reporter is worse than none.
31656
+ *
31657
+ * @public
31658
+ */
31659
+ interface InitFailureDiagnosticProps {
31660
+ /** The failed status. Rendering is the caller's decision; this only draws. */
31661
+ status: RevTurbineInitStatus;
31662
+ }
31663
+ /**
31664
+ * Render a development-only banner describing a failed SDK initialization.
31665
+ *
31666
+ * Returns `null` for a healthy status, so the caller can render it
31667
+ * unconditionally in development without branching.
31668
+ *
31669
+ * @public
31670
+ */
31671
+ declare function InitFailureDiagnostic({ status }: InitFailureDiagnosticProps): React__default.JSX.Element | null;
31672
+ declare namespace InitFailureDiagnostic {
31673
+ var displayName: string;
31674
+ }
31675
+
30122
31676
  /**
30123
31677
  * Options for the {@link usePlacement} hook.
30124
31678
  */
@@ -30599,14 +32153,38 @@ type UseSurfaceSlotOptions = {
30599
32153
  acceptedComponentTypes?: readonly RevTurbineComponentType[];
30600
32154
  /** Callback when CTA is clicked. Receives the parsed ui_path. */
30601
32155
  onCtaClick?: (uiPath: PlacementUiPath) => void;
32156
+ /**
32157
+ * Called after the user dismisses the placement (plan 233 TASK-9).
32158
+ *
32159
+ * Fires once per dismissal, after the interaction is recorded.
32160
+ */
32161
+ onDismissed?: () => void;
30602
32162
  /** Custom CSS class for the rendered placement. */
30603
32163
  className?: string;
30604
32164
  /** Custom inline styles for the rendered placement. */
30605
32165
  style?: React__default.CSSProperties;
30606
32166
  };
32167
+ /**
32168
+ * Why a slot is rendering nothing.
32169
+ *
32170
+ * `null` while visible. The distinction matters because a slot that always
32171
+ * renders `fallback` when `!visible` shows its fallback content the instant the
32172
+ * user dismisses — a "ghost" that reappears in place of the thing just closed.
32173
+ * The escalated integration needed three attempts and a MutationObserver to
32174
+ * work around it (plan 233 TASK-9).
32175
+ *
32176
+ * @public
32177
+ */
32178
+ type SurfaceSlotHiddenReason = 'dismissed' | 'no_match' | null;
30607
32179
  type UseSurfaceSlotResult = UsePlacementResult & {
30608
32180
  /** Pre-built React element that renders the placement using the correct slot type. */
30609
32181
  element: React__default.ReactNode;
32182
+ /**
32183
+ * Why nothing is rendering — `'dismissed'`, `'no_match'`, or `null` when
32184
+ * visible. Lets a slot distinguish "the user closed this" from "nothing
32185
+ * matched", which are the same `visible: false` but want opposite UI.
32186
+ */
32187
+ hiddenReason: SurfaceSlotHiddenReason;
30610
32188
  };
30611
32189
  /**
30612
32190
  * Hook that combines `usePlacement` decision loading with automatic
@@ -30742,11 +32320,22 @@ type FixedSurfaceSlotProps = {
30742
32320
  personalization?: PersonalizationContext;
30743
32321
  registry?: PlacementTypeRegistry;
30744
32322
  onCtaClick?: (uiPath: PlacementUiPath) => void;
32323
+ /**
32324
+ * Called after the user dismisses the placement (plan 233 TASK-9).
32325
+ *
32326
+ * `MessageSurfaceSlot` advertised this prop but never fired it — the handler
32327
+ * was built and then discarded. It is wired for both slots now.
32328
+ */
32329
+ onDismissed?: () => void;
30745
32330
  className?: string;
30746
32331
  style?: React__default.CSSProperties;
30747
32332
  /**
30748
- * Content to display when no placement decision matches.
30749
- * Fixed slots always render something — either a placement or the fallback.
32333
+ * Content to display when **no placement matches**.
32334
+ *
32335
+ * NOT shown after the user dismisses. Rendering the fallback on dismissal
32336
+ * puts something back in the space the user just closed — the escalated
32337
+ * integration called it a ghost popup and needed a MutationObserver to
32338
+ * suppress it (plan 233 TASK-9).
30750
32339
  */
30751
32340
  fallback?: React__default.ReactNode;
30752
32341
  };
@@ -30768,7 +32357,7 @@ type FixedSurfaceSlotProps = {
30768
32357
  * />
30769
32358
  * ```
30770
32359
  */
30771
- declare function FixedSurfaceSlot({ id, name, surfaceTemplateIds, metadata, fallback, ...options }: FixedSurfaceSlotProps): React__default.JSX.Element;
32360
+ declare function FixedSurfaceSlot({ id, name, surfaceTemplateIds, metadata, fallback, ...options }: FixedSurfaceSlotProps): React__default.JSX.Element | null;
30772
32361
  declare namespace FixedSurfaceSlot {
30773
32362
  var displayName: string;
30774
32363
  }
@@ -31648,14 +33237,40 @@ interface UseAddonsResult {
31648
33237
  /** React access to the active user's public, segment-eligible add-on catalog. */
31649
33238
  declare function useAddons(): UseAddonsResult;
31650
33239
 
33240
+ /**
33241
+ * Whether a {@link RevTurbineThemeProvider} is already mounted above the caller.
33242
+ *
33243
+ * Used by {@link RevTurbineProvider} to decide whether to mount its own. Exposed
33244
+ * so an app can make the same check — e.g. a design-system wrapper that only
33245
+ * supplies a theme when nothing upstream has.
33246
+ *
33247
+ * @returns `true` when an ancestor mounted a theme provider.
33248
+ * @public
33249
+ */
33250
+ declare function useRevTurbineThemeProviderPresent(): boolean;
31651
33251
  interface RevTurbineThemeProviderProps {
31652
- theme: RevTurbineTheme;
33252
+ /**
33253
+ * Theme tokens. A **partial** theme is fine — every token you omit falls back
33254
+ * to {@link DEFAULT_THEME}, so `{ colors: { primary: '#f00' } }` is a complete,
33255
+ * valid value (plan 233 TASK-4).
33256
+ */
33257
+ theme: RevTurbineThemeInput;
31653
33258
  children: React__default.ReactNode;
31654
33259
  }
31655
33260
  /**
31656
33261
  * Provides the active {@link RevTurbineTheme} to all child SDK components.
31657
33262
  * Typically rendered internally by {@link RevTurbineProvider} — consumers
31658
33263
  * don't need to add this manually.
33264
+ *
33265
+ * The theme is merged over {@link DEFAULT_THEME} here, so
33266
+ * {@link useRevTurbineTheme} always returns a complete theme.
33267
+ *
33268
+ * That merge used to be the caller's job while the prop was typed as a complete
33269
+ * `RevTurbineTheme`, which made a partial theme a runtime crash rather than a
33270
+ * type error: components read `theme.typography.fontSize` and got `undefined`
33271
+ * on a theme that only set colors. `RevTurbineThemeInput` has always documented
33272
+ * itself as "all values are optional — the SDK deep-merges with defaults"; this
33273
+ * is the component honouring that.
31659
33274
  */
31660
33275
  declare function RevTurbineThemeProvider({ theme, children }: RevTurbineThemeProviderProps): React__default.JSX.Element;
31661
33276
  /**
@@ -31664,5 +33279,18 @@ declare function RevTurbineThemeProvider({ theme, children }: RevTurbineThemePro
31664
33279
  */
31665
33280
  declare function useRevTurbineTheme(): RevTurbineTheme;
31666
33281
 
31667
- export { ANALYTICS_ANNOTATION_KINDS, ANALYTICS_DATE_RANGE_FILTER_VALUE_TYPE, ANALYTICS_VALIDATION_CODES, ANALYTICS_VIEW_SCHEMA_VERSION, AccessGateSurfaceSlot, ActivityLevelSchema, AddOnSchema, AddOnVariationSchema, AgentConnectorSlot as AgentConnectorComponent, AgentConnectorSlot, AlertSchema, AnalysisProvenanceSchema, AnalyticsAgentCatalogEntryKindSchema, AnalyticsAgentCatalogEntrySchema, AnalyticsAnalyticalUnitSchema, AnalyticsAnnotationKindSchema, AnalyticsAnnotationMarkerSchema, AnalyticsAnnotationRequestSchema, AnalyticsAnnotationResponseSchema, AnalyticsAnnotationSchema, AnalyticsAnnotationSourceSchema, AnalyticsBlockErrorSchema, AnalyticsBlockResultSchema, AnalyticsCardinalityClassSchema, AnalyticsCatalogAnnotationKindSchema, AnalyticsCatalogConceptSchema, AnalyticsCatalogDeprecationSchema, AnalyticsCatalogDimensionSchema, AnalyticsCatalogMetricSchema, AnalyticsCatalogMetricValidatedSchema, AnalyticsCatalogProvenanceKindSchema, AnalyticsCatalogProvenanceSchema, AnalyticsCatalogSchema, AnalyticsCatalogSearchResultSchema, AnalyticsCatalogSourceSchema, AnalyticsClassificationSchema, AnalyticsCompareDeltaSchema, AnalyticsCompareExperimentSchema, AnalyticsCompareModeSchema, AnalyticsCompareSegmentSchema, AnalyticsCompileResolutionSchema, AnalyticsCoverageSchema, AnalyticsCustomizationCapabilitySchema, AnalyticsCustomizationPolicySchema, AnalyticsDimensionCapabilitySchema, AnalyticsDimensionTypeSchema, AnalyticsFieldTypeSchema, AnalyticsFilterControlSchema, AnalyticsFilterOperatorSchema, AnalyticsFilterStateSchema, AnalyticsFilterValueSchema, AnalyticsFormatSpecSchema, AnalyticsHistoricalModeSchema, AnalyticsMetricAggregationSemanticsSchema, AnalyticsMetricDirectionSchema, AnalyticsMetricStatisticalTypeSchema, AnalyticsPeriodCompareModeSchema, AnalyticsQueryFamilySchema, AnalyticsQueryOverridesSchema, AnalyticsQueryRequestSchema, AnalyticsQueryResponseSchema, AnalyticsRenderCartesianSchema, AnalyticsRenderFunnelSchema, AnalyticsRenderMetricSchema, AnalyticsRenderRecommendationsSchema, AnalyticsRenderSpecSchema, AnalyticsRenderTableSchema, AnalyticsRenderTimelineSchema, AnalyticsResultFieldSchema, AnalyticsResultMetaSchema, AnalyticsResultSchema, AnalyticsSafeChartOptionsSchema, AnalyticsSavedViewSchema, AnalyticsSemanticFilterSchema, AnalyticsSemanticIdSchema, AnalyticsSourceScopeSchema, AnalyticsSuggestedPatchOpSchema, AnalyticsTemplateSummarySchema, AnalyticsTimeGrainSchema, AnalyticsValidationIssueSchema, AnalyticsValidationResultSchema, AnalyticsViewAccessRoleSchema, AnalyticsViewAccessSchema, AnalyticsViewBlockDraftSchema, AnalyticsViewBlockSchema, AnalyticsViewDraftSchema, AnalyticsViewFilterDraftSchema, AnalyticsViewFilterSchema, AnalyticsViewHandoffDraftSchema, AnalyticsViewHandoffSchema, AnalyticsViewLayoutSchema, AnalyticsViewQuerySchema, AnalyticsViewRevisionSchema, AnalyticsViewSchema, AnalyticsViewVisibilitySchema, AnalyticsWarningSchema, AnchorFields, AuditActorTypeSchema, AuditEventSchema, AuthAccountSchema, AuthApiKeySchema, AuthInvitationSchema, AuthMemberSchema, AuthOrganizationSchema, AuthPasskeySchema, AuthSessionSchema, AuthSsoProviderSchema, AuthTwoFactorSchema, AuthUserSchema, AuthVerificationSchema, BUILT_IN_TEMPLATE_COMPONENT_TYPES, BannerSlot as BannerComponent, BannerFrame, BannerSlot, BannerSurface, BillingCadenceSchema, BillingHealthStatusSchema, BrandingConfigSchema, BrowserRuntime, BrowserStorage, ButtonSlot as ButtonComponent, ButtonSlot, ButtonSurface, CONTROL_PLANE_EVENT_NAMES, CONTROL_PLANE_EVENT_SOURCE, CONTROL_PLANE_SOURCE_KEY, CapEnforcer, CapPeriodSchema$1 as CapPeriodSchema, ChangeLogActionSchema, ChangeLogEntrySchema, CliSlot as CliComponent, CliSlot, ClientContextSchema, ClientSafe, CohortMonthSchema, CompactCircularGauge, ComponentTypeSchema, ContentPayloadSegmentEntrySchema, ContentPlacementPayloadSchema, ContentPromotionSchema, ContentUiPathSchema, ContextVisibility, ControlPlaneEventSourceSchema, ControlPlaneEventTypeSchema, ControlPlaneSemanticEventSchema, CreditBalanceSlot as CreditBalanceComponent, CreditBalanceSlot, CtaActionTypeSchema, CtaObjectSchema, CtaPathSchema, CtaPathTypeSchema, CtaResolverRegistry, CurrencySchema, CustomerOverrideDurationSchema, CustomerOverrideSchema, CustomerOverrideStatusSchema, CustomerOverrideTypeSchema, CustomerSchema, DEFAULT_ANALYTICS_RETENTION_DAYS, DEFAULT_BRANDING, DEFAULT_TEMPLATE_COMPONENT_TYPES, DEFAULT_THEME, DEPRECATED_EVENT_NAMES, DOGFOOD_CLIENT_EVENT_NAMES, DataClassification, DecisionEngine, DecisionOnly, DefaultTemplateIdsSchema, DescriptionField, DetectorRequirementsSchema, DimensionCategorySchema, DimensionSourceTypeSchema, DiscountTypeSchema, DomainProviderRegistry, DriftReportSchema, ENTITLEMENT_STATUS_VALUES, EVENT_PREFIX_FAMILIES, EmailPreviewSlot as EmailPreviewComponent, EmailPreviewSlot, EnforcementActionSchema, EnforcementModeSchema, EngagementArea, EntitlementCheckResultSchema, EntitlementGate, EntitlementGrantSchema, EntitlementGrantSetSchema, EntitlementGrantSourceSchema, EntitlementGrantStatusSchema, EntitlementRulePeriodUnitSchema, EntitlementRuleSchema, EntitlementRuleTargetKindSchema, EntitlementRuleTargetSchema, EntitlementRuleValidatedSchema, EntitlementRuleVariantSchema, EntitlementSchema, EntitlementStatusSchema, EntitlementTypeSchema, EnvironmentPromotionRequestSchema, EnvironmentSchema, EnvironmentStatusSchema, EventEnvelopeSchema, EventIngestBatchSchema, EventPrefixFamilySchema, EventSearchParamsSchema, EventSourceSchema, EventStabilitySchema, EventSurfaceSchema, EventTaxonomyEntrySchema, EventTaxonomySchema, EvidenceRequirementSchema, ExperimentAnalysisConfigSchema, ExperimentAnalysisConfigVersionError, ExperimentAnalysisDefinitionSchema, ExperimentAnalysisResultRecordSchema, ExperimentAnalysisResultSchema, ExperimentAssignmentFactSchema, ExperimentAssignmentSourceSchema, ExperimentDecisionFindingCodeSchema, ExperimentDecisionPolicySchema, ExperimentDecisionPolicyVersionError, ExperimentDecisionRecordSchema, ExperimentDecisionTypeSchema, ExperimentEvidenceSchema, ExperimentEvidenceSnapshotSchema, ExperimentHealthSchema, ExperimentMetricEvidencePlanSchema, ExperimentMetricResultSchema, ExperimentSchema, ExperimentStatusSchema, ExperimentTypeSchema, ExperimentVariantSchema, ExperimentVariantTargetSchema, RevTurbineConfigPlacementItemSchema as ExportedConfigPlacementItemSchema, RevTurbineConfigSchema as ExportedConfigSchema, RevTurbineConfigSegmentsItemPredicatesItemSchema as ExportedConfigSegmentsItemPredicatesItemSchema, RevTurbineConfigSegmentsItemSchema as ExportedConfigSegmentsItemSchema, RevTurbineConfigUiPathActionTypeSchema as ExportedConfigUiPathActionTypeSchema, FAMILY_RENDER_COMPATIBILITY, FIXED_BANNER_TEMPLATE_IDS, FIXED_SURFACE_TEMPLATE_IDS, FIXTURE_ANALYTICS_CATALOG, FeatureFlagSchema, FeatureFlagValueSchema, FeatureGateTriggerPayloadSchema, FieldDefinitionSchema, FixedSurfaceSlot, FlagValueTypeSchema, FreeTrialRuleSchema, FreeTrialSettingsSchema, FullPageSlot as FullPageComponent, FullPageSlot, FunnelStepSchema, GATED_SURFACE_TEMPLATE_IDS, GENERAL_BANNER_TEMPLATE_IDS, GENERAL_MODAL_TEMPLATE_IDS, GENERAL_TOAST_TEMPLATE_IDS, AccessGateSurfaceSlot as Gate, GrowthSignalBundleSchema, GrowthSignalPointSchema, GrowthSignalSeriesSchema, HANDLE_PATTERN, HandleField, INGEST_WRITE_SCOPE, IdField, IdentityKind, IdentitySchema, InMemoryStorage, InPageSlot as InPageComponent, InPageSlot, InPageSurface, IngestedEventSchema, InlineCardPlacement, InlineEmbedSlot as InlineEmbedComponent, InlineEmbedSlot, InteractionTracker, InvitationStatusSchema, KpiAggregateSchema, LocalizedTextSchema, MESSAGE_SURFACE_TEMPLATE_IDS, McpConfigSchema, McpTokenScopeSchema, MessageBlockContentSchema, MessageBlockRecordSchema, MessageBlockSchema, MessageSchema, MessageSurfaceSlot, MetadataField, MeteringConfigSchema, ModalSlot as ModalComponent, ModalFrame, ModalSlot, ModalSurface, NameField, NullableDatetimeField, ObservationMaturitySchema, OnboardingChecklistSchema, OnboardingStateSchema, OpportunityCandidateSchema, OpportunityEvidenceSchema, OpportunityInterpretationSchema, OptimizationSuggestionSchema, OrgMemberRoleSchema, PERSISTED_SCHEMA_FACET_EXEMPTIONS, PLATFORM_EMITTED_EVENT_NAMES, PLATFORM_EVENT_TAXONOMY, PLAYBOOK_FORMAT_VERSION, PaginatedResponseSchema, PaginationParamsSchema, PaymentTriggerPayloadSchema, PermissionActionSchema, PermissionResourceSchema, PermissionSchema, PersonalizationTokenSchema, Placement, PlacementCapRuleSchema, PlacementCategorySchema, PlacementController, PlacementDecisionInspector, PlacementDecisionOutputSchema, PlacementPayloadSchema, PlacementPerformanceRowSchema, PlacementRenderer, PlacementSchema, PlacementSettingsCapRuleGroupItemSchema, PlacementSettingsCapRuleSchema, PlacementSettingsCapStateSchema, PlacementSettingsSchema, PlacementTestModeSchema, PlacementTestUserIdentifierTypeSchema, PlacementTestUserSchema, PlacementTypeRegistry, PlacementWarningCodeSchema, PlacementWarningSchema, PlanSchema, PlanVariationSchema, PlanVisibilitySchema, PlaybookBodySchema, PlaybookHeaderSchema, PlaybookObjectSchema, PlaybookSchema, PlaybookStrictSchema, PlaybookVersionDeployResultSchema, PlaybookVersionDiffSchema, PlaybookVersionEntrySummarySchema, PlaybookVersionSchema, PlaybookVersionStatusSchema, PresentationOutcomeSchema, PriceSourceSchema, PricingModelSchema, PromotionSchema, PromotionStatusSchema, ProviderAvailabilitySchema, ProviderBindingRefSchema, ProviderCapabilitySchema, ProviderConnectionSchema, ProviderProvenanceSchema, PushPreviewSlot as PushPreviewComponent, PushPreviewSlot, QuotaMeterSlot as QuotaMeterComponent, QuotaMeterFrame, QuotaMeterSlot, RECOGNIZED_UPDATE_KEYS, ROLE_PERMISSIONS, ROLE_RANK, SurfaceSlotComponent as RTSlot, ApiError as RevTurbineApiError, RevTurbineConfigAddonVariationsItemSchema, RevTurbineConfigAddonsItemSchema, RevTurbineConfigEnforcementDefaultsItemSchema, RevTurbineConfigEntitlementRulesItemSchema, RevTurbineConfigEntitlementsItemSchema, RevTurbineConfigMeterBindingsItemSchema, RevTurbineConfigPeriodCapSchema, RevTurbineConfigPersonalizationTokensItemSchema, RevTurbineConfigPlacementCategorySchema, RevTurbineConfigPlacementItemSchema, RevTurbineConfigPlacementPayloadItemSchema, RevTurbineConfigPlacementSettingsItemSchema, RevTurbineConfigPlacementSlotsItemSchema, RevTurbineConfigPlacementTriggerSchema, RevTurbineConfigPlanVariationsItemSchema, RevTurbineConfigPlansItemSchema, RevTurbineConfigSchema, RevTurbineConfigSeatTypesItemSchema, RevTurbineConfigSegmentDimensionsItemSchema, RevTurbineConfigSegmentsItemPredicatesItemSchema, RevTurbineConfigSegmentsItemSchema, RevTurbineConfigSlotConfigsItemSchema, RevTurbineConfigStudioCtaConfigSchema, RevTurbineConfigStudioPayloadCapsSchema, RevTurbineConfigStudioPayloadSchema, RevTurbineConfigStudioPayloadSurfaceSchema, RevTurbineConfigStudioPayloadTargetSchema, RevTurbineConfigSurfaceTemplatesItemFieldsItemSchema, RevTurbineConfigSurfaceTemplatesItemSchema, RevTurbineConfigUiPathActionTypeSchema, RevTurbineCustomerSdk, RevTurbineProvider, RevTurbineServer, RevTurbineThemeProvider, RevenueMetricSchema, ReverseTrialRuleSchema, ReverseTrialSettingsSchema, ReverseTrialStartPolicySchema, RoleSchema, RuleVisibilitySchema, RuntimeMode, RuntimePromotionSnapshotSchema, SDK_AUTOMATIC_NON_EMITTED_NAMES, SDK_CLIENT_EVENT_NAMES, SDK_META_EVENT_NAMES, SEMANTIC_ID_PATTERN, SERVER_TRAITS_DOMAIN, SchemaContext, SchemaExposure, SchemaPersistence, SchemaSource, SdkConfigShapeSchema, SdkMetaEventSchema, SdkMetaEventTypeSchema, SdkMetaIngestBatchSchema, SdkSession, SeatTypeSchema, SegmentDimensionSchema, SegmentSchema, SegmentValueSchema, SemanticEventSchema, ServerEvaluationPayloadDecisionsItemSchema, ServerEvaluationPayloadEntitlementsValueSchema, ServerEvaluationPayloadSchema, ServerEvaluationPayloadTrialStatusSchema, ServerEvaluationPayloadUserContextSchema, ServerEvaluationPayloadUserSchema, ServerOnly, ServerUserContextProvider, SeveritySchema, SurfaceSlotComponent as Slot, SmsPreviewSlot as SmsPreviewComponent, SmsPreviewSlot, StripeIntegrationConfigSchema, StripePriceBillingPeriodSchema, StripePriceMockBillingPeriodSchema, StripePriceMockSchema, StripePriceSchema, StudioSurfaceTypeSchema, SuggestionSeveritySchema, SupersessionReasonSchema, SupersessionRecordSchema, SurfaceSlotComponent, SurfaceSlotSchema, SurfaceTemplateSchema, SurfaceTypeCapRuleSchema, SurfaceTypeSchema, TelemetryScope, TelemetryScopeContext, TemplateFieldTypeSchema, TenantConfigSchema, TenantIdField, TenantSchema, TenantStatusSchema, ThemeSchema, TimestampFields, ToastSlot as ToastComponent, ToastSlot, ToastSurface, TooltipSlot as TooltipComponent, TooltipSlot, Track, TrackEventSchema, TrackIngestBatchSchema, TrackOnView, TreatmentInteractionInputSchema, TreatmentInteractionTypeSchema, TrendFeaturesSchema, TrialEligibilityScopeSchema, TrialInstanceSchema, TrialLimitPolicySchema, TrialStatusSchema, TrialTriggerPayloadSchema, TriggerEventTypeSchema, UiPreferenceSchema, UnsupportedExperimentAssignmentUnitError, UsageAllocationSchema$1 as UsageAllocationSchema, UsageEnforcementSettingsSchema, UsagePeriodScopeSchema, UsageTriggerPayloadSchema, UserContextSchema, UserInstanceContextSchema, UserPlanContextSchema, UserProfile, UserRoleSchema, UserTrialStatusSchema, UserUsageEntrySchema, VIEW_ELEMENT_ID_PATTERN, VariantStatisticalSummarySchema, VersionFields, WarGameCapabilityRequirementsSchema, WarGameCategorySchema, WarGameGradeSchema, WarGameOracleSchema, WarGameQualificationLevelSchema, WarGameScenarioSchema, WebhookEventLogSchema, WebhookEventSourceSchema, WebhookEventStatusSchema, adaptExperimentVersionToBucketer, analyticsPaths, analyticsViewPaths, applyValueMaps, assertExperimentAnalysisConfigUpdateAllowed, assertExperimentDecisionPolicyUpdateAllowed, bridgeUiPathResolversIntoRegistry, bucketSubject, buildAgentCatalogProjection, buildControlPlaneEvent, categorizeActionError, changelogPaths, clearPersistedTheme, collectAssignmentFactDeclarations, collectPersistedSchemas, collectVersionedConfigEntities, compileAnalyticsDraft, composeEffectiveExperimentContext, configPaths, contentPaths, createAnalyticsProvider, createBasicExperimentProvider, createChainedPlacementRequest, createCompositeExperimentProvider, createCustomEndpointRuntimeConfig, createEntitlementPlacementRequest, createFixtureAnalyticsCatalog, createHydrationProviders, createInMemoryAnalyticsCatalog, createLocalRuntimeConfig, createNativeExperimentAssignmentProvider, createPostHogAnalyticsProvider, createPostHogIntegration, createRevTurbineApiClient, createSemanticEvent, createServerRuntimeConfig, createSlotPlacementRequest, createStaticPlacementContentLookupProvider, createStaticPlacementResolver, createStaticProviders, createStrictLocalRuntimeConfig, createTreatmentInteraction, customerPaths, defaultRenderForQuery, defineUiPathResolvers, deriveLocalTrialStatusFromInstance, derivePlacementPersonalizationTokens, deriveReverseTrialGrants, dispatchCtaClick, entitlementPaths, entitlementResultDenies, environmentPaths, evaluateSegments, evaluateTrialStatus, eventPaths, experimentPaths, filterExternalSchemas, filterPersistedSchemas, findActiveTrialInstance, findLatestStartedTrialInstance, formatCurrencyMinorUnits, getDefaultCtaResolverRegistry, getDefaultRegistry, getFieldClassification, getFieldVisibility, getObjectFieldClassifications, getObjectFieldVisibilities, getSchemaClassification, getSchemaDeprecation, getSchemaExposure, getSchemaFacets, getSchemaIdentity, getSchemaPersistence, initRevTurbine, isAnalyticsDateRangeFilterValue, isBrowser, isExperimentAssignmentFactDeclaration, isLegacyDateRangeArray, isServer, isVersionedConfigEntity, loadTheme, makeAnchor, mergeTheme, mintedIdentity, namedIdentity, normalizeConfigArtifactOrThrow, normalizeLegacyConfig, parsePlaybook, parsePromotion, parseUiPath, placementPaths, planPaths, playbookVersionPaths, projectClientSafe, promotionPaths, registerBuiltinSlotTypes, registerBuiltinSnoozeResolver, registerCtaResolver, registerServerActionResolvers, requireSchemaFacets, resetDefaultCtaResolverRegistry, resetDefaultRegistry, resolveBranding, resolveComponentType, resolveContent, resolveLocalPlaybook, resolvePayloadForUser, resolvePayloadForUserWithProvider, resolvePersistentStorage, resolveSessionStorage, resolveTokens, schemaDeprecation, schemaFacets, scopesSubsetOfRole, searchAgentCatalog, segmentPaths, settingsPaths, tenantPaths, toCreateSchema, toWritableSchema, trialPaths, uiPreferencePaths, unregisterCtaResolver, useAddons, useCan, useEntitlement, useGatedAction, usePlacement, usePlacementPersonalization, usePlans, useRevTurbine, useRevTurbineTheme, useSurfaceSlot, useTelemetryProps, useTelemetryScope, useTrack, useTrackedAction, useUsageSnapshot, userContextPaths, validateAnalyticsQuery, validateAnalyticsView, validatePlacementThresholdWarnings };
31668
- export type { AccessGateCheck, AccessGateSurfaceSlotProps, ActionErrorCategory, ActivityLevel, AdapterBaseOptions, AddOn, AddOnVariation, AgentConnectorSlotProps as AgentConnectorComponentProps, AgentConnectorSlotProps, Alert, AnalysisProvenance, AnalyticsAgentCatalogEntry, AnalyticsAgentCatalogEntryKind, AnalyticsAnalyticalUnit, AnalyticsAnnotation, AnalyticsAnnotationKind, AnalyticsAnnotationMarker, AnalyticsAnnotationRequest, AnalyticsAnnotationResponse, AnalyticsAnnotationSource, AnalyticsBlockError, AnalyticsBlockResult, AnalyticsCardinalityClass, AnalyticsCatalog, AnalyticsCatalogAnnotationKind, AnalyticsCatalogConcept, AnalyticsCatalogData, AnalyticsCatalogDeprecation, AnalyticsCatalogDimension, AnalyticsCatalogMetric, AnalyticsCatalogMetricValidated, AnalyticsCatalogProvenance, AnalyticsCatalogProvenanceKind, AnalyticsCatalogSearchResult, AnalyticsCatalogSource, AnalyticsCatalogView, AnalyticsClassification, AnalyticsCompareDelta, AnalyticsCompareExperiment, AnalyticsCompareMode, AnalyticsCompareSegment, AnalyticsCompileOutput, AnalyticsCompileResolution, AnalyticsCoverage, AnalyticsCustomizationCapability, AnalyticsCustomizationPolicy, AnalyticsDateRangeFilterValue, AnalyticsDimensionCapability, AnalyticsDimensionType, AnalyticsEventHandler, AnalyticsEventProperties, AnalyticsEventTransformer, AnalyticsFieldType, AnalyticsFilterControl, AnalyticsFilterOperator, AnalyticsFilterState, AnalyticsFilterValue, AnalyticsFormatSpec, AnalyticsHistoricalMode, AnalyticsMetricAggregationSemantics, AnalyticsMetricDirection, AnalyticsMetricStatisticalType, AnalyticsPeriodCompareMode, AnalyticsProviderOptions, AnalyticsQueryFamily, AnalyticsQueryOverrides, AnalyticsQueryRequest, AnalyticsQueryResponse, AnalyticsRenderCartesian, AnalyticsRenderFunnel, AnalyticsRenderMetric, AnalyticsRenderRecommendations, AnalyticsRenderSpec, AnalyticsRenderTable, AnalyticsRenderTimeline, AnalyticsResult, AnalyticsResultField, AnalyticsResultMeta, AnalyticsSafeChartOptions, AnalyticsSavedView, AnalyticsSemanticFilter, AnalyticsSemanticId, AnalyticsSourceScope, AnalyticsSuggestedPatchOp, AnalyticsTemplateSummary, AnalyticsTimeGrain, AnalyticsValidationCode, AnalyticsValidationIssue, AnalyticsValidationResult, AnalyticsView, AnalyticsViewAccess, AnalyticsViewAccessRole, AnalyticsViewBlock, AnalyticsViewBlockDraft, AnalyticsViewDraft, AnalyticsViewFilter, AnalyticsViewFilterDraft, AnalyticsViewHandoff, AnalyticsViewHandoffDraft, AnalyticsViewLayout, AnalyticsViewQuery, AnalyticsViewRevision, AnalyticsViewVisibility, AnalyticsWarning, AnyDomainProvider, AssignmentFactUnit, AuditActorType, AuditEvent, AuthAccount, AuthApiKey, AuthInvitation, AuthMember, AuthOrganization, AuthPasskey, AuthSession, AuthSsoProvider, AuthTwoFactor, AuthUser, AuthVerification, BannerSlotProps as BannerComponentProps, BannerFrameProps, BannerSlotProps, BannerSurfaceProps, BasicBucketerExperiment, BasicBucketerOptions, BillingCadence, BillingHealthStatus, BrandingConfig, BrandingResolutionInput, BrandingSource, BrowserRuntimeOptions, ButtonSlotProps as ButtonComponentProps, ButtonSlotProps, ButtonSurfaceProps, CanonicalExperimentAllocation, CapEnforcementResult, CapPeriod, ChangeListener, ChangeLogAction, ChangeLogEntry, CliSlotProps as CliComponentProps, CliSlotProps, ClientContext, CohortMonth, CompactCircularGaugeProps, CompileAnalyticsDraftOptions, ComponentType, CompositeExperimentProviderOptions, ConfigArtifact, ContentPayloadSegmentEntry, ContentPlacementPayload, ContentPromotion, ContentProvider, ContentProviderState, ContentUiPath, ControlPlaneEmitInput, ControlPlaneEventSource, ControlPlaneEventType, ControlPlaneSemanticEvent, CreditBalanceSlotProps as CreditBalanceComponentProps, CreditBalanceSlotProps, CtaActionType, CtaHandler, CtaHandlerMap, CtaHandlerProvider, CtaHandlerProviderState, CtaObject, CtaPath, CtaPathType, CtaResolver, CtaResolverContext, Currency, Customer, CustomerOverride, CustomerOverrideDuration, CustomerOverrideStatus, CustomerOverrideType, DataClassificationValue, DecisionEngineOptions, DefaultTemplateIds, DeriveTrialStatusInput, DetectorRequirements, DimensionCategory, DimensionSourceType, DiscountType, DomainProvider, DomainProviderName, DomainProviderResolutionInput, DriftReport, EffectiveUserContextResolution, EligibleAddon, EligiblePlan, EligiblePrice, EnforcementAction, EnforcementMode, EngagementAreaProps, Entitlement, EntitlementCheckResult$1 as EntitlementCheckResult, EntitlementGateOptions, EntitlementGateState, EntitlementGrant$1 as EntitlementGrant, EntitlementGrantSet$1 as EntitlementGrantSet, EntitlementGrantSource, EntitlementGrantStatus, EntitlementProvider, EntitlementProviderState, EntitlementResult, EntitlementRule, EntitlementRulePeriodUnit, EntitlementRuleSnapshot, EntitlementRuleTarget, EntitlementRuleTargetKind$1 as EntitlementRuleTargetKind, EntitlementRuleValidated, EntitlementRuleVariant, EntitlementStatus, EntitlementType, EntitlementUsageEntry, Environment, EnvironmentPromotionRequest, EnvironmentStatus, EvaluateTrialStatusInput, EvaluateTrialStatusResult, EvaluationContext, EventConsumer, EventConsumerProvider, EventConsumerProviderState, EventEnvelope, EventIngestBatch, EventPrefixFamily, EventSearchParams, EventSource, EventStability, EventSurface, EventTaxonomy, EventTaxonomyEntry, EvidenceRequirement, Exact, Experiment, ExperimentAnalysisConfig, ExperimentAnalysisDefinition, ExperimentAnalysisResult, ExperimentAnalysisResultRecord, ExperimentAssignmentFact, ExperimentAssignmentFactDeclaration, ExperimentAssignmentFactMetadataCarrier, ExperimentAssignmentProvider, ExperimentAssignmentSource, ExperimentDecisionFindingCode, ExperimentDecisionPolicy, ExperimentDecisionRecord, ExperimentDecisionType, ExperimentEvidence, ExperimentEvidenceSnapshot, ExperimentHealth, ExperimentMetricEvidencePlan, ExperimentMetricResult, ExperimentProvider, ExperimentProviderState, ExperimentStatus, ExperimentType, ExperimentVariant, ExperimentVariantNonAssignmentReason, ExperimentVariantSelection, ExperimentVariantTarget, Playbook as ExportedConfig, ExportedConfigPlacementItem, ExportedConfigProvider, ExportedConfigSegmentsItem, ExportedConfigSegmentsItemPredicatesItem, ExportedConfigUiPathActionType, FeatureFlag, FeatureFlagValue, FeatureGateTriggerPayload, FieldDefinition, FixedSurfaceSlotProps, FlagValueType, FreeTrialRule, FreeTrialSettings, FullPageSlotProps as FullPageComponentProps, FullPageSlotProps, FunnelStep, AccessGateSurfaceSlotProps as GateProps, GatedAction, GrowthSignalBundle, GrowthSignalPoint, GrowthSignalSeries, IdentifyContextInput, Identity, IdentityDeclaration, InPageSlotProps as InPageComponentProps, InPageSlotProps, InPageSurfaceProps, IngestWriteScope, IngestedEvent, InlineCardPlacementProps, InlineEmbedSlotProps as InlineEmbedComponentProps, InlineEmbedSlotProps, InteractionState, InvitationStatus, JsonObject, JsonValue, KpiAggregate, LegacyConfigTargetDefaults, LocalPlacementDataset, LocalPlacementEntry, LocalPlacementPayload, LocalPlacementSurface, LocalizedText, McpConfig, McpTokenScope, Message, MessageBlock, MessageBlockContent, MessageBlockRecord, MessageBlockSnapshot, MessageSurfaceSlotProps, MessageSurfaceSlotRef, MessageTriggerType, MeteringConfig, ModalSlotProps as ModalComponentProps, ModalFrameProps, ModalLayout, ModalSlotProps, ModalSurfaceProps, NativeExperimentAssignmentOptions, NativeExperimentAssignmentUnit, ObservationMaturity, OnboardingChecklist, OnboardingState, OpportunityCandidate, OpportunityEvidence, OpportunityInterpretation, OptimizationSuggestion, OrgMemberRole, PaginationParams, PaymentTriggerPayload, Permission, PermissionAction, PermissionResource, PersonalizationContext, PersonalizationToken, PlacementCapPolicy, PlacementCapRule, PlacementCategory, PlacementContentFields, PlacementContentLookupProvider, PlacementControllerOptions, PlacementControllerState, PlacementCustomCode, PlacementDecisionInspectorProps, PlacementDecisionOutput, PlacementEmittedThresholdLookup, PlacementOutput, PlacementPayload, PlacementPayloadSnapshot, PlacementPerformanceRow, PlacementPreviewConfig, PlacementPromotion, PlacementProps, PlacementRendererProps, PlacementSettings, PlacementSettingsCapRule, PlacementSettingsCapRuleGroupItem, PlacementSettingsCapState, PlacementSlotProps, PlacementSlotType, PlacementTestMode, PlacementTestUser, PlacementTestUserIdentifierType, PlacementUiPath, PlacementUiPathActionType, PlacementWarning, PlacementWarningCode, Plan, PlanProvider, PlanProviderState, PlanRuleSnapshot, PlanVariation, PlanVisibility, Playbook, PlaybookBody, PlaybookHeader, PlaybookObject, PlaybookStrict, PlaybookVersion, PlaybookVersionDeployResult, PlaybookVersionDiff, PlaybookVersionEntrySummary, PlaybookVersionStatus, PostHogAnalyticsProviderOptions, PostHogIntegrationOptions, PostHogLike, PresentationCapState, PresentationOutcome, PriceSource, PricingModel, Promotion, PromotionStatus, ProviderAvailability, ProviderBindingRef, ProviderCapability, ProviderConnection, ProviderProvenance, QuotaMeterSlotProps as QuotaMeterComponentProps, QuotaMeterFrameProps, QuotaMeterSlotProps, SurfaceSlotComponentProps as RTSlotProps, RegisterPlacementSlotTypeOptions, ResolvedBranding, ResolvedContent, ResolvedDomainType, ResolvedPayload, ResolvedProviderContext, RevTurbineApiClient, RevTurbineApiClientConfig, paths as RevTurbineApiPaths, RevTurbineBootstrapDecisionInput, RevTurbineChainedPlacementRequestOptions, RevTurbineClientSessionProvider, RevTurbineComponentType, Playbook as RevTurbineConfig, RevTurbineConfigAddonVariationsItem, RevTurbineConfigAddonsItem, RevTurbineConfigEnforcementDefaultsItem, RevTurbineConfigEntitlementRulesItem, RevTurbineConfigEntitlementsItem, RevTurbineConfigMeterBindingsItem, RevTurbineConfigPeriodCap, RevTurbineConfigPersonalizationTokensItem, RevTurbineConfigPlacementCategory, RevTurbineConfigPlacementItem, RevTurbineConfigPlacementPayloadItem, RevTurbineConfigPlacementSettingsItem, RevTurbineConfigPlacementSlotsItem, RevTurbineConfigPlacementTrigger, RevTurbineConfigPlanVariationsItem, RevTurbineConfigPlansItem, RevTurbineConfigProvider, RevTurbineConfigSeatTypesItem, RevTurbineConfigSegmentDimensionsItem, RevTurbineConfigSegmentsItem, RevTurbineConfigSegmentsItemPredicatesItem, RevTurbineConfigSlotConfigsItem, RevTurbineConfigStudioCtaConfig, RevTurbineConfigStudioPayload, RevTurbineConfigStudioPayloadCaps, RevTurbineConfigStudioPayloadSurface, RevTurbineConfigStudioPayloadTarget, RevTurbineConfigSurfaceTemplatesItem, RevTurbineConfigSurfaceTemplatesItemFieldsItem, RevTurbineConfigUiPathActionType, RevTurbineContextMode, RevTurbineContextPolicy, RevTurbineDecisionContent, RevTurbineEndpointOverrides, RevTurbineEntitlementContext, RevTurbineEntitlementPlacementRequestOptions, RevTurbineEntitlementRuleEvaluation, RevTurbineEventBatchingOptions, RevTurbineEventEnvelope, RevTurbineEventOptions, RevTurbineGateResult, RevTurbineImpressionMetadata, RevTurbineInitBaseOptions, RevTurbineInitInputOptions, RevTurbineInitOptions, RevTurbineInitOptionsStrict, RevTurbineInitWithProviderOptions, RevTurbineLocalOnlyMinimalInitOptions, RevTurbineLocalRuntimeData, RevTurbineLocalRuntimeOptions, RevTurbineLocalRuntimeResolvers, RevTurbineMeterUsageOverride, RevTurbinePageContext, RevTurbinePersonalizationTokens, RevTurbinePlacementBehaviorFlags, RevTurbinePlacementConfig, RevTurbinePlacementContent, RevTurbinePlacementDecision, RevTurbinePlacementDecisionExplanation, RevTurbinePlacementDecisionInput, RevTurbinePlacementDecisionOverrides, RevTurbinePlacementPayloadEvaluation, RevTurbinePlacementRecord, RevTurbinePlacementRequestConfig, RevTurbinePlacementRuleEvaluation, RevTurbinePlacementTypeEntity, RevTurbinePolicySnapshot, RevTurbineProviderFactory, RevTurbineProviderFailureSlotBehavior, RevTurbineProviderProps, RevTurbineRequiredUiPathResolvers, RevTurbineRuntimeMode, RevTurbineSdkMode, RevTurbineSdkProvider, RevTurbineSegmentEvaluation, RevTurbineSegmentPredicateEvaluation, RevTurbineSemanticEvent, RevTurbineServerOptions, RevTurbineSlotPlacementRequestOptions, RevTurbineStorage, RevTurbineSurfaceSlotConfig, RevTurbineSurfaceType, RevTurbineTargeting, RevTurbineTelemetryOptions, RevTurbineTheme, RevTurbineThemeColors, RevTurbineThemeInput, RevTurbineThemeShadows, RevTurbineThemeShape, RevTurbineThemeTypography, RevTurbineTreatmentInteractionInput, RevTurbineTreatmentInteractionOptions, RevTurbineTreatmentInteractionType, RevTurbineTrialContext, RevTurbineTriggerEvent, RevTurbineTriggerPayload, RevTurbineUiPathActionTypes, RevTurbineUiPathResolver, RevTurbineUiPathResolverMap, RevTurbineUiPathResolverValidationIssue, RevTurbineUiPathResolverValidationOptions, RevTurbineUiPathResolverValidationReport, RevTurbineUpdateInput, RevTurbineUsageSnapshot, RevTurbineUsageSnapshotEntry, RevTurbineUserContext, RevenueMetric, ReverseTrialRule, ReverseTrialSettings, ReverseTrialStartPolicy, Role, RuleProvider, RuleProviderState, RuleVisibility, RuntimePromotionSnapshot, SchemaDeprecation, SchemaFacetOptions, SchemaFacets, SdkConfigShape, SdkEventProperties, SdkMetaEvent, SdkMetaEventType, SdkMetaIngestBatch, SdkMetadata, SdkSessionOptions, SdkTraits, SeatType, Segment, SegmentDimension, SegmentProvider, SegmentProviderState, SegmentValue, SemanticEvent, ServerActionContext, ServerActionHandler, ServerActionMap, ServerActionResult, ServerEntitlementResult, ServerEvaluationHydrationPayload, ServerEvaluationPayload, ServerEvaluationPayloadDecisionsItem, ServerEvaluationPayloadEntitlementsValue, ServerEvaluationPayloadTrialStatus, ServerEvaluationPayloadUser, ServerEvaluationPayloadUserContext, ServerEvaluationRequest, ServerPlacementDecision, ServerPlacementRequest, ServerUserContext, ServerUserContextSnapshot, Severity, SurfaceSlotComponentProps as SlotProps, StaticPlacementResolverOptions, StripeIntegrationConfig, StripePrice, StripePriceBillingPeriod, StripePriceMock, StripePriceMockBillingPeriod, StudioSurfaceType, SuggestionSeverity, SupersessionReason, SupersessionRecord, SuppressionResult, SurfaceSlot, SurfaceSlotCategory, SurfaceSlotComponentProps, SurfaceTemplate, SurfaceType, SurfaceTypeCapRule, TelemetryConsent, TelemetryScopeProps, TelemetryScopeValue, TemplateFieldType, Tenant, TenantConfig, TenantStatus, Theme, ThemeLoaderOptions, ThemeProvider, ThemeProviderState, ToastSlotProps as ToastComponentProps, ToastSlotProps, ToastSurfaceProps, TooltipSlotProps as TooltipComponentProps, TooltipSlotProps, TrackEvent, TrackFn, TrackIngestBatch, TrackOnViewProps, TrackOptions, TrackProps, TrackPurpose, TrackedAction, Trait, TraitsNamespace, TraitsProvider, TraitsProviderState, TreatmentInteractionInput, TreatmentInteractionType, TrendFeatures, TrialEligibilityScope, TrialInstance, TrialLimitPolicy, TrialStatus, TrialStatusProvider, TrialStatusTraits, TrialTriggerPayload, TriggerEventType, UiPreference, UnvalidatedConfigArtifact, UsageAllocation, UsageBalances, UsageEnforcementSettings, UsagePeriodScope, UsageTraits, UsageTraitsProvider, UsageTriggerPayload, UseAddonsResult, UseCanResult, UseEntitlementOptions, UseEntitlementResult, UsePlacementOptions, UsePlacementPersonalizationOptions, UsePlacementResult, UsePlansResult, UseSurfaceSlotOptions, UseSurfaceSlotResult, UseUsageSnapshotResult, UserContext, UserContextInput, UserInstanceContext, UserPlanContext, UserProfileProps, UserRole, UserTargetingContext, UserTrialStatus, UserUsageEntry, ValidateAnalyticsViewOptions, VariantStatisticalSummary, WarGameCapabilityRequirements, WarGameCategory, WarGameGrade, WarGameOracle, WarGameQualificationLevel, WarGameScenario, WebhookEventLog, WebhookEventSource, WebhookEventStatus };
33282
+ /**
33283
+ * Resolve a {@link RevTurbineColorScheme} to the concrete scheme to paint.
33284
+ *
33285
+ * `'system'` tracks `prefers-color-scheme` and keeps tracking it: a user
33286
+ * flipping their OS theme updates the resolved value without a remount, which
33287
+ * is the difference between following the system and sampling it once at init.
33288
+ *
33289
+ * @param preference - The requested scheme. `'system'` follows the OS.
33290
+ * @returns `'light'` or `'dark'`.
33291
+ * @public
33292
+ */
33293
+ declare function useResolvedColorScheme(preference: RevTurbineColorScheme): 'light' | 'dark';
33294
+
33295
+ export { ANALYTICS_ANNOTATION_KINDS, ANALYTICS_DATE_RANGE_FILTER_VALUE_TYPE, ANALYTICS_VALIDATION_CODES, ANALYTICS_VIEW_SCHEMA_VERSION, AccessGateSurfaceSlot, ActivityLevelSchema, AddOnSchema, AddOnVariationSchema, AgentConnectorSlot as AgentConnectorComponent, AgentConnectorSlot, AlertSchema, AnalysisProvenanceSchema, AnalyticsAgentCatalogEntryKindSchema, AnalyticsAgentCatalogEntrySchema, AnalyticsAnalyticalUnitSchema, AnalyticsAnnotationKindSchema, AnalyticsAnnotationMarkerSchema, AnalyticsAnnotationRequestSchema, AnalyticsAnnotationResponseSchema, AnalyticsAnnotationSchema, AnalyticsAnnotationSourceSchema, AnalyticsBlockErrorSchema, AnalyticsBlockResultSchema, AnalyticsCardinalityClassSchema, AnalyticsCatalogAnnotationKindSchema, AnalyticsCatalogConceptSchema, AnalyticsCatalogDeprecationSchema, AnalyticsCatalogDimensionSchema, AnalyticsCatalogMetricSchema, AnalyticsCatalogMetricValidatedSchema, AnalyticsCatalogProvenanceKindSchema, AnalyticsCatalogProvenanceSchema, AnalyticsCatalogSchema, AnalyticsCatalogSearchResultSchema, AnalyticsCatalogSourceSchema, AnalyticsClassificationSchema, AnalyticsCompareDeltaSchema, AnalyticsCompareExperimentSchema, AnalyticsCompareModeSchema, AnalyticsCompareSegmentSchema, AnalyticsCompileResolutionSchema, AnalyticsCoverageSchema, AnalyticsCustomizationCapabilitySchema, AnalyticsCustomizationPolicySchema, AnalyticsDimensionCapabilitySchema, AnalyticsDimensionTypeSchema, AnalyticsFieldTypeSchema, AnalyticsFilterControlSchema, AnalyticsFilterOperatorSchema, AnalyticsFilterStateSchema, AnalyticsFilterValueSchema, AnalyticsFormatSpecSchema, AnalyticsHistoricalModeSchema, AnalyticsMetricAggregationSemanticsSchema, AnalyticsMetricDirectionSchema, AnalyticsMetricStatisticalTypeSchema, AnalyticsPeriodCompareModeSchema, AnalyticsQueryFamilySchema, AnalyticsQueryOverridesSchema, AnalyticsQueryRequestSchema, AnalyticsQueryResponseSchema, AnalyticsRenderCartesianSchema, AnalyticsRenderFunnelSchema, AnalyticsRenderMetricSchema, AnalyticsRenderRecommendationsSchema, AnalyticsRenderSpecSchema, AnalyticsRenderTableSchema, AnalyticsRenderTimelineSchema, AnalyticsResultFieldSchema, AnalyticsResultMetaSchema, AnalyticsResultSchema, AnalyticsSafeChartOptionsSchema, AnalyticsSavedViewSchema, AnalyticsSemanticFilterSchema, AnalyticsSemanticIdSchema, AnalyticsSourceScopeSchema, AnalyticsSuggestedPatchOpSchema, AnalyticsTemplateSummarySchema, AnalyticsTimeGrainSchema, AnalyticsValidationIssueSchema, AnalyticsValidationResultSchema, AnalyticsViewAccessRoleSchema, AnalyticsViewAccessSchema, AnalyticsViewBlockDraftSchema, AnalyticsViewBlockSchema, AnalyticsViewDraftSchema, AnalyticsViewFilterDraftSchema, AnalyticsViewFilterSchema, AnalyticsViewHandoffDraftSchema, AnalyticsViewHandoffSchema, AnalyticsViewLayoutSchema, AnalyticsViewQuerySchema, AnalyticsViewRevisionSchema, AnalyticsViewSchema, AnalyticsViewVisibilitySchema, AnalyticsWarningSchema, AnchorFields, AuditActorTypeSchema, AuditEventSchema, AuthAccountSchema, AuthApiKeySchema, AuthInvitationSchema, AuthMemberSchema, AuthOrganizationSchema, AuthPasskeySchema, AuthSessionSchema, AuthSsoProviderSchema, AuthTwoFactorSchema, AuthUserSchema, AuthVerificationSchema, BUILT_IN_TEMPLATE_COMPONENT_TYPES, BannerSlot as BannerComponent, BannerFrame, BannerSlot, BannerSurface, BillingCadenceSchema, BillingHealthStatusSchema, BrandingConfigSchema, BrowserRuntime, BrowserStorage, ButtonSlot as ButtonComponent, ButtonSlot, ButtonSurface, CONTROL_PLANE_EVENT_NAMES, CONTROL_PLANE_EVENT_SOURCE, CONTROL_PLANE_SOURCE_KEY, CapEnforcer, CapPeriodSchema$1 as CapPeriodSchema, ChangeLogActionSchema, ChangeLogEntrySchema, CliSlot as CliComponent, CliSlot, ClientContextSchema, ClientSafe, CohortMonthSchema, CompactCircularGauge, ComponentTypeSchema, ContentPayloadSegmentEntrySchema, ContentPlacementPayloadSchema, ContentPromotionSchema, ContentUiPathSchema, ContextVisibility, ControlPlaneEventSourceSchema, ControlPlaneEventTypeSchema, ControlPlaneSemanticEventSchema, CreditBalanceSlot as CreditBalanceComponent, CreditBalanceSlot, CtaActionTypeSchema, CtaObjectSchema, CtaPathSchema, CtaPathTypeSchema, CtaResolverRegistry, CurrencySchema, CustomerOverrideDurationSchema, CustomerOverrideSchema, CustomerOverrideStatusSchema, CustomerOverrideTypeSchema, CustomerSchema, DARK_THEME, DEFAULT_ANALYTICS_RETENTION_DAYS, DEFAULT_BRANDING, DEFAULT_TEMPLATE_COMPONENT_TYPES, DEFAULT_THEME, DEPRECATED_EVENT_NAMES, DOGFOOD_CLIENT_EVENT_NAMES, DataClassification, DecisionEngine, DecisionOnly, DefaultTemplateIdsSchema, DescriptionField, DetectorRequirementsSchema, DimensionCategorySchema, DimensionSourceTypeSchema, DiscountTypeSchema, DomainProviderRegistry, DriftReportSchema, EMITTABLE_PLATFORM_EVENT_NAMES, ENTITLEMENT_STATUS_VALUES, EVENT_PAYLOAD_CONTRACTS, EVENT_PAYLOAD_EVENT_NAMES, EVENT_PREFIX_FAMILIES, EmailPreviewSlot as EmailPreviewComponent, EmailPreviewSlot, EnforcementActionSchema, EnforcementModeSchema, EngagementArea, EntitlementCheckResultSchema, EntitlementGate, EntitlementGrantSchema, EntitlementGrantSetSchema, EntitlementGrantSourceSchema, EntitlementGrantStatusSchema, EntitlementRulePeriodUnitSchema, EntitlementRuleSchema, EntitlementRuleTargetKindSchema, EntitlementRuleTargetSchema, EntitlementRuleValidatedSchema, EntitlementRuleVariantSchema, EntitlementSchema, EntitlementStatusSchema, EntitlementTypeSchema, EnvironmentPromotionRequestSchema, EnvironmentSchema, EnvironmentStatusSchema, EventEnvelopeSchema, EventIngestBatchSchema, EventPrefixFamilySchema, EventSearchParamsSchema, EventSourceSchema, EventStabilitySchema, EventSurfaceSchema, EventTaxonomyEntrySchema, EventTaxonomySchema, EvidenceRequirementSchema, ExperimentAnalysisConfigSchema, ExperimentAnalysisConfigVersionError, ExperimentAnalysisDefinitionSchema, ExperimentAnalysisResultRecordSchema, ExperimentAnalysisResultSchema, ExperimentAssignmentFactSchema, ExperimentAssignmentSourceSchema, ExperimentDecisionFindingCodeSchema, ExperimentDecisionPolicySchema, ExperimentDecisionPolicyVersionError, ExperimentDecisionRecordSchema, ExperimentDecisionTypeSchema, ExperimentEvidenceSchema, ExperimentEvidenceSnapshotSchema, ExperimentHealthSchema, ExperimentMetricEvidencePlanSchema, ExperimentMetricResultSchema, ExperimentSchema, ExperimentStatusSchema, ExperimentTypeSchema, ExperimentVariantSchema, ExperimentVariantTargetSchema, RevTurbineConfigPlacementItemSchema as ExportedConfigPlacementItemSchema, RevTurbineConfigSchema as ExportedConfigSchema, RevTurbineConfigSegmentsItemPredicatesItemSchema as ExportedConfigSegmentsItemPredicatesItemSchema, RevTurbineConfigSegmentsItemSchema as ExportedConfigSegmentsItemSchema, RevTurbineConfigUiPathActionTypeSchema as ExportedConfigUiPathActionTypeSchema, FAMILY_RENDER_COMPATIBILITY, FIXED_BANNER_TEMPLATE_IDS, FIXED_SURFACE_TEMPLATE_IDS, FIXTURE_ANALYTICS_CATALOG, FeatureFlagSchema, FeatureFlagValueSchema, FeatureGateTriggerPayloadSchema, FieldDefinitionSchema, FixedSurfaceSlot, FlagValueTypeSchema, FreeTrialRuleSchema, FreeTrialSettingsSchema, FullPageSlot as FullPageComponent, FullPageSlot, FunnelStepSchema, GATED_SURFACE_TEMPLATE_IDS, GENERAL_BANNER_TEMPLATE_IDS, GENERAL_MODAL_TEMPLATE_IDS, GENERAL_TOAST_TEMPLATE_IDS, AccessGateSurfaceSlot as Gate, GrowthSignalBundleSchema, GrowthSignalPointSchema, GrowthSignalSeriesSchema, HANDLE_PATTERN, HandleField, INGEST_WRITE_SCOPE, INIT_STATUS_OK, IdField, IdentityKind, IdentitySchema, InMemoryStorage, InPageSlot as InPageComponent, InPageSlot, InPageSurface, IngestedEventSchema, InitFailureDiagnostic, InlineCardPlacement, InlineEmbedSlot as InlineEmbedComponent, InlineEmbedSlot, InteractionTracker, InvitationStatusSchema, KpiAggregateSchema, LocalizedTextSchema, MAX_TREATMENT_INTERACTIONS_PER_BATCH, MESSAGE_SURFACE_TEMPLATE_IDS, McpConfigSchema, McpTokenScopeSchema, MessageBlockContentSchema, MessageBlockRecordSchema, MessageBlockSchema, MessageSchema, MessageSurfaceSlot, MetadataField, MeteringConfigSchema, ModalSlot as ModalComponent, ModalFrame, ModalSlot, ModalSurface, NameField, NullableDatetimeField, ObservationMaturitySchema, OnboardingChecklistSchema, OnboardingStateSchema, OpportunityCandidateSchema, OpportunityEvidenceSchema, OpportunityInterpretationSchema, OptimizationSuggestionSchema, OrgMemberRoleSchema, PERSISTED_SCHEMA_FACET_EXEMPTIONS, PLATFORM_EMITTED_EVENT_NAMES, PLATFORM_EVENT_TAXONOMY, PLAYBOOK_FORMAT_VERSION, PaginatedResponseSchema, PaginationParamsSchema, PaymentTriggerPayloadSchema, PermissionActionSchema, PermissionResourceSchema, PermissionSchema, PersonalizationTokenSchema, Placement, PlacementCapRuleSchema, PlacementCategorySchema, PlacementController, PlacementDecisionInspector, PlacementDecisionOutputSchema, PlacementPayloadSchema, PlacementPerformanceRowSchema, PlacementRenderer, PlacementSchema, PlacementSettingsCapRuleGroupItemSchema, PlacementSettingsCapRuleSchema, PlacementSettingsCapStateSchema, PlacementSettingsSchema, PlacementTestModeSchema, PlacementTestUserIdentifierTypeSchema, PlacementTestUserSchema, PlacementTypeRegistry, PlacementWarningCodeSchema, PlacementWarningSchema, PlanSchema, PlanVariationSchema, PlanVisibilitySchema, PlaybookBodySchema, PlaybookHeaderSchema, PlaybookObjectSchema, PlaybookSchema, PlaybookStrictSchema, PlaybookVersionDeployResultSchema, PlaybookVersionDiffSchema, PlaybookVersionEntrySummarySchema, PlaybookVersionSchema, PlaybookVersionStatusSchema, PresentationOutcomeSchema, PriceSourceSchema, PricingModelSchema, PromotionSchema, PromotionStatusSchema, ProviderAvailabilitySchema, ProviderBindingRefSchema, ProviderCapabilitySchema, ProviderConnectionSchema, ProviderProvenanceSchema, PushPreviewSlot as PushPreviewComponent, PushPreviewSlot, QuotaMeterSlot as QuotaMeterComponent, QuotaMeterFrame, QuotaMeterSlot, RECOGNIZED_UPDATE_KEYS, ROLE_PERMISSIONS, ROLE_RANK, SurfaceSlotComponent as RTSlot, ApiError as RevTurbineApiError, RevTurbineConfigAddonVariationsItemSchema, RevTurbineConfigAddonsItemSchema, RevTurbineConfigEnforcementDefaultsItemSchema, RevTurbineConfigEntitlementRulesItemSchema, RevTurbineConfigEntitlementsItemSchema, RevTurbineConfigMeterBindingsItemSchema, RevTurbineConfigPeriodCapSchema, RevTurbineConfigPersonalizationTokensItemSchema, RevTurbineConfigPlacementCategorySchema, RevTurbineConfigPlacementItemSchema, RevTurbineConfigPlacementPayloadItemSchema, RevTurbineConfigPlacementSettingsItemSchema, RevTurbineConfigPlacementSlotsItemSchema, RevTurbineConfigPlacementTriggerSchema, RevTurbineConfigPlanVariationsItemSchema, RevTurbineConfigPlansItemSchema, RevTurbineConfigSchema, RevTurbineConfigSeatTypesItemSchema, RevTurbineConfigSegmentDimensionsItemSchema, RevTurbineConfigSegmentsItemPredicatesItemSchema, RevTurbineConfigSegmentsItemSchema, RevTurbineConfigSlotConfigsItemSchema, RevTurbineConfigStudioCtaConfigSchema, RevTurbineConfigStudioPayloadCapsSchema, RevTurbineConfigStudioPayloadSchema, RevTurbineConfigStudioPayloadSurfaceSchema, RevTurbineConfigStudioPayloadTargetSchema, RevTurbineConfigSurfaceTemplatesItemFieldsItemSchema, RevTurbineConfigSurfaceTemplatesItemSchema, RevTurbineConfigUiPathActionTypeSchema, RevTurbineCustomerSdk, RevTurbineProvider, RevTurbineServer, RevTurbineThemeProvider, RevenueMetricSchema, ReverseTrialRuleSchema, ReverseTrialSettingsSchema, ReverseTrialStartPolicySchema, RoleSchema, RuleVisibilitySchema, RuntimeMode, RuntimePromotionSnapshotSchema, SDK_AUTOMATIC_NON_EMITTED_NAMES, SDK_CLIENT_EVENT_NAMES, SDK_META_EVENT_NAMES, SDK_SERVER_EVENT_NAMES, SEMANTIC_ID_PATTERN, SERVER_TRAITS_DOMAIN, SchemaContext, SchemaExposure, SchemaPersistence, SchemaSource, SdkConfigShapeSchema, SdkMetaEventSchema, SdkMetaEventTypeSchema, SdkMetaIngestBatchSchema, SdkSession, SeatTypeSchema, SegmentDimensionSchema, SegmentSchema, SegmentValueSchema, SemanticEventSchema, ServerEvaluationPayloadDecisionsItemSchema, ServerEvaluationPayloadEntitlementsValueSchema, ServerEvaluationPayloadSchema, ServerEvaluationPayloadTrialStatusSchema, ServerEvaluationPayloadUserContextSchema, ServerEvaluationPayloadUserSchema, ServerOnly, ServerUserContextProvider, SeveritySchema, SurfaceSlotComponent as Slot, SmsPreviewSlot as SmsPreviewComponent, SmsPreviewSlot, StripeIntegrationConfigSchema, StripePriceBillingPeriodSchema, StripePriceMockBillingPeriodSchema, StripePriceMockSchema, StripePriceSchema, StudioSurfaceTypeSchema, SuggestionSeveritySchema, SupersessionReasonSchema, SupersessionRecordSchema, SurfaceSlotComponent, SurfaceSlotSchema, SurfaceTemplateSchema, SurfaceTypeCapRuleSchema, SurfaceTypeSchema, TelemetryScope, TelemetryScopeContext, TemplateFieldTypeSchema, TenantConfigSchema, TenantIdField, TenantSchema, TenantStatusSchema, ThemeSchema, TimestampFields, ToastSlot as ToastComponent, ToastSlot, ToastSurface, TooltipSlot as TooltipComponent, TooltipSlot, Track, TrackEventSchema, TrackIngestBatchSchema, TrackOnView, TreatmentInteractionBatchSchema, TreatmentInteractionInputSchema, TreatmentInteractionRequestSchema, TreatmentInteractionTypeSchema, TrendFeaturesSchema, TrialEligibilityScopeSchema, TrialInstanceSchema, TrialLimitPolicySchema, TrialStatusSchema, TrialTriggerPayloadSchema, TriggerEventTypeSchema, UiPreferenceSchema, UnsupportedExperimentAssignmentUnitError, UsageAllocationSchema$1 as UsageAllocationSchema, UsageEnforcementSettingsSchema, UsagePeriodScopeSchema, UsageTriggerPayloadSchema, UserContextSchema, UserInstanceContextSchema, UserPlanContextSchema, UserProfile, UserRoleSchema, UserTrialStatusSchema, UserUsageEntrySchema, VIEW_ELEMENT_ID_PATTERN, VariantStatisticalSummarySchema, VersionFields, WEBHOOK_DERIVED_EVENT_NAMES, WarGameCapabilityRequirementsSchema, WarGameCategorySchema, WarGameGradeSchema, WarGameOracleSchema, WarGameQualificationLevelSchema, WarGameScenarioSchema, WebhookEventLogSchema, WebhookEventSourceSchema, WebhookEventStatusSchema, adaptExperimentVersionToBucketer, analyticsPaths, analyticsViewPaths, applyValueMaps, assertExperimentAnalysisConfigUpdateAllowed, assertExperimentDecisionPolicyUpdateAllowed, baseThemeForScheme, bridgeUiPathResolversIntoRegistry, bucketSubject, buildAgentCatalogProjection, buildControlPlaneEvent, categorizeActionError, changelogPaths, clearPersistedTheme, collectAssignmentFactDeclarations, collectPersistedSchemas, collectVersionedConfigEntities, compileAnalyticsDraft, composeEffectiveExperimentContext, configPaths, contentPaths, createAnalyticsProvider, createBasicExperimentProvider, createChainedPlacementRequest, createCompositeExperimentProvider, createCustomEndpointRuntimeConfig, createEntitlementPlacementRequest, createFixtureAnalyticsCatalog, createHydrationProviders, createInMemoryAnalyticsCatalog, createLocalRuntimeConfig, createNativeExperimentAssignmentProvider, createPostHogAnalyticsProvider, createPostHogIntegration, createRevTurbineApiClient, createSemanticEvent, createServerRuntimeConfig, createSlotPlacementRequest, createStaticPlacementContentLookupProvider, createStaticPlacementResolver, createStaticProviders, createStrictLocalRuntimeConfig, createTreatmentInteraction, customerPaths, defaultRenderForQuery, defineUiPathResolvers, deriveLocalTrialStatusFromInstance, derivePlacementPersonalizationTokens, deriveReverseTrialGrants, dispatchCtaClick, entitlementPaths, entitlementResultDenies, environmentPaths, evaluateSegments, evaluateTrialStatus, eventPaths, experimentPaths, filterExternalSchemas, filterPersistedSchemas, findActiveTrialInstance, findLatestStartedTrialInstance, formatCurrencyMinorUnits, getDefaultCtaResolverRegistry, getDefaultRegistry, getFieldClassification, getFieldVisibility, getObjectFieldClassifications, getObjectFieldVisibilities, getSchemaClassification, getSchemaDeprecation, getSchemaExposure, getSchemaFacets, getSchemaIdentity, getSchemaPersistence, initRevTurbine, initStatusForError, isAnalyticsDateRangeFilterValue, isBrowser, isExperimentAssignmentFactDeclaration, isLegacyDateRangeArray, isServer, isVersionedConfigEntity, loadTheme, makeAnchor, mergeTheme, mintedIdentity, namedIdentity, namespacePlatformCollision, normalizeConfigArtifactOrThrow, normalizeLegacyConfig, parsePlaybook, parsePromotion, parseUiPath, placementPaths, planPaths, playbookVersionPaths, projectClientSafe, promotionPaths, registerBuiltinSlotTypes, registerBuiltinSnoozeResolver, registerCtaResolver, registerServerActionResolvers, remediationFor, requireSchemaFacets, resetDefaultCtaResolverRegistry, resetDefaultRegistry, resolveBranding, resolveComponentType, resolveContent, resolveLocalPlaybook, resolvePayloadForUser, resolvePayloadForUserWithProvider, resolvePersistentStorage, resolveSessionStorage, resolveTokens, schemaDeprecation, schemaFacets, scopesSubsetOfRole, searchAgentCatalog, segmentPaths, settingsPaths, tenantPaths, toCreateSchema, toWritableSchema, trialPaths, uiPreferencePaths, unregisterCtaResolver, useAddons, useCan, useEntitlement, useGatedAction, usePlacement, usePlacementPersonalization, usePlans, useResolvedColorScheme, useRevTurbine, useRevTurbineTheme, useRevTurbineThemeProviderPresent, useSurfaceSlot, useTelemetryProps, useTelemetryScope, useTrack, useTrackedAction, useUsageSnapshot, userContextPaths, validateAnalyticsQuery, validateAnalyticsView, validateEventPayload, validatePlacementThresholdWarnings };
33296
+ export type { AccessGateCheck, AccessGateSurfaceSlotProps, ActionErrorCategory, ActivityLevel, AdapterBaseOptions, AddOn, AddOnVariation, AgentConnectorSlotProps as AgentConnectorComponentProps, AgentConnectorSlotProps, Alert, AnalysisProvenance, AnalyticsAgentCatalogEntry, AnalyticsAgentCatalogEntryKind, AnalyticsAnalyticalUnit, AnalyticsAnnotation, AnalyticsAnnotationKind, AnalyticsAnnotationMarker, AnalyticsAnnotationRequest, AnalyticsAnnotationResponse, AnalyticsAnnotationSource, AnalyticsBlockError, AnalyticsBlockResult, AnalyticsCardinalityClass, AnalyticsCatalog, AnalyticsCatalogAnnotationKind, AnalyticsCatalogConcept, AnalyticsCatalogData, AnalyticsCatalogDeprecation, AnalyticsCatalogDimension, AnalyticsCatalogMetric, AnalyticsCatalogMetricValidated, AnalyticsCatalogProvenance, AnalyticsCatalogProvenanceKind, AnalyticsCatalogSearchResult, AnalyticsCatalogSource, AnalyticsCatalogView, AnalyticsClassification, AnalyticsCompareDelta, AnalyticsCompareExperiment, AnalyticsCompareMode, AnalyticsCompareSegment, AnalyticsCompileOutput, AnalyticsCompileResolution, AnalyticsCoverage, AnalyticsCustomizationCapability, AnalyticsCustomizationPolicy, AnalyticsDateRangeFilterValue, AnalyticsDimensionCapability, AnalyticsDimensionType, AnalyticsEventHandler, AnalyticsEventProperties, AnalyticsEventTransformer, AnalyticsFieldType, AnalyticsFilterControl, AnalyticsFilterOperator, AnalyticsFilterState, AnalyticsFilterValue, AnalyticsFormatSpec, AnalyticsHistoricalMode, AnalyticsMetricAggregationSemantics, AnalyticsMetricDirection, AnalyticsMetricStatisticalType, AnalyticsPeriodCompareMode, AnalyticsProviderOptions, AnalyticsQueryFamily, AnalyticsQueryOverrides, AnalyticsQueryRequest, AnalyticsQueryResponse, AnalyticsRenderCartesian, AnalyticsRenderFunnel, AnalyticsRenderMetric, AnalyticsRenderRecommendations, AnalyticsRenderSpec, AnalyticsRenderTable, AnalyticsRenderTimeline, AnalyticsResult, AnalyticsResultField, AnalyticsResultMeta, AnalyticsSafeChartOptions, AnalyticsSavedView, AnalyticsSemanticFilter, AnalyticsSemanticId, AnalyticsSourceScope, AnalyticsSuggestedPatchOp, AnalyticsTemplateSummary, AnalyticsTimeGrain, AnalyticsValidationCode, AnalyticsValidationIssue, AnalyticsValidationResult, AnalyticsView, AnalyticsViewAccess, AnalyticsViewAccessRole, AnalyticsViewBlock, AnalyticsViewBlockDraft, AnalyticsViewDraft, AnalyticsViewFilter, AnalyticsViewFilterDraft, AnalyticsViewHandoff, AnalyticsViewHandoffDraft, AnalyticsViewLayout, AnalyticsViewQuery, AnalyticsViewRevision, AnalyticsViewVisibility, AnalyticsWarning, AnyDomainProvider, AssignmentFactUnit, AuditActorType, AuditEvent, AuthAccount, AuthApiKey, AuthInvitation, AuthMember, AuthOrganization, AuthPasskey, AuthSession, AuthSsoProvider, AuthTwoFactor, AuthUser, AuthVerification, BannerSlotProps as BannerComponentProps, BannerFrameProps, BannerSlotProps, BannerSurfaceProps, BasicBucketerExperiment, BasicBucketerOptions, BillingCadence, BillingHealthStatus, BrandingConfig, BrandingResolutionInput, BrandingSource, BrowserRuntimeOptions, ButtonSlotProps as ButtonComponentProps, ButtonSlotProps, ButtonSurfaceProps, CanonicalExperimentAllocation, CapEnforcementResult, CapPeriod, ChangeListener, ChangeLogAction, ChangeLogEntry, CliSlotProps as CliComponentProps, CliSlotProps, ClientContext, CohortMonth, CompactCircularGaugeProps, CompileAnalyticsDraftOptions, ComponentType, CompositeExperimentProviderOptions, ConfigArtifact, ConfigTargetDefaults, ContentPayloadSegmentEntry, ContentPlacementPayload, ContentPromotion, ContentProvider, ContentProviderState, ContentUiPath, ControlPlaneEmitInput, ControlPlaneEventSource, ControlPlaneEventType, ControlPlaneSemanticEvent, CreditBalanceSlotProps as CreditBalanceComponentProps, CreditBalanceSlotProps, CtaActionType, CtaHandler, CtaHandlerMap, CtaHandlerProvider, CtaHandlerProviderState, CtaObject, CtaPath, CtaPathType, CtaResolver, CtaResolverContext, Currency, Customer, CustomerOverride, CustomerOverrideDuration, CustomerOverrideStatus, CustomerOverrideType, DataClassificationValue, DecisionEngineOptions, DefaultTemplateIds, DeriveTrialStatusInput, DetectorRequirements, DimensionCategory, DimensionSourceType, DiscountType, DomainProvider, DomainProviderName, DomainProviderResolutionInput, DriftReport, EffectiveUserContextResolution, EligibleAddon, EligiblePlan, EligiblePrice, EmittablePlatformEventName, EnforcementAction, EnforcementMode, EngagementAreaProps, Entitlement, EntitlementCheckResult$1 as EntitlementCheckResult, EntitlementGateOptions, EntitlementGateState, EntitlementGrant$1 as EntitlementGrant, EntitlementGrantSet$1 as EntitlementGrantSet, EntitlementGrantSource, EntitlementGrantStatus, EntitlementProvider, EntitlementProviderState, EntitlementResult, EntitlementRule, EntitlementRulePeriodUnit, EntitlementRuleSnapshot, EntitlementRuleTarget, EntitlementRuleTargetKind$1 as EntitlementRuleTargetKind, EntitlementRuleValidated, EntitlementRuleVariant, EntitlementStatus, EntitlementType, EntitlementUsageEntry, Environment, EnvironmentPromotionRequest, EnvironmentStatus, EvaluateTrialStatusInput, EvaluateTrialStatusResult, EvaluationContext, EventConsumer, EventConsumerProvider, EventConsumerProviderState, EventEnvelope, EventIngestBatch, EventPayloadContract, EventPayloadContractMap, EventPayloadInput, EventPrefixFamily, EventSearchParams, EventSource, EventStability, EventSurface, EventTaxonomy, EventTaxonomyEntry, EvidenceRequirement, Exact, ExactInitOptions, Experiment, ExperimentAnalysisConfig, ExperimentAnalysisDefinition, ExperimentAnalysisResult, ExperimentAnalysisResultRecord, ExperimentAssignmentFact, ExperimentAssignmentFactDeclaration, ExperimentAssignmentFactMetadataCarrier, ExperimentAssignmentProvider, ExperimentAssignmentSource, ExperimentDecisionFindingCode, ExperimentDecisionPolicy, ExperimentDecisionRecord, ExperimentDecisionType, ExperimentEvidence, ExperimentEvidenceSnapshot, ExperimentHealth, ExperimentMetricEvidencePlan, ExperimentMetricResult, ExperimentProvider, ExperimentProviderState, ExperimentStatus, ExperimentType, ExperimentVariant, ExperimentVariantNonAssignmentReason, ExperimentVariantSelection, ExperimentVariantTarget, Playbook as ExportedConfig, ExportedConfigPlacementItem, ExportedConfigProvider, ExportedConfigSegmentsItem, ExportedConfigSegmentsItemPredicatesItem, ExportedConfigUiPathActionType, FeatureFlag, FeatureFlagValue, FeatureGateTriggerPayload, FieldDefinition, FixedSurfaceSlotProps, FlagValueType, FreeTrialRule, FreeTrialSettings, FullPageSlotProps as FullPageComponentProps, FullPageSlotProps, FunnelStep, AccessGateSurfaceSlotProps as GateProps, GatedAction, GrowthSignalBundle, GrowthSignalPoint, GrowthSignalSeries, IdentifyContextInput, Identity, IdentityDeclaration, InPageSlotProps as InPageComponentProps, InPageSlotProps, InPageSurfaceProps, IngestWriteScope, IngestedEvent, InitFailureDiagnosticProps, InlineCardPlacementProps, InlineEmbedSlotProps as InlineEmbedComponentProps, InlineEmbedSlotProps, InteractionState, InvitationStatus, JsonObject, JsonValue, KpiAggregate, LegacyConfigTargetDefaults, LocalPlacementDataset, LocalPlacementEntry, LocalPlacementPayload, LocalPlacementSurface, LocalizedText, McpConfig, McpTokenScope, Message, MessageBlock, MessageBlockContent, MessageBlockRecord, MessageBlockSnapshot, MessageSurfaceSlotProps, MessageSurfaceSlotRef, MessageTriggerType, MeteringConfig, ModalSlotProps as ModalComponentProps, ModalFrameProps, ModalLayout, ModalSlotProps, ModalSurfaceProps, NativeExperimentAssignmentOptions, NativeExperimentAssignmentUnit, ObservationMaturity, OnboardingChecklist, OnboardingState, OpportunityCandidate, OpportunityEvidence, OpportunityInterpretation, OptimizationSuggestion, OrgMemberRole, PaginationParams, PaymentTriggerPayload, Permission, PermissionAction, PermissionResource, PersonalizationContext, PersonalizationToken, PlacementCapPolicy, PlacementCapRule, PlacementCategory, PlacementContentFields, PlacementContentLookupProvider, PlacementControllerOptions, PlacementControllerState, PlacementCustomCode, PlacementDecisionInspectorProps, PlacementDecisionOutput, PlacementEmittedThresholdLookup, PlacementOutput, PlacementPayload, PlacementPayloadSnapshot, PlacementPerformanceRow, PlacementPreviewConfig, PlacementPromotion, PlacementProps, PlacementRendererProps, PlacementSettings, PlacementSettingsCapRule, PlacementSettingsCapRuleGroupItem, PlacementSettingsCapState, PlacementSlotProps, PlacementSlotType, PlacementTestMode, PlacementTestUser, PlacementTestUserIdentifierType, PlacementUiPath, PlacementUiPathActionType, PlacementWarning, PlacementWarningCode, Plan, PlanProvider, PlanProviderState, PlanRuleSnapshot, PlanVariation, PlanVisibility, PlatformEventName, Playbook, PlaybookBody, PlaybookHeader, PlaybookObject, PlaybookStrict, PlaybookVersion, PlaybookVersionDeployResult, PlaybookVersionDiff, PlaybookVersionEntrySummary, PlaybookVersionStatus, PostHogAnalyticsProviderOptions, PostHogIntegrationOptions, PostHogLike, PresentationCapState, PresentationOutcome, PriceSource, PricingModel, Promotion, PromotionStatus, ProviderAvailability, ProviderBindingRef, ProviderCapability, ProviderConnection, ProviderProvenance, QuotaMeterSlotProps as QuotaMeterComponentProps, QuotaMeterFrameProps, QuotaMeterSlotProps, SurfaceSlotComponentProps as RTSlotProps, RegisterPlacementSlotTypeOptions, ResolvedBranding, ResolvedContent, ResolvedDomainType, ResolvedPayload, ResolvedProviderContext, RevTurbineApiClient, RevTurbineApiClientConfig, paths as RevTurbineApiPaths, RevTurbineAuthoredSlotRef, RevTurbineBootstrapDecisionInput, RevTurbineChainedPlacementRequestOptions, RevTurbineClientSessionProvider, RevTurbineColorScheme, RevTurbineComponentType, Playbook as RevTurbineConfig, RevTurbineConfigAddonVariationsItem, RevTurbineConfigAddonsItem, RevTurbineConfigEnforcementDefaultsItem, RevTurbineConfigEntitlementRulesItem, RevTurbineConfigEntitlementsItem, RevTurbineConfigMeterBindingsItem, RevTurbineConfigPeriodCap, RevTurbineConfigPersonalizationTokensItem, RevTurbineConfigPlacementCategory, RevTurbineConfigPlacementItem, RevTurbineConfigPlacementPayloadItem, RevTurbineConfigPlacementSettingsItem, RevTurbineConfigPlacementSlotsItem, RevTurbineConfigPlacementTrigger, RevTurbineConfigPlanVariationsItem, RevTurbineConfigPlansItem, RevTurbineConfigProvider, RevTurbineConfigSeatTypesItem, RevTurbineConfigSegmentDimensionsItem, RevTurbineConfigSegmentsItem, RevTurbineConfigSegmentsItemPredicatesItem, RevTurbineConfigSlotConfigsItem, RevTurbineConfigStudioCtaConfig, RevTurbineConfigStudioPayload, RevTurbineConfigStudioPayloadCaps, RevTurbineConfigStudioPayloadSurface, RevTurbineConfigStudioPayloadTarget, RevTurbineConfigSurfaceTemplatesItem, RevTurbineConfigSurfaceTemplatesItemFieldsItem, RevTurbineConfigUiPathActionType, RevTurbineContextMode, RevTurbineContextPolicy, RevTurbineDecisionContent, RevTurbineEndpointOverrides, RevTurbineEntitlementContext, RevTurbineEntitlementPlacementRequestOptions, RevTurbineEntitlementRuleEvaluation, RevTurbineEventBatchingOptions, RevTurbineEventEnvelope, RevTurbineEventOptions, RevTurbineGateResult, RevTurbineImpressionMetadata, RevTurbineInitBaseOptions, RevTurbineInitInputOptions, RevTurbineInitOptions, RevTurbineInitOptionsStrict, RevTurbineInitPhase, RevTurbineInitStatus, RevTurbineInitWithProviderOptions, RevTurbineLocalOnlyMinimalInitOptions, RevTurbineLocalRuntimeData, RevTurbineLocalRuntimeOptions, RevTurbineLocalRuntimeResolvers, RevTurbineMeterUsageOverride, RevTurbinePageContext, RevTurbinePersonalizationTokens, RevTurbinePlacementBehaviorFlags, RevTurbinePlacementConfig, RevTurbinePlacementContent, RevTurbinePlacementDecision, RevTurbinePlacementDecisionExplanation, RevTurbinePlacementDecisionInput, RevTurbinePlacementDecisionOverrides, RevTurbinePlacementPayloadEvaluation, RevTurbinePlacementRecord, RevTurbinePlacementRequestConfig, RevTurbinePlacementRuleEvaluation, RevTurbinePlacementTypeEntity, RevTurbinePolicySnapshot, RevTurbineProviderFactory, RevTurbineProviderFailureSlotBehavior, RevTurbineProviderProps, RevTurbineRegisteredSlot, RevTurbineRequiredUiPathResolvers, RevTurbineRuntimeMode, RevTurbineSdkMode, RevTurbineSdkProvider, RevTurbineSegmentEvaluation, RevTurbineSegmentPredicateEvaluation, RevTurbineSemanticEvent, RevTurbineServerOptions, RevTurbineSlotInventoryDiagnosis, RevTurbineSlotPlacementRequestOptions, RevTurbineStorage, RevTurbineSurfaceSlotConfig, RevTurbineSurfaceType, RevTurbineTargeting, RevTurbineTelemetryOptions, RevTurbineTheme, RevTurbineThemeColors, RevTurbineThemeInput, RevTurbineThemeShadows, RevTurbineThemeShape, RevTurbineThemeTypography, RevTurbineTreatmentInteractionInput, RevTurbineTreatmentInteractionOptions, RevTurbineTreatmentInteractionType, RevTurbineTrialContext, RevTurbineTriggerEvent, RevTurbineTriggerPayload, RevTurbineUiPathActionTypes, RevTurbineUiPathResolver, RevTurbineUiPathResolverMap, RevTurbineUiPathResolverValidationIssue, RevTurbineUiPathResolverValidationOptions, RevTurbineUiPathResolverValidationReport, RevTurbineUpdateInput, RevTurbineUsageSnapshot, RevTurbineUsageSnapshotEntry, RevTurbineUserContext, RevenueMetric, ReverseTrialRule, ReverseTrialSettings, ReverseTrialStartPolicy, Role, RuleProvider, RuleProviderState, RuleVisibility, RuntimePromotionSnapshot, SchemaDeprecation, SchemaFacetOptions, SchemaFacets, SdkConfigShape, SdkEventProperties, SdkMetaEvent, SdkMetaEventType, SdkMetaIngestBatch, SdkMetadata, SdkSessionOptions, SdkTraits, SeatType, Segment, SegmentDimension, SegmentProvider, SegmentProviderState, SegmentValue, SemanticEvent, ServerActionContext, ServerActionHandler, ServerActionMap, ServerActionResult, ServerEntitlementResult, ServerEvaluationHydrationPayload, ServerEvaluationPayload, ServerEvaluationPayloadDecisionsItem, ServerEvaluationPayloadEntitlementsValue, ServerEvaluationPayloadTrialStatus, ServerEvaluationPayloadUser, ServerEvaluationPayloadUserContext, ServerEvaluationRequest, ServerPlacementDecision, ServerPlacementRequest, ServerUserContext, ServerUserContextSnapshot, Severity, SurfaceSlotComponentProps as SlotProps, StaticPlacementResolverOptions, StripeIntegrationConfig, StripePrice, StripePriceBillingPeriod, StripePriceMock, StripePriceMockBillingPeriod, StudioSurfaceType, SuggestionSeverity, SupersessionReason, SupersessionRecord, SuppressionResult, SurfaceSlot, SurfaceSlotCategory, SurfaceSlotComponentProps, SurfaceTemplate, SurfaceType, SurfaceTypeCapRule, TelemetryConsent, TelemetryScopeProps, TelemetryScopeValue, TemplateFieldType, Tenant, TenantConfig, TenantStatus, Theme, ThemeLoaderOptions, ThemeProvider, ThemeProviderState, ToastSlotProps as ToastComponentProps, ToastSlotProps, ToastSurfaceProps, TooltipSlotProps as TooltipComponentProps, TooltipSlotProps, TrackEvent, TrackFn, TrackIngestBatch, TrackOnViewProps, TrackOptions, TrackProps, TrackPurpose, TrackedAction, Trait, TraitsNamespace, TraitsProvider, TraitsProviderState, TreatmentInteractionBatch, TreatmentInteractionInput, TreatmentInteractionRequest, TreatmentInteractionType, TrendFeatures, TrialEligibilityScope, TrialInstance, TrialLimitPolicy, TrialStatus, TrialStatusProvider, TrialStatusTraits, TrialTriggerPayload, TriggerEventType, UiPreference, UnvalidatedConfigArtifact, UsageAllocation, UsageBalances, UsageEnforcementSettings, UsagePeriodScope, UsageTraits, UsageTraitsProvider, UsageTriggerPayload, UseAddonsResult, UseCanResult, UseEntitlementOptions, UseEntitlementResult, UsePlacementOptions, UsePlacementPersonalizationOptions, UsePlacementResult, UsePlansResult, UseSurfaceSlotOptions, UseSurfaceSlotResult, UseUsageSnapshotResult, UserContext, UserContextInput, UserInstanceContext, UserPlanContext, UserProfileProps, UserRole, UserTargetingContext, UserTrialStatus, UserUsageEntry, ValidateAnalyticsViewOptions, VariantStatisticalSummary, WarGameCapabilityRequirements, WarGameCategory, WarGameGrade, WarGameOracle, WarGameQualificationLevel, WarGameScenario, WebhookEventLog, WebhookEventSource, WebhookEventStatus };