@uniformdev/context 20.7.1-alpha.12 → 20.7.1-alpha.121

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.
@@ -76,6 +76,17 @@ type VisitorData = {
76
76
  personalizeVariants?: PersonalizeVariants;
77
77
  };
78
78
  declare const emptyVisitorData: () => VisitorData;
79
+ /**
80
+ * Canvas-specific data that should be managed separately from regular context updates
81
+ */
82
+ type CompositionMetadata = {
83
+ /** The composition ID always required, otherwise whole metadata should not be set */
84
+ compositionId: string;
85
+ /** The matched route from router endpoint. Same as matched project map node pathname */
86
+ matchedRoute?: string;
87
+ /** Dynamic inputs for the route */
88
+ dynamicInputs?: Record<string, string>;
89
+ };
79
90
  /**
80
91
  * Expresses a 'patch' to the Uniform Context state
81
92
  */
@@ -85,6 +96,11 @@ type ContextState = {
85
96
  quirks: Quirks;
86
97
  enrichments: EnrichmentData[];
87
98
  events: EventData[];
99
+ /**
100
+ * Metadata about the composition that is being rendered right now.
101
+ * if you have multiple compositions on the page, please set this one manually.
102
+ */
103
+ compositionMetadata?: CompositionMetadata;
88
104
  };
89
105
  type ContextStateUpdate = {
90
106
  /** The new effective state of the visitor after this state update is applied */
@@ -179,6 +195,10 @@ type ServerToClientTransitionState = Pick<Partial<VisitorData>, 'quirks' | 'test
179
195
  * Storage commands that the server
180
196
  */
181
197
  commands?: StorageCommands[];
198
+ /**
199
+ * Composition metadata from the server side
200
+ */
201
+ compositionMetadata?: CompositionMetadata;
182
202
  };
183
203
  declare const SERVER_STATE_ID = "__UNIFORM_DATA__";
