@atlaskit/tmp-editor-statsig 2.1.14 → 2.2.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.
@@ -1,5 +1,8 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
2
  import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
3
+ function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; }
4
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
5
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
3
6
  import _regeneratorRuntime from "@babel/runtime/regenerator";
4
7
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
5
8
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
@@ -7,7 +10,6 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
7
10
 
8
11
  import { setupEditorExperiments } from './setup';
9
12
  import { editorExperimentsConfig } from './experiments-config';
10
-
11
13
  /**
12
14
  * This is a utility function for testing editor experiments.
13
15
  *
@@ -15,11 +17,11 @@ import { editorExperimentsConfig } from './experiments-config';
15
17
  * ```ts
16
18
  * eeTest('example-boolean', {
17
19
  * true: () => {
18
- * expect(editorExperiment('example-boolean', true)).toBe(true);
19
- * expect(editorExperiment('example-boolean', false)).toBe(false);
20
+ * expect(editorExperiment('example-boolean', true)).toBe(true);
21
+ * expect(editorExperiment('example-boolean', false)).toBe(false);
20
22
  * },
21
23
  * false: () => {
22
- * expect(editorExperiment('example-boolean', false)).toBe(true);
24
+ * expect(editorExperiment('example-boolean', false)).toBe(true);
23
25
  * expect(editorExperiment('example-boolean', true)).toBe(false);
24
26
  * },
25
27
  * })
@@ -29,21 +31,24 @@ import { editorExperimentsConfig } from './experiments-config';
29
31
  * ```ts
30
32
  * eeTest('example-multivariate', {
31
33
  * one: () => {
32
- * expect(editorExperiment('example-multivariate', 'one')).toBe(true);
33
- * expect(editorExperiment('example-multivariate', 'two')).toBe(false);
34
+ * expect(editorExperiment('example-multivariate', 'one')).toBe(true);
35
+ * expect(editorExperiment('example-multivariate', 'two')).toBe(false);
34
36
  * },
35
37
  * two: () => {
36
- * expect(editorExperiment('example-multivariate', 'two')).toBe(true);
37
- * expect(editorExperiment('example-multivariate', 'one')).toBe(false);
38
+ * expect(editorExperiment('example-multivariate', 'two')).toBe(true);
39
+ * expect(editorExperiment('example-multivariate', 'one')).toBe(false);
38
40
  * },
39
41
  * three: () => {
40
- * expect(editorExperiment('example-multivariate', 'three')).toBe(true);
41
- * expect(editorExperiment('example-multivariate', 'one')).toBe(false);
42
+ * expect(editorExperiment('example-multivariate', 'three')).toBe(true);
43
+ * expect(editorExperiment('example-multivariate', 'one')).toBe(false);
42
44
  * },
43
45
  * })
44
46
  * ```
47
+ *
48
+ * API based on Legacy ffTest API
49
+ * - https://hello.atlassian.net/wiki/spaces/AF/pages/2569505829/Task+Testing+your+feature+flag+in+platform+and+product#Legacy-API-lEGACY
45
50
  */
