@revturbine/sdk 0.10.0 → 0.10.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -7322,7 +7322,7 @@ declare const WebhookEventLogSchema: z.ZodObject<{
7322
7322
  declare const TrackEventSchema: z.ZodObject<{
7323
7323
  environment_id: z.ZodString;
7324
7324
  user_id: z.ZodString;
7325
- account_id: z.ZodString;
7325
+ account_id: z.ZodOptional<z.ZodString>;
7326
7326
  event_name: z.ZodString;
7327
7327
  event_ts: z.ZodString;
7328
7328
  properties: z.ZodOptional<z.ZodString>;
@@ -7348,7 +7348,7 @@ declare const TrackIngestBatchSchema: z.ZodObject<{
7348
7348
  events: z.ZodArray<z.ZodObject<{
7349
7349
  environment_id: z.ZodString;
7350
7350
  user_id: z.ZodString;
7351
- account_id: z.ZodString;
7351
+ account_id: z.ZodOptional<z.ZodString>;
7352
7352
  event_name: z.ZodString;
7353
7353
  event_ts: z.ZodString;
7354
7354
  properties: z.ZodOptional<z.ZodString>;
@@ -21131,9 +21131,15 @@ declare class RevTurbineCustomerSdk {
21131
21131
  * Resolve the normalized variant used by RevTurbine decisions and telemetry.
21132
21132
  * Missing, conflicting, and unavailable assignments remain explicit and are
21133
21133
  * never converted to a control variant.
21134
+ *
21135
+ * @public
21134
21136
  */
21135
21137
  getExperimentVariant(experimentHandle: string): Promise<ExperimentVariantSelection>;
21136
- /** Return the immutable ephemeral context currently entering local evaluation. */
21138
+ /**
21139
+ * Return the immutable ephemeral context currently entering local evaluation.
21140
+ *
21141
+ * @public
21142
+ */
21137
21143
  getEffectiveUserContext(): Promise<Readonly<RevTurbineUserContext>>;
21138
21144
  /**
21139
21145
  * Emit `experiment_assigned` assignment facts for the resolved snapshot
@@ -21179,6 +21185,49 @@ declare class RevTurbineCustomerSdk {
21179
21185
  private applyCategoryConflictSuppression;
21180
21186
  private resolveLocalPlacementFromCandidates;
21181
21187
  private localPlacementForConfig;
21188
+ /**
21189
+ * The `placement_slots[]` entry the loaded Playbook authors for a request.
21190
+ *
21191
+ * BL-0119. `placement_slots` is the authored registry of surfaces: an entry
21192
+ * declares a slot's `id`, `surface_type` and `template`, and a placement
21193
+ * targets it through `trigger.slot_id`. Scaffold's headless `LocalRuntime`
21194
+ * has always resolved it (`slotRecordForConfig`); the browser SDK never did,
21195
+ * so a slot-id lookup had nothing to match against and every caller who had
21196
+ * not already driven a decision through that slot got `null` /
21197
+ * `placement_not_found` while a by-name lookup worked.
21198
+ *
21199
+ * The matching rules are kept identical to `LocalRuntime.slotRecordForConfig`
21200
+ * on purpose — a slot id wins outright; otherwise the component type matches
21201
+ * the slot's `surface_type`. Divergence here is divergence in what the same
21202
+ * Playbook decides in the browser versus headless.
21203
+ *
21204
+ * @internal
21205
+ */
21206
+ private authoredSurfaceSlotFor;
21207
+ /**
21208
+ * The surface template ids the Playbook declares for an authored slot id.
21209
+ *
21210
+ * BL-0119. `surface_template_ids` on the registered record is what drops the
21211
+ * shared resolver into its slot branch; without it the resolver falls back to
21212
+ * direct lookup, which is keyed by placement name/id and can never match a
21213
+ * slot id. An integrator who declared the slot in config should not also have
21214
+ * to repeat its template at the `registerSurfaceSlot()` call site.
21215
+ *
21216
+ * @internal
21217
+ */
21218
+ private authoredSlotTemplateIds;
21219
+ /**
21220
+ * Resolve a placement request through the Playbook's authored slot registry.
21221
+ *
21222
+ * BL-0119. Runs only after the local placement cache misses, so an already
21223
+ * decided slot keeps its cached output and this path adds no behavior for
21224
+ * requests the SDK could already answer. Registration is deliberately local:
21225
+ * reading a placement must never write a surface slot back to the control
21226
+ * plane.
21227
+ *
21228
+ * @internal
21229
+ */
21230
+ private placementFromAuthoredSlot;
21182
21231
  private hydrateLocalRuntimeState;
21183
21232
  private persistLocalRuntimeState;
21184
21233
  private decisionCacheStorageKey;
@@ -21270,6 +21319,8 @@ declare class RevTurbineCustomerSdk {
21270
21319
  *
21271
21320
  * Keys are usage units (derived from configured usage token prefixes when available),
21272
21321
  * and values include current usage plus optional limit when known.
21322
+ *
21323
+ * @public
21273
21324
  */
21274
21325
  getUsage(): RevTurbineUsageSnapshot;
21275
21326
  private catalogEligibilityContext;
@@ -21346,6 +21397,8 @@ declare class RevTurbineCustomerSdk {
21346
21397
  * - Placement decision metadata (`rule_id`, reason codes, suppression)
21347
21398
  *
21348
21399
  * Useful for debuggers, QA tooling, and customer-facing explainability UIs.
21400
+ *
21401
+ * @public
21349
21402
  */
21350
21403
  explainPlacementDecision(input: RevTurbinePlacementDecisionInput): Promise<RevTurbinePlacementDecisionExplanation>;
21351
21404
  private usageThresholdForEntitlement;
@@ -21485,6 +21538,8 @@ declare class RevTurbineCustomerSdk {
21485
21538
  * {@link RevTurbineInitOptions.anonymousTelemetry} switch (REQ-13).
21486
21539
  *
21487
21540
  * @param consent - the new consent state
21541
+ *
21542
+ * @public
21488
21543
  */
21489
21544
  setTelemetryConsent(consent: TelemetryConsent): void;
21490
21545
  /** The current behavior-telemetry consent state (plan 144 TASK-8). */
@@ -21516,6 +21571,8 @@ declare class RevTurbineCustomerSdk {
21516
21571
  * at emit time; a violation emits an `sdk_validation_warning` alongside
21517
21572
  * (never a throw — telemetry must not break the host app). Production
21518
21573
  * builds skip validation; the ingest boundary re-validates authoritatively.
21574
+ *
21575
+ * @public
21519
21576
  */
21520
21577
  emitPlatformEvent<K extends EmittablePlatformEventName>(eventName: K, payload: EventPayloadInput<K>, options?: RevTurbineEventOptions): Promise<void>;
21521
21578
  /**
@@ -21559,6 +21616,8 @@ declare class RevTurbineCustomerSdk {
21559
21616
  * interval timer, and page-unload. Best-effort and non-throwing — delivery
21560
21617
  * failures are swallowed (plan 95 REQ-3). Safe to call when the buffer is
21561
21618
  * empty (no-op).
21619
+ *
21620
+ * @public
21562
21621
  */
21563
21622
  flushEvents(): Promise<void>;
21564
21623
  /**
@@ -21622,6 +21681,13 @@ declare class RevTurbineCustomerSdk {
21622
21681
  * routes through the normal clickstream path and never throws into the app.
21623
21682
  */
21624
21683
  private emitObservedContextFields;
21684
+ /**
21685
+ * Merge fields into the session-bound user context. Recognized fields
21686
+ * upsert; an omitted field never clobbers a previously-set value. See the
21687
+ * advertised {@link update} alias for the full recognized-field contract.
21688
+ *
21689
+ * @public
21690
+ */
21625
21691
  setUserContext(userContext: RevTurbineUserContext): void;
21626
21692
  /**
21627
21693
  * Subscribe to user-context changes — `identify()`, `setUserContext()`,
@@ -21713,9 +21779,32 @@ declare class RevTurbineCustomerSdk {
21713
21779
  diagnoseSlotInventory(): RevTurbineSlotInventoryDiagnosis;
21714
21780
  /**
21715
21781
  * @deprecated Use `registerSurfaceSlot`.
21782
+ *
21783
+ * @public
21716
21784
  */
21717
21785
  registerPlacement(config: RevTurbinePlacementConfig): Promise<string>;
21718
21786
  private upsertSurfaceSlot;
21787
+ /**
21788
+ * Build the internal placement record for a surface-slot config.
21789
+ *
21790
+ * Shared by `registerSurfaceSlot` and the BL-0119 authored-slot resolution
21791
+ * path so both produce byte-identical records — a second hand-rolled record
21792
+ * shape is how the two would drift into deciding differently.
21793
+ *
21794
+ * When the caller passes no `surfaceTemplateIds`, the ids the Playbook
21795
+ * declares for this slot are adopted (BL-0119). An explicit list from the
21796
+ * call site always wins: the mounting code knows what it actually renders.
21797
+ *
21798
+ * @internal
21799
+ */
21800
+ private buildSurfaceSlotRecord;
21801
+ /**
21802
+ * Store a surface-slot record in the local registry, marking it unsynced when
21803
+ * it is new or has changed. Local only — never writes to the control plane.
21804
+ *
21805
+ * @internal
21806
+ */
21807
+ private commitSurfaceSlotRecord;
21719
21808
  registerSurfaceSlot(config: RevTurbineSurfaceSlotConfig): Promise<string>;
21720
21809
  /**
21721
21810
  * Persist authored placement types to a configured backend.
@@ -21755,6 +21844,14 @@ declare class RevTurbineCustomerSdk {
21755
21844
  */
21756
21845
  private gateDecisionByCaps;
21757
21846
  private normalizeDecisionFromResponse;
21847
+ /**
21848
+ * Resolve the placement decision for a registered surface slot — the
21849
+ * evaluated payload (or lack of one), its reason, and the metadata needed
21850
+ * to report the interaction lifecycle ({@link trackTreatmentInteraction},
21851
+ * {@link dismiss}, {@link snooze}, {@link convert}).
21852
+ *
21853
+ * @public
21854
+ */
21758
21855
  getPlacementDecision(input: RevTurbinePlacementDecisionInput): Promise<RevTurbinePlacementDecision>;
21759
21856
  preloadPlacementDecisions(inputs: RevTurbinePlacementDecisionInput[]): Promise<void>;
21760
21857
  bootstrapPlacementDecisions(inputs: RevTurbinePlacementDecisionInput[]): Promise<void>;
@@ -21789,6 +21886,31 @@ declare class RevTurbineCustomerSdk {
21789
21886
  * persistent failure is observable instead of merely quiet.
21790
21887
  */
21791
21888
  private failInteractionFlush;
21889
+ /**
21890
+ * The account identity to stamp on a treatment interaction, or `undefined`
21891
+ * when the integration has identified none.
21892
+ *
21893
+ * Two rules make this a usable join key rather than a label:
21894
+ *
21895
+ * 1. **Redacted identically to `/api/track`.** Both paths run the account id
21896
+ * through {@link redactIdentityField}, so an email-shaped account id
21897
+ * becomes the SAME hash in `placement_presentations` and in
21898
+ * `events_clickstream`. Hashing on one path only would produce a hash on
21899
+ * one side and a raw email on the other, and `monetization_funnel` would
21900
+ * join nothing (identity keys are hashed, not sentinelled — the contract
21901
+ * is byte-identical across repos).
21902
+ * 2. **Never falls back to the user id.** An absent account is absent. The
21903
+ * ingest route keeps its own `account_id ?? user_id` fallback for SDKs
21904
+ * that do not send the field yet; this SDK no longer feeds it.
21905
+ */
21906
+ private interactionAccountId;
21907
+ /**
21908
+ * Report a treatment interaction directly by placement/treatment id — the
21909
+ * lower-level counterpart to {@link dismiss}/{@link snooze}/{@link convert},
21910
+ * which key off a decision's `output_id` instead.
21911
+ *
21912
+ * @public
21913
+ */
21792
21914
  trackTreatmentInteraction(input: RevTurbineTreatmentInteractionInput): Promise<void>;
21793
21915
  getPlacementContent(placementId: string, request?: JsonObject): Promise<RevTurbinePlacementContent>;
21794
21916
  /**
@@ -21841,8 +21963,29 @@ declare class RevTurbineCustomerSdk {
21841
21963
  private reportUnrecognizedContextKeys;
21842
21964
  private normalizePlacementOutput;
21843
21965
  private validateTrialStatusShape;
21966
+ /**
21967
+ * Resolve the legacy placement payload for a request config. Prefer
21968
+ * {@link getPlacementDecision} for new integrations; kept for the
21969
+ * documented legacy request-config path.
21970
+ *
21971
+ * @public
21972
+ */
21844
21973
  getPlacement(config: RevTurbinePlacementRequestConfig): Promise<PlacementOutput | null>;
21974
+ /**
21975
+ * Evaluate a single entitlement handle for the active user, purely from the
21976
+ * loaded UserContext and Playbook. The advertised {@link can} alias wraps
21977
+ * this with the friendly verb name.
21978
+ *
21979
+ * @public
21980
+ */
21845
21981
  checkEntitlement(handle: string, context?: RevTurbineEntitlementContext): Promise<EntitlementResult>;
21982
+ /**
21983
+ * Set absolute usage balances for the active user and emit any
21984
+ * threshold-crossing triggers. See the advertised {@link update} alias's
21985
+ * `usage` key for the same contract via the general patch verb.
21986
+ *
21987
+ * @public
21988
+ */
21846
21989
  updateUsage(balances: UsageBalances): void;
21847
21990
  /**
21848
21991
  * Report usage values that are neither a number nor an entry object, so a
@@ -21875,12 +22018,16 @@ declare class RevTurbineCustomerSdk {
21875
22018
  /**
21876
22019
  * Build the full persistence-ready {@link UserContext} from the current
21877
22020
  * SDK state. Includes `tenant_id` and `user_id` required for API storage.
22021
+ *
22022
+ * @public
21878
22023
  */
21879
22024
  getUserContext(): UserContext;
21880
22025
  /**
21881
22026
  * Fetch the resolved user context from the decision API.
21882
22027
  * Returns the user's matched segments, traits, plan, and usage — used
21883
22028
  * to determine which placement payloads are eligible for display.
22029
+ *
22030
+ * @public
21884
22031
  */
21885
22032
  fetchUserContext(userId: string): Promise<UserTargetingContext>;
21886
22033
  /**
@@ -22018,6 +22165,12 @@ declare class RevTurbineCustomerSdk {
22018
22165
  * @param metadata - Optional metadata persisted with the record.
22019
22166
  */
22020
22167
  recordConversion(placementId: string, payloadId?: string, surfaceTemplateId?: string, metadata?: RevTurbineImpressionMetadata): Promise<void>;
22168
+ /**
22169
+ * Return the active user's trial status, derived from their trial
22170
+ * instances and the configured reverse-trial rules.
22171
+ *
22172
+ * @public
22173
+ */
22021
22174
  getTrialStatus(): Promise<RevTurbineTrialContext>;
22022
22175
  /**
22023
22176
  * Derive and push the user's trial status from their {@link TrialInstance}
@@ -22040,6 +22193,8 @@ declare class RevTurbineCustomerSdk {
22040
22193
  * @param options - Optional `nowIso` clock pin (defaults to the current
22041
22194
  * time) and `basePlanHandle` (the base plan a reverse-trial user reverts
22042
22195
  * to, surfaced as `plan_handle`).
22196
+ *
22197
+ * @public
22043
22198
  */
22044
22199
  setTrialInstances(instances: readonly TrialInstance[], options?: {
22045
22200
  nowIso?: string;
@@ -22059,6 +22214,8 @@ declare class RevTurbineCustomerSdk {
22059
22214
  * - `uiPathResolvers` passed at SDK init
22060
22215
  * - optional `resolvers` passed to this method
22061
22216
  * - CTA handlers from domain providers (`domain: 'cta'`), unless disabled
22217
+ *
22218
+ * @public
22062
22219
  */
22063
22220
  validateUiPathResolvers(options?: RevTurbineUiPathResolverValidationOptions): Promise<RevTurbineUiPathResolverValidationReport>;
22064
22221
  /**
@@ -22072,11 +22229,35 @@ declare class RevTurbineCustomerSdk {
22072
22229
  private warnOnUiPathResolverCoverageGaps;
22073
22230
  /** Route output-addressed callbacks through the canonical interaction/analytics path. */
22074
22231
  private trackOutputInteraction;
22232
+ /**
22233
+ * Suppress a decision's placement for its authored dismiss cooldown.
22234
+ * Terminal for the window: `getPlacementDecision` will not return it again
22235
+ * until the cooldown lapses.
22236
+ *
22237
+ * @public
22238
+ */
22075
22239
  dismiss(outputId: string): Promise<void>;
22240
+ /**
22241
+ * Suppress a decision's placement for a "remind me later" window —
22242
+ * `seconds` overrides the authored default.
22243
+ *
22244
+ * @public
22245
+ */
22076
22246
  snooze(outputId: string, seconds?: number): Promise<void>;
22247
+ /**
22248
+ * Record a confirmed CTA completion and retire the decision's placement
22249
+ * permanently — future calls to `getPlacementDecision` for it will not
22250
+ * return it again.
22251
+ *
22252
+ * @public
22253
+ */
22077
22254
  convert(outputId: string): Promise<void>;
22078
22255
  /**
22079
- * Emit a canonical trigger event recognised by the decision engine.
22256
+ * Emit a canonical trigger event. There is no in-SDK consumer that matches
22257
+ * on trigger names — the shipped behavior is ingest to `events_clickstream`
22258
+ * only (plan 250's wire/consumer matrix); a decision-engine placement
22259
+ * trigger matches `trigger.slot_id` against registered slots, not this
22260
+ * event's name.
22080
22261
  *
22081
22262
  * Convenience wrapper over {@link emitSemantic} that constrains the event
22082
22263
  * name to {@link RevTurbineTriggerEvent} and attaches standard context
@@ -22100,6 +22281,8 @@ declare class RevTurbineCustomerSdk {
22100
22281
  * // stored as `clickstream_feature_gated` — see the collision note above
22101
22282
  * await sdk.emitTrigger('feature_gated', { feature: 'advanced_automation' });
22102
22283
  * ```
22284
+ *
22285
+ * @public
22103
22286
  */
22104
22287
  emitTrigger(trigger: RevTurbineTriggerEvent, payload?: RevTurbineTriggerPayload, options?: RevTurbineEventOptions): Promise<void>;
22105
22288
  trackEvent(name: string, data?: SdkEventProperties): Promise<void>;
@@ -22124,8 +22307,16 @@ declare class RevTurbineCustomerSdk {
22124
22307
  * rt.identify('user_123', { plan_handle: 'pro' }); // THE matching identity
22125
22308
  * rt.identify('user_123', { plan_handle: 'pro', plan: { handle: 'pro', name: 'Professional' } });
22126
22309
  * ```
22310
+ *
22311
+ * @public
22127
22312
  */
22128
22313
  identify<T extends IdentifyContextInput>(userId: string, context?: Exact<IdentifyContextInput, T>): void;
22314
+ /**
22315
+ * Reset to anonymous user state, re-inferring a fresh anonymous id. Also
22316
+ * available as the advertised {@link reset} alias.
22317
+ *
22318
+ * @public
22319
+ */
22129
22320
  resetIdentity(): void;
22130
22321
  /**
22131
22322
  * Hard-reset the user context to a blank slate — removes EVERY user-context
@@ -22163,6 +22354,8 @@ declare class RevTurbineCustomerSdk {
22163
22354
  * @example
22164
22355
  * const access = await rt.can('generate_image');
22165
22356
  * if (!access.allowed) showUpgrade();
22357
+ *
22358
+ * @public
22166
22359
  */
22167
22360
  can(handle: string, context?: RevTurbineEntitlementContext): Promise<EntitlementResult>;
22168
22361
  /**
@@ -22174,6 +22367,8 @@ declare class RevTurbineCustomerSdk {
22174
22367
  * @example
22175
22368
  * const gated = await rt.gate('export_pdf', () => exportPdf());
22176
22369
  * if (!gated.ran) openPaywall(gated.entitlement);
22370
+ *
22371
+ * @public
22177
22372
  */
22178
22373
  gate<T>(action: string, fn: () => T | Promise<T>, context?: RevTurbineEntitlementContext): Promise<RevTurbineGateResult<T>>;
22179
22374
  /**
@@ -22182,6 +22377,8 @@ declare class RevTurbineCustomerSdk {
22182
22377
  *
22183
22378
  * @example
22184
22379
  * rt.track('ai_generation_completed', { credits: 3 });
22380
+ *
22381
+ * @public
22185
22382
  */
22186
22383
  track(name: string, data?: SdkEventProperties): Promise<void>;
22187
22384
  /**
@@ -22205,11 +22402,15 @@ declare class RevTurbineCustomerSdk {
22205
22402
  * @example
22206
22403
  * // Reflect a plan change and new traits in one call (identity unchanged):
22207
22404
  * rt.update({ plan_handle: 'pro', custom: { role: 'admin' } });
22405
+ *
22406
+ * @public
22208
22407
  */
22209
22408
  update<T extends RevTurbineUpdateInput>(patch: Exact<RevTurbineUpdateInput, T>): void;
22210
22409
  /**
22211
22410
  * Clear the current user — the advertised alias of {@link resetIdentity}
22212
22411
  * (e.g. on sign-out).
22412
+ *
22413
+ * @public
22213
22414
  */
22214
22415
  reset(): void;
22215
22416
  onRouteChange(change: {
@@ -22930,6 +23131,8 @@ declare class SdkSession {
22930
23131
  * ],
22931
23132
  * });
22932
23133
  * ```
23134
+ *
23135
+ * @public
22933
23136
  */
22934
23137
  declare function initRevTurbine<TUser extends RevTurbineUserContext = RevTurbineUserContext>(options: SdkSessionOptions & {
22935
23138
  user?: Exact<RevTurbineUserContext, TUser>;
@@ -23885,7 +24088,7 @@ interface components {
23885
24088
  TrackEvent: {
23886
24089
  environment_id: components["schemas"]["Anon_57796118d046_16"];
23887
24090
  user_id: components["schemas"]["Anon_761f976a1da1_1"];
23888
- account_id: components["schemas"]["Anon_57796118d046_17"];
24091
+ account_id?: components["schemas"]["Anon_4e04ec5cc4e6_3"];
23889
24092
  event_name: components["schemas"]["Anon_cd76cef95ac8"];
23890
24093
  event_ts: components["schemas"]["Anon_3c179513a5d9_2"];
23891
24094
  properties?: components["schemas"]["Anon_96f9066c2fdc_20"];
@@ -23910,7 +24113,7 @@ interface components {
23910
24113
  SdkMetaEvent: {
23911
24114
  event_type: components["schemas"]["Anon_53b83ce9a609"];
23912
24115
  occurred_at: components["schemas"]["Anon_3c179513a5d9_3"];
23913
- request_id?: components["schemas"]["Anon_4e04ec5cc4e6_3"];
24116
+ request_id?: components["schemas"]["Anon_4e04ec5cc4e6_4"];
23914
24117
  config_hash_id?: components["schemas"]["Anon_e17de468dbc9"];
23915
24118
  sdk_version?: components["schemas"]["Anon_e17de468dbc9_1"];
23916
24119
  runtime_mode?: components["schemas"]["Anon_e17de468dbc9_2"];
@@ -23941,17 +24144,17 @@ interface components {
23941
24144
  TreatmentInteractionInput: {
23942
24145
  user_id: components["schemas"]["Anon_761f976a1da1_2"];
23943
24146
  account_id?: components["schemas"]["Anon_0a729b73253d"];
23944
- placement_id: components["schemas"]["Anon_57796118d046_18"];
23945
- treatment_id?: components["schemas"]["Anon_4e04ec5cc4e6_4"];
23946
- surface_slot_id?: components["schemas"]["Anon_4e04ec5cc4e6_5"];
23947
- surface_template_id?: components["schemas"]["Anon_4e04ec5cc4e6_6"];
23948
- payload_id?: components["schemas"]["Anon_4e04ec5cc4e6_7"];
24147
+ placement_id: components["schemas"]["Anon_57796118d046_17"];
24148
+ treatment_id?: components["schemas"]["Anon_4e04ec5cc4e6_5"];
24149
+ surface_slot_id?: components["schemas"]["Anon_4e04ec5cc4e6_6"];
24150
+ surface_template_id?: components["schemas"]["Anon_4e04ec5cc4e6_7"];
24151
+ payload_id?: components["schemas"]["Anon_4e04ec5cc4e6_8"];
23949
24152
  interaction_type: components["schemas"]["Anon_b540c131c269"];
23950
24153
  interaction_at?: components["schemas"]["Anon_e077e17ea982_3"];
23951
- message_block_handle?: components["schemas"]["Anon_4e04ec5cc4e6_8"];
23952
- message_block_id?: components["schemas"]["Anon_4e04ec5cc4e6_9"];
23953
- experiment_id?: components["schemas"]["Anon_4e04ec5cc4e6_10"];
23954
- variant_key?: components["schemas"]["Anon_4e04ec5cc4e6_11"];
24154
+ message_block_handle?: components["schemas"]["Anon_4e04ec5cc4e6_9"];
24155
+ message_block_id?: components["schemas"]["Anon_4e04ec5cc4e6_10"];
24156
+ experiment_id?: components["schemas"]["Anon_4e04ec5cc4e6_11"];
24157
+ variant_key?: components["schemas"]["Anon_4e04ec5cc4e6_12"];
23955
24158
  test?: components["schemas"]["Anon_fb9ddeea992e_3"];
23956
24159
  metadata?: components["schemas"]["Anon_a249e58b3222"];
23957
24160
  };
@@ -24285,7 +24488,8 @@ interface components {
24285
24488
  Anon_3f2bab3833ef: components["schemas"]["TrackEvent"][];
24286
24489
  Anon_57796118d046_16: string;
24287
24490
  Anon_761f976a1da1_1: string;
24288
- Anon_57796118d046_17: string;
24491
+ Anon_4e04ec5cc4e6_3: components["schemas"]["Anon_9ac136edb99a_8"];
24492
+ Anon_9ac136edb99a_8: string;
24289
24493
  Anon_cd76cef95ac8: string;
24290
24494
  /** Format: date-time */
24291
24495
  Anon_3c179513a5d9_2: string;
@@ -24319,8 +24523,8 @@ interface components {
24319
24523
  Anon_53b83ce9a609: components["schemas"]["SdkMetaEventType"];
24320
24524
  /** Format: date-time */
24321
24525
  Anon_3c179513a5d9_3: string;
24322
- Anon_4e04ec5cc4e6_3: components["schemas"]["Anon_9ac136edb99a_8"];
24323
- Anon_9ac136edb99a_8: string;
24526
+ Anon_4e04ec5cc4e6_4: components["schemas"]["Anon_9ac136edb99a_9"];
24527
+ Anon_9ac136edb99a_9: string;
24324
24528
  Anon_e17de468dbc9: components["schemas"]["Anon_520c691f88f7"];
24325
24529
  Anon_520c691f88f7: string;
24326
24530
  Anon_e17de468dbc9_1: components["schemas"]["Anon_520c691f88f7_1"];
@@ -24355,29 +24559,29 @@ interface components {
24355
24559
  Anon_e17de468dbc9_10: components["schemas"]["Anon_520c691f88f7_10"];
24356
24560
  Anon_520c691f88f7_10: string;
24357
24561
  Anon_761f976a1da1_2: string;
24358
- Anon_0a729b73253d: components["schemas"]["Anon_9ac136edb99a_9"];
24359
- Anon_9ac136edb99a_9: string;
24360
- Anon_57796118d046_18: string;
24361
- Anon_4e04ec5cc4e6_4: components["schemas"]["Anon_9ac136edb99a_10"];
24562
+ Anon_0a729b73253d: components["schemas"]["Anon_9ac136edb99a_10"];
24362
24563
  Anon_9ac136edb99a_10: string;
24564
+ Anon_57796118d046_17: string;
24363
24565
  Anon_4e04ec5cc4e6_5: components["schemas"]["Anon_9ac136edb99a_11"];
24364
24566
  Anon_9ac136edb99a_11: string;
24365
24567
  Anon_4e04ec5cc4e6_6: components["schemas"]["Anon_9ac136edb99a_12"];
24366
24568
  Anon_9ac136edb99a_12: string;
24367
24569
  Anon_4e04ec5cc4e6_7: components["schemas"]["Anon_9ac136edb99a_13"];
24368
24570
  Anon_9ac136edb99a_13: string;
24571
+ Anon_4e04ec5cc4e6_8: components["schemas"]["Anon_9ac136edb99a_14"];
24572
+ Anon_9ac136edb99a_14: string;
24369
24573
  Anon_b540c131c269: components["schemas"]["TreatmentInteractionType"];
24370
24574
  Anon_e077e17ea982_3: components["schemas"]["Anon_02ecf48bed22_3"];
24371
24575
  /** Format: date-time */
24372
24576
  Anon_02ecf48bed22_3: string;
24373
- Anon_4e04ec5cc4e6_8: components["schemas"]["Anon_9ac136edb99a_14"];
24374
- Anon_9ac136edb99a_14: string;
24375
24577
  Anon_4e04ec5cc4e6_9: components["schemas"]["Anon_9ac136edb99a_15"];
24376
24578
  Anon_9ac136edb99a_15: string;
24377
24579
  Anon_4e04ec5cc4e6_10: components["schemas"]["Anon_9ac136edb99a_16"];
24378
24580
  Anon_9ac136edb99a_16: string;
24379
24581
  Anon_4e04ec5cc4e6_11: components["schemas"]["Anon_9ac136edb99a_17"];
24380
24582
  Anon_9ac136edb99a_17: string;
24583
+ Anon_4e04ec5cc4e6_12: components["schemas"]["Anon_9ac136edb99a_18"];
24584
+ Anon_9ac136edb99a_18: string;
24381
24585
  Anon_fb9ddeea992e_3: components["schemas"]["Anon_7cb541e84f22_31"];
24382
24586
  Anon_7cb541e84f22_31: boolean;
24383
24587
  Anon_a249e58b3222: components["schemas"]["Anon_c65c1fbd5acf_8"];
@@ -24418,7 +24622,7 @@ interface components {
24418
24622
  base_sequence: components["schemas"]["Anon_71a2fb329804_1"];
24419
24623
  anchor_id: components["schemas"]["Anon_fb248bf5a9f7_12"];
24420
24624
  handle: components["schemas"]["Anon_2457cccd64aa_2"];
24421
- plan_id: components["schemas"]["Anon_57796118d046_28"];
24625
+ plan_id: components["schemas"]["Anon_57796118d046_27"];
24422
24626
  billing_period: components["schemas"]["Anon_129e203b1449_2"];
24423
24627
  segment_id: components["schemas"]["Anon_f7fb9744a6e4_12"];
24424
24628
  price_amount: components["schemas"]["Anon_7ab7b70b014d_3"];
@@ -24461,7 +24665,7 @@ interface components {
24461
24665
  base_sequence: components["schemas"]["Anon_71a2fb329804_1"];
24462
24666
  anchor_id: components["schemas"]["Anon_fb248bf5a9f7_14"];
24463
24667
  handle: components["schemas"]["Anon_2457cccd64aa_3"];
24464
- addon_id: components["schemas"]["Anon_57796118d046_29"];
24668
+ addon_id: components["schemas"]["Anon_57796118d046_28"];
24465
24669
  billing_period: components["schemas"]["Anon_129e203b1449_3"];
24466
24670
  segment_id: components["schemas"]["Anon_f7fb9744a6e4_13"];
24467
24671
  price_amount: components["schemas"]["Anon_7ab7b70b014d_4"];
@@ -24476,8 +24680,8 @@ interface components {
24476
24680
  created_at: components["schemas"]["Anon_be3e2585472d_2"];
24477
24681
  updated_at: components["schemas"]["Anon_be3e2585472d_3"];
24478
24682
  tenant_id: components["schemas"]["Anon_fb248bf5a9f7_10"];
24479
- stripe_price_id: components["schemas"]["Anon_57796118d046_30"];
24480
- stripe_product_id: components["schemas"]["Anon_57796118d046_31"];
24683
+ stripe_price_id: components["schemas"]["Anon_57796118d046_29"];
24684
+ stripe_product_id: components["schemas"]["Anon_57796118d046_30"];
24481
24685
  billing_period: components["schemas"]["Anon_cf08caa6d850_1"];
24482
24686
  unit_amount_cents: components["schemas"]["Anon_79391150fda1_1"];
24483
24687
  currency: components["schemas"]["Anon_1788a9a8a0b9_2"];
@@ -24524,7 +24728,7 @@ interface components {
24524
24728
  base_sequence: components["schemas"]["Anon_71a2fb329804_1"];
24525
24729
  anchor_id: components["schemas"]["Anon_fb248bf5a9f7_16"];
24526
24730
  handle: components["schemas"]["Anon_2457cccd64aa_4"];
24527
- entitlement_id: components["schemas"]["Anon_57796118d046_32"];
24731
+ entitlement_id: components["schemas"]["Anon_57796118d046_31"];
24528
24732
  targets: components["schemas"]["Anon_effbae05e941"];
24529
24733
  segment_ids: components["schemas"]["Anon_f8dbfffc0ce2_10"];
24530
24734
  visibility: components["schemas"]["Anon_b26f420c5d82_1"];
@@ -24566,7 +24770,7 @@ interface components {
24566
24770
  base_sequence: components["schemas"]["Anon_71a2fb329804_1"];
24567
24771
  anchor_id: components["schemas"]["Anon_fb248bf5a9f7_16"];
24568
24772
  handle: components["schemas"]["Anon_2457cccd64aa_4"];
24569
- entitlement_id: components["schemas"]["Anon_57796118d046_32"];
24773
+ entitlement_id: components["schemas"]["Anon_57796118d046_31"];
24570
24774
  targets: components["schemas"]["Anon_effbae05e941"];
24571
24775
  segment_ids: components["schemas"]["Anon_f8dbfffc0ce2_10"];
24572
24776
  visibility: components["schemas"]["Anon_b26f420c5d82_1"];
@@ -24597,7 +24801,7 @@ interface components {
24597
24801
  };
24598
24802
  EntitlementRuleWarning: {
24599
24803
  code: components["schemas"]["Anon_47cb53910d2c"];
24600
- message: components["schemas"]["Anon_57796118d046_34"];
24804
+ message: components["schemas"]["Anon_57796118d046_33"];
24601
24805
  path?: components["schemas"]["Anon_e5444c6c0ca5"];
24602
24806
  };
24603
24807
  /** @enum {string} */
@@ -24615,8 +24819,8 @@ interface components {
24615
24819
  sequence: components["schemas"]["Anon_ffffc3c874cb_1"];
24616
24820
  base_sequence: components["schemas"]["Anon_71a2fb329804_1"];
24617
24821
  handle: components["schemas"]["Anon_2457cccd64aa_5"];
24618
- rule_id: components["schemas"]["Anon_57796118d046_35"];
24619
- experiment_id: components["schemas"]["Anon_57796118d046_36"];
24822
+ rule_id: components["schemas"]["Anon_57796118d046_34"];
24823
+ experiment_id: components["schemas"]["Anon_57796118d046_35"];
24620
24824
  variant_name: components["schemas"]["Anon_872e58432369_1"];
24621
24825
  is_control: components["schemas"]["Anon_062d958a93c4_5"];
24622
24826
  override_fields: components["schemas"]["Anon_5142f8473790_6"];
@@ -24686,7 +24890,7 @@ interface components {
24686
24890
  };
24687
24891
  PlacementWarning: {
24688
24892
  code: components["schemas"]["Anon_9481d431ae03"];
24689
- message: components["schemas"]["Anon_57796118d046_37"];
24893
+ message: components["schemas"]["Anon_57796118d046_36"];
24690
24894
  path?: components["schemas"]["Anon_e5444c6c0ca5_1"];
24691
24895
  };
24692
24896
  /** @enum {string} */
@@ -24705,13 +24909,13 @@ interface components {
24705
24909
  base_sequence: components["schemas"]["Anon_71a2fb329804_1"];
24706
24910
  anchor_id: components["schemas"]["Anon_fb248bf5a9f7_18"];
24707
24911
  handle: components["schemas"]["Anon_2457cccd64aa_6"];
24708
- placement_id: components["schemas"]["Anon_57796118d046_38"];
24912
+ placement_id: components["schemas"]["Anon_57796118d046_37"];
24709
24913
  drag_order: components["schemas"]["Anon_f95d5b2e4f52_9"];
24710
24914
  target_plan_ids: components["schemas"]["Anon_f8dbfffc0ce2_11"];
24711
24915
  target_plan_billing_cadences: components["schemas"]["Anon_f8dbfffc0ce2_12"];
24712
24916
  target_segments: components["schemas"]["Anon_f8dbfffc0ce2_13"];
24713
24917
  surface_slot_ids: components["schemas"]["Anon_f8dbfffc0ce2_14"];
24714
- surface_template_id: components["schemas"]["Anon_57796118d046_39"];
24918
+ surface_template_id: components["schemas"]["Anon_57796118d046_38"];
24715
24919
  content_fields: components["schemas"]["Anon_5142f8473790_7"];
24716
24920
  cta_list: components["schemas"]["Anon_6ff5f738216c"];
24717
24921
  max_per_period: components["schemas"]["Anon_45e0e0d4a0da_3"];
@@ -24752,8 +24956,8 @@ interface components {
24752
24956
  Anon_be3e2585472d_3: string;
24753
24957
  Anon_fb248bf5a9f7_10: string;
24754
24958
  /** @default production */
24755
- Anon_51cbbf69cb41_1: components["schemas"]["Anon_9ac136edb99a_19"];
24756
- Anon_9ac136edb99a_19: string;
24959
+ Anon_51cbbf69cb41_1: components["schemas"]["Anon_9ac136edb99a_20"];
24960
+ Anon_9ac136edb99a_20: string;
24757
24961
  Anon_0eb2e3b6e08c_3: string;
24758
24962
  Anon_ed3fcc71dea7: {
24759
24963
  error: string;
@@ -24798,7 +25002,7 @@ interface components {
24798
25002
  Anon_f2d1b3e449b4_1: components["schemas"]["Anon_c65c1fbd5acf_11"];
24799
25003
  Anon_fb248bf5a9f7_12: string;
24800
25004
  Anon_2457cccd64aa_2: components["schemas"]["Anon_0eb2e3b6e08c_3"];
24801
- Anon_57796118d046_28: string;
25005
+ Anon_57796118d046_27: string;
24802
25006
  /** @enum {string} */
24803
25007
  Anon_129e203b1449_2: "monthly" | "annual" | "one_time" | "custom";
24804
25008
  /** @default null */
@@ -24825,7 +25029,7 @@ interface components {
24825
25029
  Anon_f27cb44c32f6_14: components["schemas"]["Anon_f2d1b3e449b4_1"];
24826
25030
  Anon_fb248bf5a9f7_14: string;
24827
25031
  Anon_2457cccd64aa_3: components["schemas"]["Anon_0eb2e3b6e08c_3"];
24828
- Anon_57796118d046_29: string;
25032
+ Anon_57796118d046_28: string;
24829
25033
  /** @enum {string} */
24830
25034
  Anon_129e203b1449_3: "monthly" | "annual" | "one_time" | "custom";
24831
25035
  /** @default null */
@@ -24840,8 +25044,8 @@ interface components {
24840
25044
  Anon_00404e686415_39: string;
24841
25045
  /** @default static */
24842
25046
  Anon_b5714cb1e73b_3: components["schemas"]["PriceSource"];
25047
+ Anon_57796118d046_29: string;
24843
25048
  Anon_57796118d046_30: string;
24844
- Anon_57796118d046_31: string;
24845
25049
  Anon_cf08caa6d850_1: components["schemas"]["StripePriceBillingPeriod"];
24846
25050
  /** @default null */
24847
25051
  Anon_79391150fda1_1: components["schemas"]["Anon_c648138a0918_8"];
@@ -24880,10 +25084,10 @@ interface components {
24880
25084
  Anon_f27cb44c32f6_15: components["schemas"]["Anon_f2d1b3e449b4_1"];
24881
25085
  Anon_fb248bf5a9f7_16: string;
24882
25086
  Anon_2457cccd64aa_4: components["schemas"]["Anon_0eb2e3b6e08c_3"];
24883
- Anon_57796118d046_32: string;
25087
+ Anon_57796118d046_31: string;
24884
25088
  Anon_effbae05e941: components["schemas"]["EntitlementRuleTargetOutput"][];
24885
25089
  Anon_70ee2ddbc798_1: components["schemas"]["EntitlementRuleTargetKind"];
24886
- Anon_57796118d046_33: string;
25090
+ Anon_57796118d046_32: string;
24887
25091
  /** @default [] */
24888
25092
  Anon_f8dbfffc0ce2_10: components["schemas"]["Anon_681004346c78_13"];
24889
25093
  Anon_681004346c78_13: string[];
@@ -24936,12 +25140,12 @@ interface components {
24936
25140
  Anon_94e2b717b43e: components["schemas"]["Anon_b9f8542e5a53"];
24937
25141
  Anon_b9f8542e5a53: components["schemas"]["EntitlementRuleWarning"][];
24938
25142
  Anon_47cb53910d2c: components["schemas"]["EntitlementRuleWarningCode"];
24939
- Anon_57796118d046_34: string;
25143
+ Anon_57796118d046_33: string;
24940
25144
  Anon_e5444c6c0ca5: components["schemas"]["Anon_9b45bb8cfd31"];
24941
25145
  Anon_9b45bb8cfd31: (string | number)[];
24942
25146
  Anon_2457cccd64aa_5: components["schemas"]["Anon_0eb2e3b6e08c_3"];
25147
+ Anon_57796118d046_34: string;
24943
25148
  Anon_57796118d046_35: string;
24944
- Anon_57796118d046_36: string;
24945
25149
  Anon_872e58432369_1: string;
24946
25150
  /** @default false */
24947
25151
  Anon_062d958a93c4_5: components["schemas"]["Anon_7cb541e84f22_42"];
@@ -24990,12 +25194,12 @@ interface components {
24990
25194
  Anon_deca7bd23776: components["schemas"]["Anon_4683dfa2b0e7"];
24991
25195
  Anon_4683dfa2b0e7: components["schemas"]["PlacementWarning"][];
24992
25196
  Anon_9481d431ae03: components["schemas"]["PlacementWarningCode"];
24993
- Anon_57796118d046_37: string;
25197
+ Anon_57796118d046_36: string;
24994
25198
  Anon_e5444c6c0ca5_1: components["schemas"]["Anon_9b45bb8cfd31_1"];
24995
25199
  Anon_9b45bb8cfd31_1: (string | number)[];
24996
25200
  Anon_fb248bf5a9f7_18: string;
24997
25201
  Anon_2457cccd64aa_6: components["schemas"]["Anon_0eb2e3b6e08c_3"];
24998
- Anon_57796118d046_38: string;
25202
+ Anon_57796118d046_37: string;
24999
25203
  /** @default 0 */
25000
25204
  Anon_f95d5b2e4f52_9: components["schemas"]["Anon_278eaeabce08_11"];
25001
25205
  Anon_278eaeabce08_11: number;
@@ -25011,7 +25215,7 @@ interface components {
25011
25215
  /** @default [] */
25012
25216
  Anon_f8dbfffc0ce2_14: components["schemas"]["Anon_681004346c78_17"];
25013
25217
  Anon_681004346c78_17: string[];
25014
- Anon_57796118d046_39: string;
25218
+ Anon_57796118d046_38: string;
25015
25219
  /** @default {} */
25016
25220
  Anon_5142f8473790_7: components["schemas"]["Anon_c65c1fbd5acf_13"];
25017
25221
  Anon_c65c1fbd5acf_13: {
@@ -25071,7 +25275,7 @@ interface components {
25071
25275
  /** @default [] */
25072
25276
  Anon_3b6346b139c2: components["schemas"]["Anon_f836473839d1"];
25073
25277
  Anon_f836473839d1: components["schemas"]["FieldDefinitionOutput"][];
25074
- Anon_9ac136edb99a_20: string;
25278
+ Anon_9ac136edb99a_21: string;
25075
25279
  /** @default false */
25076
25280
  Anon_f56777819c8b_3: boolean;
25077
25281
  Anon_44136fa355b3_2: unknown;
@@ -25119,7 +25323,7 @@ interface components {
25119
25323
  CurrencyOutput: components["schemas"]["Anon_063c0cce3710_1"];
25120
25324
  EntitlementRuleTargetOutput: {
25121
25325
  kind: components["schemas"]["Anon_70ee2ddbc798_1"];
25122
- id: components["schemas"]["Anon_57796118d046_33"];
25326
+ id: components["schemas"]["Anon_57796118d046_32"];
25123
25327
  };
25124
25328
  CtaObjectOutput: {
25125
25329
  label: components["schemas"]["Anon_872e58432369_2"];
@@ -25146,7 +25350,7 @@ interface components {
25146
25350
  description?: components["schemas"]["Anon_ee9224780226_6"];
25147
25351
  };
25148
25352
  FieldDefinitionOutput: {
25149
- name: components["schemas"]["Anon_9ac136edb99a_20"];
25353
+ name: components["schemas"]["Anon_9ac136edb99a_21"];
25150
25354
  field_type: components["schemas"]["TemplateFieldType"];
25151
25355
  required: components["schemas"]["Anon_f56777819c8b_3"];
25152
25356
  default_value?: components["schemas"]["Anon_44136fa355b3_2"];
@@ -27913,6 +28117,8 @@ type RevTurbineProviderProps<TUser extends RevTurbineUserContext = RevTurbineUse
27913
28117
  * <App />
27914
28118
  * </RevTurbineProvider>
27915
28119
  * ```
28120
+ *
28121
+ * @public
27916
28122
  */
27917
28123
  declare function RevTurbineProvider<TUser extends RevTurbineUserContext = RevTurbineUserContext, TOptions extends RevTurbineInitInputOptions = RevTurbineInitInputOptions>({ options, bootstrapPlacements, domCapture, colorScheme, children, }: RevTurbineProviderProps<TUser, TOptions>): React__default.JSX.Element;
27918
28124
 
@@ -29285,6 +29491,8 @@ interface UseEntitlementResult {
29285
29491
  * return <BrandKitEditor />;
29286
29492
  * }
29287
29493
  * ```
29494
+ *
29495
+ * @public
29288
29496
  */
29289
29497
  declare function useEntitlement({ handle, context, autoCheck, autoGate, gatePlacementRequest, }: UseEntitlementOptions): UseEntitlementResult;
29290
29498
 
@@ -29469,6 +29677,8 @@ interface GatedAction<A extends unknown[], R> {
29469
29677
  * telemetry (`${action}_started` → `_completed` / `_failed`) and its return value
29470
29678
  * is preserved. Without a provider, `run` is a safe no-op that reports denied
29471
29679
  * (AC-13).
29680
+ *
29681
+ * @public
29472
29682
  */
29473
29683
  declare function useGatedAction<A extends unknown[], R>(action: string, fn: (...args: A) => Promise<R> | R, context?: RevTurbineEntitlementContext, options?: TrackOptions): GatedAction<A, R>;
29474
29684
 
@@ -29582,6 +29792,8 @@ interface UseCanResult {
29582
29792
  * return <BatchExportButton warnLowBalance={limited} />;
29583
29793
  * }
29584
29794
  * ```
29795
+ *
29796
+ * @public
29585
29797
  */
29586
29798
  declare function useCan(handle: string, options?: Omit<UseEntitlementOptions, 'handle'>): UseCanResult;
29587
29799