184
204
  type TransitionDataStoreEvents = {
@@ -374,6 +394,7 @@ declare class ManifestInstance {
374
394
  */
375
395
  computeAggregateDimensions(primitiveScores: ScoreVector): ScoreVector;
376
396
  getDimensionByKey(scoreKey: string): EnrichmentCategory | Signal | undefined;
397
+ getAggregateDimensionByKey(scoreKey: string): AggregateDimension | undefined;
377
398
  }
378
399
 
379
400
  interface paths {
@@ -859,6 +880,10 @@ type LogMessages = {
859
880
  }>;
860
881
  /** Final result for a personalized variation */
861
882
  303: MessageFunc<boolean>;
883
+ /** Personalization algorithm not found */
884
+ 304: MessageFunc<{
885
+ algorithm: string;
886
+ }>;
862
887
  /** A/B test placement executing */
863
888
  400: MessageFunc<string>;
864
889
  /** A/B Test definition did not exist */
@@ -898,23 +923,34 @@ type LogMessageSingle<TID extends keyof LogMessages = keyof LogMessages> = [
898
923
  type LogMessageGroup<TID extends keyof LogMessages = keyof LogMessages> = [severity: Severity, id: TID, group: 'GROUP', ...args: Parameters<LogMessages[TID]>] | [severity: Severity, id: TID, group: 'ENDGROUP'];
899
924
  type LogDrain = (message: LogMessage) => void;
900
925
 
901
- type VariantMatchCriteria = {
926
+ /** Data for a personalization variation using the top-down criteria selection algorithm */
927
+ interface VariantMatchCriteria extends VariationMatchMetadata {
902
928
  /**
903
929
  * Operation for match criteria
904
930
  *
905
931
  * @defaultValue `&`
906
932
  */
907
933
  op?: '&' | '|';
908
- crit: DimensionMatch[];
909
- /**
910
- * Name of the variant for analytics tracking.
911
- */
912
- name?: string;
934
+ crit: Array<DimensionMatch | QuirkMatch>;
913
935
  /**
914
936
  * Control group percentage for the variant.
915
937
  */
916
938
  control?: number;
917
- };
939
+ }
940
+ /** Data for a personalization variation using the TODO selection algorithm */
941
+ interface VariationMatchDimensionCriteria extends VariationMatchMetadata {
942
+ /** The dimension this content is relevant to */
943
+ dim: string | undefined;
944
+ }
945
+ /** Data that must exist on a personalization variation regardless of selection algorithm */
946
+ interface VariationMatchMetadata {
947
+ /**
948
+ * Name of the variation for analytics tracking.
949
+ * NOTE: name is optional for backwards compatibility, but it is HIGHLY recommended to specify a name
950
+ * as the default fallback is not helpfully named and is reliant on the order of the variations array.
951
+ */
952
+ name?: string;
953
+ }
918
954
  type DimensionMatch = {
919
955
  /**
920
956
  * Left hand side of the match expression (name of dimension in score vector)
@@ -953,17 +989,48 @@ type DimensionMatch = {
953
989
  */
954
990
  rDim?: string;
955
991
  };
992
+ type QuirkMatch = {
993
+ /**
994
+ * Type of match expression; 'q' discriminates quirk matches from dimension matches
995
+ */
996
+ t: 'q';
997
+ /**
998
+ * Left hand side of the match expression (name of quirk)
999
+ * NOTE: if the quirk is not present
1000
+ */
1001
+ l: string;
1002
+ /**
1003
+ * Operator of the match expression
1004
+ * Comparison operators:
1005
+ * =: `l` is equal to the right hand side expression
1006
+ * !=: `l` is not equal to the right hand side expression
1007
+ */
1008
+ op: '=' | '!=';
1009
+ /**
1010
+ * Right hand side of the match expression
1011
+ * This value is treated as a constant value, if it is present. If it's a string, it is parsed to an integer.
1012
+ * To reference another score dimension as the RHS, use the `rDim` property instead.
1013
+ * `r` and `rDim` are mutually exclusive; if both are specified, then `rDim` wins.
1014
+ */
1015
+ r: string;
1016
+ /**
1017
+ * Only here to maintain object compatibility with DimensionMatch.
1018
+ * Completely ignored.
1019
+ * @deprecated this is not used with QuirkMatch.
1020
+ */
1021
+ rDim?: string;
1022
+ };
956
1023
 
957
1024
  /** Content that is tagged for adding enrichment score when triggered by behavior (i.e. being shown that content) */
958
1025
  type BehaviorTag = {
959
1026
  beh?: EnrichmentData[];
960
1027
  };
961
1028
  /** Defines the shape of a personalized content variant */
962
- type PersonalizedVariant = {
1029
+ type PersonalizedVariant<TCriteria = VariantMatchCriteria> = {
963
1030
  /** A unique identifier for this variation */
964
1031
  id: string;
965
1032
  /** Match criteria for this variation */
966
- pz?: VariantMatchCriteria;
1033
+ pz?: TCriteria;
967
1034
  };
968
1035
  /** The result of computing personalized content from variations */
969
1036
  type PersonalizedResult<TVariant> = {
@@ -971,6 +1038,7 @@ type PersonalizedResult<TVariant> = {
971
1038
  personalized: boolean;
972
1039
  /** Matching variations */
973
1040
  variations: Array<TVariant & {
1041
+ /** Whether the visitor is part of this variation's local control group (also true if part of global control group) */
974
1042
  control: boolean;
975
1043
  }>;
976
1044
  };
@@ -983,6 +1051,10 @@ type TestVariant = {
983
1051
  * If not provided, this variant will be selected in equal proportion to other variants without an explicit distribution.
984
1052
  */
985
1053
  testDistribution?: number;
1054
+ /** Whether this variant is a control variant.
1055
+ * Can be undefined for backward compatibility with older versions of the SDK which were not explicitly setting the control flag.
1056
+ */
1057
+ control?: boolean;
986
1058
  };
987
1059
  /** The result of computing an A/B test result */
988
1060
  type TestResult<TVariant> = {
@@ -995,25 +1067,38 @@ type TestResult<TVariant> = {
995
1067
  */
996
1068
  variantAssigned: boolean;
997
1069
  };
998
-
999
- type PersonalizeOptions<TVariant> = {
1070
+ interface PersonalizeOptions<TVariant> {
1071
+ /** Name of placement (sent to analytics) */
1072
+ name: string;
1073
+ /** Possible variations to place */
1074
+ variations: Iterable<TVariant>;
1075
+ /** Maximum number of variants to place (default: 1) */
1076
+ take?: number;
1077
+ /** Name of the personalization selection algorithm to use. Defaults to top-down criteria when not specified. */
1078
+ algorithm?: string;
1079
+ /** Composition metadata where the personalization is being rendered for analytics tracking */
1080
+ compositionMetadata?: CompositionMetadata;
1081
+ }
1082
+ interface PersonalizationSelectionAlgorithmOptions<TCriteria, TVariant extends PersonalizedVariant<TCriteria> = PersonalizedVariant<TCriteria>> {
1000
1083
  /** Name of placement (sent to analytics) */
1001
1084
  name: string;
1002
- /** Possible variants to place */
1085
+ /** Possible variations to place */
1003
1086
  variations: Iterable<TVariant>;
1004
1087
  /** Maximum number of variants to place (default: 1) */
1005
1088
  take?: number;
1089
+ /** Callback for logging messages */
1006
1090
  onLogMessage?: (message: LogMessage) => void;
1007
- };
1008
- declare function personalizeVariations<TVariant extends PersonalizedVariant>({ name, context, variations, take, onLogMessage, }: PersonalizeOptions<TVariant> & {
1091
+ /** Context instance */
1009
1092
  context: Context;
1010
- }): PersonalizedResult<TVariant>;
1093
+ }
1011
1094
 
1012
1095
  type TestOptions<TVariant extends TestVariant> = {
1013
1096
  /** The name of the test that is being run, must be included in the manifest. */
1014
1097
  name: string;
1015
1098
  /** Variations that are being tested. */
1016
1099
  variations: TVariant[];
1100
+ /** Composition metadata where the personalization is being rendered for analytics tracking */
1101
+ compositionMetadata?: CompositionMetadata;
1017
1102
  };
1018
1103
  declare const testVariations: <TVariant extends TestVariant>({ name, context, variations, onLogMessage, }: TestOptions<TVariant> & {
1019
1104
  context: Context;
@@ -1022,18 +1107,31 @@ declare const testVariations: <TVariant extends TestVariant>({ name, context, va
1022
1107
 
1023
1108
  declare const CONTEXTUAL_EDITING_TEST_NAME = "contextual_editing_test";
1024
1109
  declare const CONTEXTUAL_EDITING_TEST_SELECTED_VARIANT_ID = "contextual_editing_test_selected_variant";
1110
+ type PersonalizationSelectionAlgorithm<TCriteria = unknown> = (options: PersonalizationSelectionAlgorithmOptions<TCriteria>) => PersonalizedResult<PersonalizedVariant<TCriteria>>;
1111
+ type PersonalizationSelectionAlgorithms<TCriteria = unknown> = Record<string, PersonalizationSelectionAlgorithm<TCriteria>>;
1025
1112
  /**
1026
1113
  * Defines a plugin for Uniform Context.
1027
1114
  * The plugin should attach event handlers in its creation function.
1028
1115
  * @returns A function that detaches any event handlers when called
1029
1116
  */
1030
1117
  type ContextPlugin = {
1118
+ /** Defines a log drain for the plugin, which all log messages are sent to */
1031
1119
  logDrain?: LogDrain;
1120
+ /** Initializes the plugin (attach event handlers here if needed) */
1032
1121
  init?: (context: Context) => () => void;
1122
+ /** Plugin-specific actions to perform when a user is forgotten */
1033
1123
  forget?: () => Promise<void> | void;
1034
- update?: (newData: Partial<ContextState>) => Promise<void> | void;
1124
+ /** Plugin-specific actions to perform when the visitor context is updated, second parameter is the recalculated scores after the update */
1125
+ update?: (newData: Partial<ContextState>, recalculatedScores: ScoreVector) => Promise<void> | void;
1126
+ /**
1127
+ * Allows the plugin to register named personalization selection algorithms
1128
+ *
1129
+ * Important: the `default` and `strongestMatch` algorithms are automatically registered.
1130
+ * We strongly advise against replacing these.
1131
+ */
1132
+ personalizationSelectionAlgorithms?: PersonalizationSelectionAlgorithms<any>;
1035
1133
  };
1036
- type ContextOptions = {
1134
+ interface ContextOptions extends Omit<VisitorDataStoreOptions, 'manifest' | 'onServerTransitionScoresReceived'> {
1037
1135
  /** The Context Manifest to load (from the Context API) */
1038
1136
  manifest: ManifestV2;
1039
1137
  /**
@@ -1050,16 +1148,19 @@ type ContextOptions = {
1050
1148
  * `true`: personalization is not run at all unless storage consent is given
1051
1149
  */
1052
1150
  requireConsentForPersonalization?: boolean;
1053
- } & Omit<VisitorDataStoreOptions, 'manifest' | 'onServerTransitionScoresReceived'>;
1151
+ }
1152
+ type PersonalizationEventVariantId = {
1153
+ /** The variant ID that was selected */
1154
+ id: string;
1155
+ /** Whether the visitor is part of this variant's local control group (also true if part of global control group) */
1156
+ control: boolean;
1157
+ };
1054
1158
  /** Emitted when a personalization runs */
1055
1159
  type PersonalizationEvent = {
1056
1160
  /** Name of the personalized placement */
1057
1161
  name: string;
1058
1162
  /** Selected variant ID(s) */
1059
- variantIds: {
1060
- id: string;
1061
- control: boolean;
1062
- }[];
1163
+ variantIds: PersonalizationEventVariantId[];
1063
1164
  /** Whether the user was part of the control group (and did not receive any personalization) */
1064
1165
  control: boolean | undefined;
1065
1166
  /**
@@ -1068,6 +1169,12 @@ type PersonalizationEvent = {
1068
1169
  * False: the variant(s) selected were the same as a previous evaluation of this placement.
1069
1170
  */
1070
1171
  changed: boolean;
1172
+ /**
1173
+ * Contains information about the composition that contains personalization wrapper component,
1174
+ * which triggered the personalization event.
1175
+ * Only references top level root composition after pattern resolutions.
1176
+ */
1177
+ compositionMetadata?: CompositionMetadata;
1071
1178
  };
1072
1179
  /** Emitted event when an A/B test runs */
1073
1180
  type TestEvent = {
@@ -1075,12 +1182,22 @@ type TestEvent = {
1075
1182
  name: string;
1076
1183
  /** ID of the variant that was selected */
1077
1184
  variantId: string | undefined;
1185
+ /**
1186
+ * Whether the variant is part of the control group.
1187
+ */
1188
+ control: boolean;
1078
1189
  /**
1079
1190
  * Whether the test variant was newly assigned to the visitor.
1080
1191
  * True: variant was assigned to the visitor for the first time.
1081
1192
  * False: variant was already assigned to the visitor and is being reused.
1082
1193
  */
1083
1194
  variantAssigned: boolean;
1195
+ /**
1196
+ * Contains information about the composition that contains A/B test wrapper component,
1197
+ * which triggered the A/B test event.
1198
+ * Only references top level root composition after pattern resolutions.
1199
+ */
1200
+ compositionMetadata?: CompositionMetadata;
1084
1201
  };
1085
1202
  type ContextEvents = {
1086
1203
  /**
@@ -1104,6 +1221,8 @@ type ContextEvents = {
1104
1221
  testResult: TestEvent;
1105
1222
  /** Personalization variants have been selected */
1106
1223
  personalizationResult: PersonalizationEvent;
1224
+ /** Composition metadata has been set/updated, usually happens when new composition is being rendered during client-side navigation for example */
1225
+ canvasDataUpdated: CompositionMetadata;
1107
1226
  };
1108
1227
  interface ContextInstance {
1109
1228
  get scores(): Readonly<ScoreVector>;
@@ -1113,7 +1232,7 @@ interface ContextInstance {
1113
1232
  setTestVariantId(testName: string, variantId: string): void;
1114
1233
  log(...message: LogMessage): void;
1115
1234
  test<TVariant extends TestVariant>(options: TestOptions<TVariant>): TestResult<TVariant>;
1116
- personalize<TVariant extends PersonalizedVariant>(options: PersonalizeOptions<TVariant>): PersonalizedResult<TVariant>;
1235
+ personalize<TVariant extends PersonalizedVariant<any>>(options: PersonalizeOptions<TVariant>): PersonalizedResult<TVariant>;
1117
1236
  forget(fromAllDevices: boolean): Promise<void>;
1118
1237
  getServerToClientTransitionState(): ServerToClientTransitionState;
1119
1238
  readonly manifest: ManifestInstance;
@@ -1125,6 +1244,14 @@ interface ContextInstance {
1125
1244
  internal_processTestEvent(event: TestEvent): void;
1126
1245
  /** @deprecated */
1127
1246
  internal_processPersonalizationEvent(event: PersonalizationEvent): void;
1247
+ /**
1248
+ * Gets the current canvas data
1249
+ */
1250
+ getCompositionMetadata(): Readonly<CompositionMetadata | undefined>;
1251
+ /**
1252
+ * Updates the canvas data and emits a canvasDataUpdated event
1253
+ */
1254
+ updateCompositionMetadata(newData: CompositionMetadata): Promise<void>;
1128
1255
  }
1129
1256
  declare class Context implements ContextInstance {
1130
1257
  #private;
@@ -1178,7 +1305,7 @@ declare class Context implements ContextInstance {
1178
1305
  /** Executes an A/B test with a given set of variants, showing the visitor's assigned variant (or selecting one to assign, if none is set yet) */
1179
1306
  test<TVariant extends TestVariant>(options: TestOptions<TVariant>): TestResult<TVariant>;
1180
1307
  /** Executes a personalized placement with a given set of variants */
1181
- personalize<TVariant extends PersonalizedVariant>(options: PersonalizeOptions<TVariant>): PersonalizedResult<TVariant>;
1308
+ personalize<TVariant extends PersonalizedVariant<any>>(options: PersonalizeOptions<TVariant>): PersonalizedResult<TVariant>;
1182
1309
  /**
1183
1310
  * Forgets the visitor's data and resets the Context to its initial state.
1184
1311
  * @param fromAllDevices for an identified user, whether to delete all their data (for the entire account) - true, or data for this device (sign out) - false
@@ -1194,6 +1321,14 @@ declare class Context implements ContextInstance {
1194
1321
  internal_processTestEvent(event: TestEvent): void;
1195
1322
  /** @deprecated */
1196
1323
  internal_processPersonalizationEvent(event: PersonalizationEvent): void;
1324
+ /**
1325
+ * Gets the current canvas data
1326
+ */
1327
+ getCompositionMetadata(): Readonly<CompositionMetadata | undefined>;
1328
+ /**
1329
+ * Updates the canvas data and emits a canvasDataUpdated event
1330
+ */
1331
+ updateCompositionMetadata(newData: CompositionMetadata): Promise<void>;
1197
1332
  }
1198
1333
 
1199
1334
  /**
@@ -1265,4 +1400,4 @@ declare global {
1265
1400
  }
1266
1401
  }
1267
1402
 
1268
- export { type AggregateDimensionInput as $, type AggregateDimension as A, type MessageFunc as B, type ContextPlugin as C, type DecayFunction as D, type LogMessageSingle as E, type LogMessageGroup as F, ManifestInstance as G, GroupCriteriaEvaluator as H, type CriteriaEvaluatorResult as I, type CriteriaEvaluatorParameters as J, type SignalData as K, type LogDrain as L, type MessageCategory as M, type ManifestV2 as N, type OutputSeverity as O, type PersonalizationEvent as P, type Quirks as Q, type PersonalizationManifest as R, type ScoreVector as S, TransitionDataStore as T, type Signal as U, type VisitorData as V, type SignalCriteriaGroup as W, type SignalCriteria as X, type EnrichmentCategory as Y, type NumberMatch as Z, type TestDefinition as _, type StorageCommands as a, type TestOptions as a0, testVariations as a1, type DimensionMatch as a2, type PersonalizeOptions as a3, personalizeVariations as a4, type BehaviorTag as a5, type PersonalizedVariant as a6, type PersonalizedResult as a7, type TestVariant as a8, type TestResult as a9, type ContextStateUpdate as aA, type GoalStateUpdate as aB, type paths as aC, type StorageCommand as aa, type SetGoalCommand as ab, type ModifyScoreCommand as ac, type ModifySessionScoreCommand as ad, type SetConsentCommand as ae, type SetQuirkCommand as af, type SetTestCommand as ag, type IdentifyCommand as ah, type SetControlGroupCommand as ai, type SetPersonalizeVariantControlCommand as aj, areCommandsEqual as ak, type ServerToClientTransitionState as al, SERVER_STATE_ID as am, type TransitionDataStoreEvents as an, type DecayOptions as ao, type VisitorDataStoreOptions as ap, type VisitorDataStoreEvents as aq, VisitorDataStore as ar, type Tests as as, type Goals as at, type EnrichmentData as au, type PersonalizeControlVariant as av, type PersonalizeVariants as aw, type EventData as ax, emptyVisitorData as ay, type ContextState as az, type TransitionDataStoreOptions as b, type CriteriaEvaluator as c, type StringMatch as d, type VariantMatchCriteria as e, type LogMessage as f, type DevToolsEvents as g, CONTEXTUAL_EDITING_TEST_NAME as h, CONTEXTUAL_EDITING_TEST_SELECTED_VARIANT_ID as i, type ContextOptions as j, type TestEvent as k, type ContextEvents as l, type ContextInstance as m, Context as n, type DevToolsUiVersion as o, type DevToolsState as p, type DevToolsActions as q, type DevToolsEvent as r, type DevToolsLogEvent as s, type DevToolsDataEvent as t, type DevToolsHelloEvent as u, type DevToolsUpdateEvent as v, type DevToolsRawCommandsEvent as w, type DevToolsForgetEvent as x, type LogMessages as y, type Severity as z };
1403
+ export { type ManifestV2 as $, type AggregateDimension as A, type DevToolsLogEvent as B, type ContextPlugin as C, type DecayFunction as D, type DevToolsDataEvent as E, type DevToolsHelloEvent as F, type DevToolsUpdateEvent as G, type DevToolsRawCommandsEvent as H, type DevToolsForgetEvent as I, type LogMessages as J, type Severity as K, type LogDrain as L, type MessageCategory as M, type MessageFunc as N, type OutputSeverity as O, type PersonalizedVariant as P, type Quirks as Q, type LogMessageSingle as R, type ScoreVector as S, TransitionDataStore as T, type LogMessageGroup as U, type VisitorData as V, ManifestInstance as W, GroupCriteriaEvaluator as X, type CriteriaEvaluatorResult as Y, type CriteriaEvaluatorParameters as Z, type SignalData as _, type StorageCommands as a, type PersonalizationManifest as a0, type Signal as a1, type SignalCriteriaGroup as a2, type SignalCriteria as a3, type EnrichmentCategory as a4, type NumberMatch as a5, type TestDefinition as a6, type AggregateDimensionInput as a7, type TestOptions as a8, testVariations as a9, type EnrichmentData as aA, type PersonalizeControlVariant as aB, type PersonalizeVariants as aC, type EventData as aD, emptyVisitorData as aE, type CompositionMetadata as aF, type ContextState as aG, type ContextStateUpdate as aH, type GoalStateUpdate as aI, type paths as aJ, type VariationMatchMetadata as aa, type DimensionMatch as ab, type QuirkMatch as ac, type BehaviorTag as ad, type TestVariant as ae, type TestResult as af, type StorageCommand as ag, type SetGoalCommand as ah, type ModifyScoreCommand as ai, type ModifySessionScoreCommand as aj, type SetConsentCommand as ak, type SetQuirkCommand as al, type SetTestCommand as am, type IdentifyCommand as an, type SetControlGroupCommand as ao, type SetPersonalizeVariantControlCommand as ap, areCommandsEqual as aq, type ServerToClientTransitionState as ar, SERVER_STATE_ID as as, type TransitionDataStoreEvents as at, type DecayOptions as au, type VisitorDataStoreOptions as av, type VisitorDataStoreEvents as aw, VisitorDataStore as ax, type Tests as ay, type Goals as az, type TransitionDataStoreOptions as b, type CriteriaEvaluator as c, type StringMatch as d, type VariantMatchCriteria as e, type LogMessage as f, type PersonalizeOptions as g, Context as h, type PersonalizedResult as i, type VariationMatchDimensionCriteria as j, type PersonalizationSelectionAlgorithmOptions as k, type DevToolsEvents as l, CONTEXTUAL_EDITING_TEST_NAME as m, CONTEXTUAL_EDITING_TEST_SELECTED_VARIANT_ID as n, type PersonalizationSelectionAlgorithm as o, type PersonalizationSelectionAlgorithms as p, type ContextOptions as q, type PersonalizationEventVariantId as r, type PersonalizationEvent as s, type TestEvent as t, type ContextEvents as u, type ContextInstance as v, type DevToolsUiVersion as w, type DevToolsState as x, type DevToolsActions as y, type DevToolsEvent as z };