46
- export function eeTest(experimentName, cases, otherExperiments) {
51
+ function eeTest(experimentName, cases, otherExperiments) {
47
52
  setupEditorExperiments('test', {});
48
53
  describe("eeTest: ".concat(experimentName), function () {
49
54
  afterEach(function () {
@@ -76,4 +81,76 @@ export function eeTest(experimentName, cases, otherExperiments) {
76
81
  };
77
82
  }());
78
83
  });
79
- }
84
+ }
85
+
86
+ /**
87
+ * eeTest.describe() Wrapper utility for describe() that runs a test with a editor experiment overides.
88
+ *
89
+ * @example Single experiment
90
+ * ```ts
91
+ * eeTest.describe('Description of test "suite" containing nested suites and tests.', { 'example-boolean': true }, () => {
92
+ * it('should do the thing', () => {
93
+ * expect(editorExperiment('example-boolean', true)).toBe(true);
94
+ * });
95
+ * });
96
+ * ```
97
+ *
98
+ *
99
+ * @example Multiple experiment
100
+ * ```ts
101
+ * eeTest.describe('Description of test "suite" containing nested suites and tests.', { 'example-boolean': true, 'example-multivariate': 'three' }, () => {
102
+ * it('should do the thing', () => {
103
+ * expect(editorExperiment('example-boolean', true)).toBe(true);
104
+ * });
105
+ * });
106
+ * ```
107
+ *
108
+ * API based on next gen ffTest API
109
+ * - https://hello.atlassian.net/wiki/spaces/AF/pages/2569505829/Task+Testing+your+feature+flag+in+platform+and+product#Next-Generation-API-%E2%9C%A8
110
+ */
111
+ eeTest.describe = function eeTestDescribe(experimentName, describeName) {
112
+ function eeTest(value) {
113
+ var describeBody = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {};
114
+ describe("".concat(describeName, " [").concat(value, "]"), function () {
115
+ beforeEach(function () {
116
+ setupEditorExperiments('test', _defineProperty({}, experimentName, value));
117
+ });
118
+ afterEach(function () {
119
+ setupEditorExperiments('test', {});
120
+ });
121
+ describeBody();
122
+ });
123
+ setupEditorExperiments('test', {});
124
+ }
125
+ function variant(value, describeBody) {
126
+ eeTest(value, describeBody);
127
+ }
128
+ function each(describeBody) {
129
+ var possibleValues =
130
+ // @ts-ignore
131
+ editorExperimentsConfig[experimentName].typeGuard.values;
132
+ if (possibleValues) {
133
+ var _iterator = _createForOfIteratorHelper(possibleValues),
134
+ _step;
135
+ try {
136
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
137
+ var value = _step.value;
138
+ eeTest(value, describeBody);
139
+ }
140
+ } catch (err) {
141
+ _iterator.e(err);
142
+ } finally {
143
+ _iterator.f();
144
+ }
145
+ } else {
146
+ // if there are no possible values, it's a boolean experiment
147
+ eeTest(true, describeBody);
148
+ eeTest(false, describeBody);
149
+ }
150
+ }
151
+ return {
152
+ variant: variant,
153
+ each: each
154
+ };
155
+ };
156
+ export { eeTest };
@@ -1,11 +1,4 @@
1
- function isBoolean(value) {
2
- return typeof value === 'boolean';
3
- }
4
- function oneOf(values) {
5
- return function (value) {
6
- return values.includes(value);
7
- };
8
- }
1
+ import { isBoolean, oneOf } from './type-guards';
9
2
  /**
10
3
  * When adding a new experiment, you need to add it here.
11
4
  * Please follow the pattern established in the examples and any
@@ -208,5 +201,24 @@ export var editorExperimentsConfig = {
208
201
  param: 'isEnabled',
209
202
  typeGuard: isBoolean,
210
203
  defaultValue: false
204
+ },
205
+ // Added 2024-09-23
206
+ // https://console.statsig.com/LqivKg6ADZZaGczRfBKfX/experiments/editor_ai_-_multi_prompts/setup
207
+ 'editor_ai_-_multi_prompts': {
208
+ productKeys: {
209
+ confluence: 'editor_ai_-_multi_prompts'
210
+ },
211
+ param: 'cohort',
212
+ typeGuard: oneOf(['control', 'test']),
213
+ defaultValue: 'control'
214
+ },
215
+ // Added 2024-10-01
216
+ comment_on_bodied_extensions: {
217
+ productKeys: {
218
+ confluence: 'platform_editor_comment_on_bodied_extensions'
219
+ },
220
+ param: 'isEnabled',
221
+ typeGuard: isBoolean,
222
+ defaultValue: false
211
223
  }
212
224
  };
@@ -0,0 +1,19 @@
1
+ export function isBoolean(value) {
2
+ return typeof value === 'boolean';
3
+ }
4
+ export function oneOf(values) {
5
+ function typeGuard(value) {
6
+ return values.includes(value);
7
+ }
8
+ /**
9
+ * This is used by test utils to get the variants when running describe.each
10
+ */
11
+ if (IS_TESTING_ENV) {
12
+ typeGuard.values = values;
13
+ }
14
+ return typeGuard;
15
+ }
16
+
17
+ // @ts-ignore
18
+
19
+ var IS_TESTING_ENV = process.env.NODE_ENV === 'test' || process.env.JEST_WORKER_ID !== undefined;
@@ -1,5 +1,7 @@
1
+ /// <reference types="jest" />
1
2
  import { type EditorExperimentOverrides } from './setup';
2
3
  import { type EditorExperimentsConfig } from './experiments-config';
4
+ type DescribeBody = Parameters<typeof describe>[1];
3
5
  /**
4
6
  * This is a utility function for testing editor experiments.
5
7
  *
@@ -7,11 +9,11 @@ import { type EditorExperimentsConfig } from './experiments-config';
7
9
  * ```ts
8
10
  * eeTest('example-boolean', {
9
11
  * true: () => {
10
- * expect(editorExperiment('example-boolean', true)).toBe(true);
11
- * expect(editorExperiment('example-boolean', false)).toBe(false);
12
+ * expect(editorExperiment('example-boolean', true)).toBe(true);
13
+ * expect(editorExperiment('example-boolean', false)).toBe(false);
12
14
  * },
13
15
  * false: () => {
14
- * expect(editorExperiment('example-boolean', false)).toBe(true);
16
+ * expect(editorExperiment('example-boolean', false)).toBe(true);
15
17
  * expect(editorExperiment('example-boolean', true)).toBe(false);
16
18
  * },
17
19
  * })
@@ -21,21 +23,217 @@ import { type EditorExperimentsConfig } from './experiments-config';
21
23
  * ```ts
22
24
  * eeTest('example-multivariate', {
23
25
  * one: () => {
24
- * expect(editorExperiment('example-multivariate', 'one')).toBe(true);
25
- * expect(editorExperiment('example-multivariate', 'two')).toBe(false);
26
+ * expect(editorExperiment('example-multivariate', 'one')).toBe(true);
27
+ * expect(editorExperiment('example-multivariate', 'two')).toBe(false);
26
28
  * },
27
29
  * two: () => {
28
- * expect(editorExperiment('example-multivariate', 'two')).toBe(true);
29
- * expect(editorExperiment('example-multivariate', 'one')).toBe(false);
30
+ * expect(editorExperiment('example-multivariate', 'two')).toBe(true);
31
+ * expect(editorExperiment('example-multivariate', 'one')).toBe(false);
30
32
  * },
31
33
  * three: () => {
32
- * expect(editorExperiment('example-multivariate', 'three')).toBe(true);
33
- * expect(editorExperiment('example-multivariate', 'one')).toBe(false);
34
+ * expect(editorExperiment('example-multivariate', 'three')).toBe(true);
35
+ * expect(editorExperiment('example-multivariate', 'one')).toBe(false);
34
36
  * },
35
37
  * })
36
38
  * ```
39
+ *
40
+ * API based on Legacy ffTest API
41
+ * - https://hello.atlassian.net/wiki/spaces/AF/pages/2569505829/Task+Testing+your+feature+flag+in+platform+and+product#Legacy-API-lEGACY
37
42
  */
38
- export declare function eeTest<ExperimentName extends keyof EditorExperimentsConfig>(experimentName: ExperimentName, cases: EditorExperimentsConfig[ExperimentName]['defaultValue'] extends string ? Record<EditorExperimentsConfig[ExperimentName]['defaultValue'], () => void | Promise<void>> : {
39
- true: () => void | Promise<void>;
40
- false: () => void | Promise<void>;
43
+ declare function eeTest<ExperimentName extends keyof EditorExperimentsConfig>(experimentName: ExperimentName, cases: EditorExperimentsConfig[ExperimentName]['defaultValue'] extends string ? Record<EditorExperimentsConfig[ExperimentName]['defaultValue'], DescribeBody> : {
44
+ true: DescribeBody;
45
+ false: DescribeBody;
41
46
  }, otherExperiments?: EditorExperimentOverrides): void;
47
+ declare namespace eeTest {
48
+ var describe: <ExperimentName extends "example-boolean" | "example-multivariate" | "test-new-experiments-package" | "basic-text-transformations" | "platform_editor_ai_command_palate_improvement" | "platform-editor-ai-condensed-floating-toobar" | "dnd-input-performance-optimisation" | "element-level-templates" | "add-media-from-url" | "nested-dnd" | "table-nested-dnd" | "insert-menu-in-right-rail" | "platform_editor_empty_line_prompt" | "support_table_in_comment" | "platform_editor_exp_lazy_node_views" | "platform_editor_ai_ai_button_block_elements" | "platform_renderer_table_sticky_scrollbar" | "nest-media-and-codeblock-in-quote" | "nested-expand-in-expand" | "platform_editor_ai_command_palette_post_ga" | "platform_editor_table_use_shared_state_hook" | "editor_ai_-_multi_prompts" | "comment_on_bodied_extensions">(experimentName: ExperimentName, describeName: string) => {
49
+ variant: (value: {
50
+ 'example-boolean': {
51
+ productKeys: {
52
+ confluence: string;
53
+ };
54
+ param: string;
55
+ typeGuard: typeof import("./type-guards").isBoolean;
56
+ defaultValue: boolean;
57
+ };
58
+ 'example-multivariate': {
59
+ productKeys: {
60
+ confluence: string;
61
+ };
62
+ param: string;
63
+ typeGuard: (value: unknown) => value is "one" | "two" | "three";
64
+ defaultValue: "one" | "two" | "three";
65
+ };
66
+ 'test-new-experiments-package': {
67
+ productKeys: {
68
+ confluence: string;
69
+ jira: string;
70
+ };
71
+ param: string;
72
+ typeGuard: typeof import("./type-guards").isBoolean;
73
+ defaultValue: boolean;
74
+ };
75
+ 'basic-text-transformations': {
76
+ productKeys: {
77
+ confluence: string;
78
+ };
79
+ param: string;
80
+ typeGuard: typeof import("./type-guards").isBoolean;
81
+ defaultValue: boolean;
82
+ };
83
+ platform_editor_ai_command_palate_improvement: {
84
+ productKeys: {
85
+ confluence: string;
86
+ };
87
+ param: string;
88
+ typeGuard: (value: unknown) => value is "test" | "control";
89
+ defaultValue: "test" | "control";
90
+ };
91
+ 'platform-editor-ai-condensed-floating-toobar': {
92
+ productKeys: {
93
+ confluence: string;
94
+ };
95
+ param: string;
96
+ typeGuard: (value: unknown) => value is "control" | "dropdown" | "editor_ai_button";
97
+ defaultValue: "control" | "dropdown" | "editor_ai_button";
98
+ };
99
+ 'dnd-input-performance-optimisation': {
100
+ productKeys: {
101
+ confluence: string;
102
+ };
103
+ param: string;
104
+ typeGuard: typeof import("./type-guards").isBoolean;
105
+ defaultValue: boolean;
106
+ };
107
+ 'element-level-templates': {
108
+ productKeys: {
109
+ confluence: string;
110
+ };
111
+ param: string;
112
+ typeGuard: typeof import("./type-guards").isBoolean;
113
+ defaultValue: boolean;
114
+ };
115
+ 'add-media-from-url': {
116
+ productKeys: {
117
+ confluence: string;
118
+ };
119
+ param: string;
120
+ typeGuard: typeof import("./type-guards").isBoolean;
121
+ defaultValue: boolean;
122
+ };
123
+ 'nested-dnd': {
124
+ productKeys: {
125
+ confluence: string;
126
+ };
127
+ param: string;
128
+ typeGuard: typeof import("./type-guards").isBoolean;
129
+ defaultValue: boolean;
130
+ };
131
+ 'table-nested-dnd': {
132
+ productKeys: {
133
+ confluence: string;
134
+ };
135
+ param: string;
136
+ typeGuard: typeof import("./type-guards").isBoolean;
137
+ defaultValue: boolean;
138
+ };
139
+ 'insert-menu-in-right-rail': {
140
+ productKeys: {
141
+ confluence: string;
142
+ };
143
+ param: string;
144
+ typeGuard: typeof import("./type-guards").isBoolean;
145
+ defaultValue: boolean;
146
+ };
147
+ platform_editor_empty_line_prompt: {
148
+ productKeys: {
149
+ confluence: string;
150
+ };
151
+ param: string;
152
+ typeGuard: typeof import("./type-guards").isBoolean;
153
+ defaultValue: boolean;
154
+ };
155
+ support_table_in_comment: {
156
+ productKeys: {
157
+ confluence: string;
158
+ };
159
+ param: string;
160
+ typeGuard: typeof import("./type-guards").isBoolean;
161
+ defaultValue: boolean;
162
+ };
163
+ platform_editor_exp_lazy_node_views: {
164
+ productKeys: {
165
+ confluence: string;
166
+ };
167
+ param: string;
168
+ typeGuard: typeof import("./type-guards").isBoolean;
169
+ defaultValue: boolean;
170
+ };
171
+ platform_editor_ai_ai_button_block_elements: {
172
+ productKeys: {
173
+ confluence: string;
174
+ };
175
+ param: string;
176
+ typeGuard: (value: unknown) => value is "test" | "control";
177
+ defaultValue: "test" | "control";
178
+ };
179
+ platform_renderer_table_sticky_scrollbar: {
180
+ productKeys: {
181
+ confluence: string;
182
+ };
183
+ param: string;
184
+ typeGuard: typeof import("./type-guards").isBoolean;
185
+ defaultValue: boolean;
186
+ };
187
+ 'nest-media-and-codeblock-in-quote': {
188
+ productKeys: {
189
+ confluence: string;
190
+ };
191
+ param: string;
192
+ typeGuard: typeof import("./type-guards").isBoolean;
193
+ defaultValue: boolean;
194
+ };
195
+ 'nested-expand-in-expand': {
196
+ productKeys: {
197
+ confluence: string;
198
+ };
199
+ param: string;
200
+ typeGuard: typeof import("./type-guards").isBoolean;
201
+ defaultValue: boolean;
202
+ };
203
+ platform_editor_ai_command_palette_post_ga: {
204
+ productKeys: {
205
+ confluence: string;
206
+ };
207
+ param: string;
208
+ typeGuard: (value: unknown) => value is "test" | "control";
209
+ defaultValue: "test" | "control";
210
+ };
211
+ platform_editor_table_use_shared_state_hook: {
212
+ productKeys: {
213
+ confluence: string;
214
+ };
215
+ param: string;
216
+ typeGuard: typeof import("./type-guards").isBoolean;
217
+ defaultValue: boolean;
218
+ };
219
+ 'editor_ai_-_multi_prompts': {
220
+ productKeys: {
221
+ confluence: string;
222
+ };
223
+ param: string;
224
+ typeGuard: (value: unknown) => value is "test" | "control";
225
+ defaultValue: "test" | "control";
226
+ };
227
+ comment_on_bodied_extensions: {
228
+ productKeys: {
229
+ confluence: string;
230
+ };
231
+ param: string;
232
+ typeGuard: typeof import("./type-guards").isBoolean;
233
+ defaultValue: boolean;
234
+ };
235
+ }[ExperimentName]["defaultValue"], describeBody: jest.EmptyFunction) => void;
236
+ each: (describeBody: jest.EmptyFunction) => void;
237
+ };
238
+ }
239
+ export { eeTest };
@@ -1,4 +1,4 @@
1
- declare function isBoolean(value: unknown): value is boolean;
1
+ import { isBoolean } from './type-guards';
2
2
  export type EditorExperimentsConfig = typeof editorExperimentsConfig;
3
3
  /**
4
4
  * When adding a new experiment, you need to add it here.
@@ -44,8 +44,8 @@ export declare const editorExperimentsConfig: {
44
44
  confluence: string;
45
45
  };
46
46
  param: string;
47
- typeGuard: (value: unknown) => value is "control" | "test";
48
- defaultValue: "control" | "test";
47
+ typeGuard: (value: unknown) => value is "test" | "control";
48
+ defaultValue: "test" | "control";
49
49
  };
50
50
  'platform-editor-ai-condensed-floating-toobar': {
51
51
  productKeys: {
@@ -132,8 +132,8 @@ export declare const editorExperimentsConfig: {
132
132
  confluence: string;
133
133
  };
134
134
  param: string;
135
- typeGuard: (value: unknown) => value is "control" | "test";
136
- defaultValue: "control" | "test";
135
+ typeGuard: (value: unknown) => value is "test" | "control";
136
+ defaultValue: "test" | "control";
137
137
  };
138
138
  platform_renderer_table_sticky_scrollbar: {
139
139
  productKeys: {
@@ -164,8 +164,8 @@ export declare const editorExperimentsConfig: {
164
164
  confluence: string;
165
165
  };
166
166
  param: string;
167
- typeGuard: (value: unknown) => value is "control" | "test";
168
- defaultValue: "control" | "test";
167
+ typeGuard: (value: unknown) => value is "test" | "control";
168
+ defaultValue: "test" | "control";
169
169
  };
170
170
  platform_editor_table_use_shared_state_hook: {
171
171
  productKeys: {
@@ -175,5 +175,20 @@ export declare const editorExperimentsConfig: {
175
175
  typeGuard: typeof isBoolean;
176
176
  defaultValue: boolean;
177
177
  };
178
+ 'editor_ai_-_multi_prompts': {
179
+ productKeys: {
180
+ confluence: string;
181
+ };
182
+ param: string;
183
+ typeGuard: (value: unknown) => value is "test" | "control";
184
+ defaultValue: "test" | "control";
185
+ };
186
+ comment_on_bodied_extensions: {
187
+ productKeys: {
188
+ confluence: string;
189
+ };
190
+ param: string;
191
+ typeGuard: typeof isBoolean;
192
+ defaultValue: boolean;
193
+ };
178
194
  };
179
- export {};
@@ -7,7 +7,7 @@ export declare let _overrides: Partial<{
7
7
  'example-multivariate': "one" | "two" | "three";
8
8
  'test-new-experiments-package': boolean;
9
9
  'basic-text-transformations': boolean;
10
- platform_editor_ai_command_palate_improvement: "control" | "test";
10
+ platform_editor_ai_command_palate_improvement: "test" | "control";
11
11
  'platform-editor-ai-condensed-floating-toobar': "control" | "dropdown" | "editor_ai_button";
12
12
  'dnd-input-performance-optimisation': boolean;
13
13
  'element-level-templates': boolean;
@@ -18,12 +18,14 @@ export declare let _overrides: Partial<{
18
18
  platform_editor_empty_line_prompt: boolean;
19
19
  support_table_in_comment: boolean;
20
20
  platform_editor_exp_lazy_node_views: boolean;
21
- platform_editor_ai_ai_button_block_elements: "control" | "test";
21
+ platform_editor_ai_ai_button_block_elements: "test" | "control";
22
22
  platform_renderer_table_sticky_scrollbar: boolean;
23
23
  'nest-media-and-codeblock-in-quote': boolean;
24
24
  'nested-expand-in-expand': boolean;
25
- platform_editor_ai_command_palette_post_ga: "control" | "test";
25
+ platform_editor_ai_command_palette_post_ga: "test" | "control";
26
26
  platform_editor_table_use_shared_state_hook: boolean;
27
+ 'editor_ai_-_multi_prompts': "test" | "control";
28
+ comment_on_bodied_extensions: boolean;
27
29
  }>;
28
30
  export declare let _product: 'confluence' | 'jira' | 'test' | undefined;
29
31
  /**
@@ -0,0 +1,2 @@
1
+ export declare function isBoolean(value: unknown): value is boolean;
2
+ export declare function oneOf<T extends string>(values: T[]): (value: unknown) => value is T;