@featurevisor/core 1.35.2 → 2.0.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 (252) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/README.md +0 -6
  3. package/coverage/clover.xml +321 -237
  4. package/coverage/coverage-final.json +8 -8
  5. package/coverage/lcov-report/index.html +77 -47
  6. package/coverage/lcov-report/lib/builder/allocator.js.html +14 -14
  7. package/coverage/lcov-report/lib/builder/index.html +16 -16
  8. package/coverage/lcov-report/lib/builder/revision.js.html +3 -3
  9. package/coverage/lcov-report/lib/builder/traffic.js.html +90 -63
  10. package/coverage/lcov-report/lib/list/index.html +116 -0
  11. package/coverage/lcov-report/lib/{tester → list}/matrix.js.html +90 -66
  12. package/coverage/lcov-report/lib/tester/helpers.js.html +295 -0
  13. package/coverage/lcov-report/lib/tester/index.html +20 -35
  14. package/coverage/lcov-report/src/builder/allocator.ts.html +2 -2
  15. package/coverage/lcov-report/src/builder/index.html +15 -15
  16. package/coverage/lcov-report/src/builder/revision.ts.html +1 -1
  17. package/coverage/lcov-report/src/builder/traffic.ts.html +101 -23
  18. package/coverage/lcov-report/src/list/index.html +116 -0
  19. package/coverage/lcov-report/src/{tester → list}/matrix.ts.html +87 -21
  20. package/coverage/lcov-report/src/tester/helpers.ts.html +313 -0
  21. package/coverage/lcov-report/src/tester/index.html +20 -35
  22. package/coverage/lcov.info +592 -436
  23. package/lib/assess-distribution/index.d.ts +1 -1
  24. package/lib/assess-distribution/index.js +102 -162
  25. package/lib/assess-distribution/index.js.map +1 -1
  26. package/lib/benchmark/index.js +87 -143
  27. package/lib/benchmark/index.js.map +1 -1
  28. package/lib/builder/allocator.d.ts +1 -1
  29. package/lib/builder/allocator.js +12 -12
  30. package/lib/builder/allocator.js.map +1 -1
  31. package/lib/builder/allocator.spec.js +22 -22
  32. package/lib/builder/allocator.spec.js.map +1 -1
  33. package/lib/builder/buildDatafile.d.ts +4 -3
  34. package/lib/builder/buildDatafile.js +311 -388
  35. package/lib/builder/buildDatafile.js.map +1 -1
  36. package/lib/builder/buildProject.d.ts +2 -1
  37. package/lib/builder/buildProject.js +96 -183
  38. package/lib/builder/buildProject.js.map +1 -1
  39. package/lib/builder/convertToV1.d.ts +10 -0
  40. package/lib/builder/convertToV1.js +119 -0
  41. package/lib/builder/convertToV1.js.map +1 -0
  42. package/lib/builder/getFeatureRanges.d.ts +1 -1
  43. package/lib/builder/getFeatureRanges.js +32 -105
  44. package/lib/builder/getFeatureRanges.js.map +1 -1
  45. package/lib/builder/hashes.d.ts +4 -0
  46. package/lib/builder/hashes.js +70 -0
  47. package/lib/builder/hashes.js.map +1 -0
  48. package/lib/builder/revision.js +2 -2
  49. package/lib/builder/revision.js.map +1 -1
  50. package/lib/builder/revision.spec.js +1 -1
  51. package/lib/builder/revision.spec.js.map +1 -1
  52. package/lib/builder/traffic.d.ts +1 -1
  53. package/lib/builder/traffic.js +57 -48
  54. package/lib/builder/traffic.js.map +1 -1
  55. package/lib/builder/traffic.spec.js +14 -14
  56. package/lib/builder/traffic.spec.js.map +1 -1
  57. package/lib/cli/cli.js +60 -129
  58. package/lib/cli/cli.js.map +1 -1
  59. package/lib/cli/plugins.js +14 -16
  60. package/lib/cli/plugins.js.map +1 -1
  61. package/lib/config/parsers.js +1 -1
  62. package/lib/config/parsers.js.map +1 -1
  63. package/lib/config/projectConfig.d.ts +8 -6
  64. package/lib/config/projectConfig.js +31 -72
  65. package/lib/config/projectConfig.js.map +1 -1
  66. package/lib/datasource/adapter.d.ts +1 -1
  67. package/lib/datasource/adapter.js +2 -5
  68. package/lib/datasource/adapter.js.map +1 -1
  69. package/lib/datasource/datasource.d.ts +2 -1
  70. package/lib/datasource/datasource.js +107 -148
  71. package/lib/datasource/datasource.js.map +1 -1
  72. package/lib/datasource/filesystemAdapter.d.ts +1 -1
  73. package/lib/datasource/filesystemAdapter.js +224 -360
  74. package/lib/datasource/filesystemAdapter.js.map +1 -1
  75. package/lib/evaluate/index.d.ts +1 -1
  76. package/lib/evaluate/index.js +120 -188
  77. package/lib/evaluate/index.js.map +1 -1
  78. package/lib/find-duplicate-segments/findDuplicateSegments.d.ts +1 -1
  79. package/lib/find-duplicate-segments/findDuplicateSegments.js +40 -128
  80. package/lib/find-duplicate-segments/findDuplicateSegments.js.map +1 -1
  81. package/lib/find-duplicate-segments/index.js +27 -82
  82. package/lib/find-duplicate-segments/index.js.map +1 -1
  83. package/lib/find-usage/index.d.ts +7 -5
  84. package/lib/find-usage/index.js +333 -507
  85. package/lib/find-usage/index.js.map +1 -1
  86. package/lib/generate-code/index.js +36 -91
  87. package/lib/generate-code/index.js.map +1 -1
  88. package/lib/generate-code/typescript.js +117 -157
  89. package/lib/generate-code/typescript.js.map +1 -1
  90. package/lib/index.d.ts +0 -1
  91. package/lib/index.js +0 -1
  92. package/lib/index.js.map +1 -1
  93. package/lib/info/index.js +45 -133
  94. package/lib/info/index.js.map +1 -1
  95. package/lib/init/index.d.ts +1 -1
  96. package/lib/init/index.js +16 -64
  97. package/lib/init/index.js.map +1 -1
  98. package/lib/linter/attributeSchema.d.ts +21 -6
  99. package/lib/linter/attributeSchema.js +18 -4
  100. package/lib/linter/attributeSchema.js.map +1 -1
  101. package/lib/linter/checkCircularDependency.d.ts +1 -1
  102. package/lib/linter/checkCircularDependency.js +22 -80
  103. package/lib/linter/checkCircularDependency.js.map +1 -1
  104. package/lib/linter/checkPercentageExceedingSlot.d.ts +1 -1
  105. package/lib/linter/checkPercentageExceedingSlot.js +36 -76
  106. package/lib/linter/checkPercentageExceedingSlot.js.map +1 -1
  107. package/lib/linter/conditionSchema.d.ts +1 -1
  108. package/lib/linter/conditionSchema.js +89 -41
  109. package/lib/linter/conditionSchema.js.map +1 -1
  110. package/lib/linter/featureSchema.d.ts +345 -197
  111. package/lib/linter/featureSchema.js +313 -172
  112. package/lib/linter/featureSchema.js.map +1 -1
  113. package/lib/linter/groupSchema.js +6 -6
  114. package/lib/linter/groupSchema.js.map +1 -1
  115. package/lib/linter/lintProject.js +306 -480
  116. package/lib/linter/lintProject.js.map +1 -1
  117. package/lib/linter/printError.js +7 -7
  118. package/lib/linter/printError.js.map +1 -1
  119. package/lib/linter/segmentSchema.js +2 -2
  120. package/lib/linter/segmentSchema.js.map +1 -1
  121. package/lib/linter/testSchema.d.ts +155 -3
  122. package/lib/linter/testSchema.js +47 -17
  123. package/lib/linter/testSchema.js.map +1 -1
  124. package/lib/list/index.d.ts +1 -0
  125. package/lib/list/index.js +349 -517
  126. package/lib/list/index.js.map +1 -1
  127. package/lib/{tester → list}/matrix.d.ts +1 -1
  128. package/lib/{tester → list}/matrix.js +50 -42
  129. package/lib/list/matrix.js.map +1 -0
  130. package/lib/{tester → list}/matrix.spec.js +7 -7
  131. package/lib/list/matrix.spec.js.map +1 -0
  132. package/lib/site/exportSite.js +25 -71
  133. package/lib/site/exportSite.js.map +1 -1
  134. package/lib/site/generateHistory.d.ts +1 -1
  135. package/lib/site/generateHistory.js +26 -82
  136. package/lib/site/generateHistory.js.map +1 -1
  137. package/lib/site/generateSiteSearchIndex.d.ts +1 -1
  138. package/lib/site/generateSiteSearchIndex.js +182 -259
  139. package/lib/site/generateSiteSearchIndex.js.map +1 -1
  140. package/lib/site/getLastModifiedFromHistory.d.ts +1 -1
  141. package/lib/site/getLastModifiedFromHistory.js +2 -2
  142. package/lib/site/getLastModifiedFromHistory.js.map +1 -1
  143. package/lib/site/getOwnerAndRepoFromUrl.js +6 -6
  144. package/lib/site/getOwnerAndRepoFromUrl.js.map +1 -1
  145. package/lib/site/getRelativePaths.js +7 -7
  146. package/lib/site/getRelativePaths.js.map +1 -1
  147. package/lib/site/getRepoDetails.js +20 -20
  148. package/lib/site/getRepoDetails.js.map +1 -1
  149. package/lib/site/index.js +25 -73
  150. package/lib/site/index.js.map +1 -1
  151. package/lib/site/serveSite.js +10 -10
  152. package/lib/site/serveSite.js.map +1 -1
  153. package/lib/tester/helpers.d.ts +2 -0
  154. package/lib/tester/helpers.js +71 -0
  155. package/lib/tester/helpers.js.map +1 -0
  156. package/lib/tester/helpers.spec.js +115 -0
  157. package/lib/tester/helpers.spec.js.map +1 -0
  158. package/lib/tester/index.d.ts +0 -1
  159. package/lib/tester/index.js +0 -1
  160. package/lib/tester/index.js.map +1 -1
  161. package/lib/tester/prettyDuration.js +11 -11
  162. package/lib/tester/prettyDuration.js.map +1 -1
  163. package/lib/tester/printTestResult.d.ts +1 -1
  164. package/lib/tester/printTestResult.js +35 -15
  165. package/lib/tester/printTestResult.js.map +1 -1
  166. package/lib/tester/testFeature.d.ts +4 -2
  167. package/lib/tester/testFeature.js +264 -226
  168. package/lib/tester/testFeature.js.map +1 -1
  169. package/lib/tester/testProject.d.ts +3 -7
  170. package/lib/tester/testProject.js +145 -246
  171. package/lib/tester/testProject.js.map +1 -1
  172. package/lib/tester/testSegment.d.ts +5 -2
  173. package/lib/tester/testSegment.js +65 -102
  174. package/lib/tester/testSegment.js.map +1 -1
  175. package/lib/utils/extractKeys.d.ts +2 -1
  176. package/lib/utils/extractKeys.js +57 -12
  177. package/lib/utils/extractKeys.js.map +1 -1
  178. package/lib/utils/git.d.ts +1 -1
  179. package/lib/utils/git.js +23 -23
  180. package/lib/utils/git.js.map +1 -1
  181. package/lib/utils/pretty.js +2 -4
  182. package/lib/utils/pretty.js.map +1 -1
  183. package/package.json +5 -6
  184. package/src/assess-distribution/index.ts +3 -2
  185. package/src/benchmark/index.ts +3 -3
  186. package/src/builder/allocator.spec.ts +1 -1
  187. package/src/builder/allocator.ts +1 -1
  188. package/src/builder/buildDatafile.ts +161 -124
  189. package/src/builder/buildProject.ts +6 -3
  190. package/src/builder/convertToV1.ts +166 -0
  191. package/src/builder/getFeatureRanges.ts +1 -1
  192. package/src/builder/hashes.ts +109 -0
  193. package/src/builder/traffic.ts +41 -15
  194. package/src/cli/cli.ts +1 -1
  195. package/src/cli/plugins.ts +0 -2
  196. package/src/config/projectConfig.ts +13 -10
  197. package/src/datasource/adapter.ts +1 -1
  198. package/src/datasource/datasource.ts +23 -2
  199. package/src/datasource/filesystemAdapter.ts +11 -12
  200. package/src/evaluate/index.ts +7 -6
  201. package/src/find-duplicate-segments/findDuplicateSegments.ts +1 -1
  202. package/src/find-usage/index.ts +111 -44
  203. package/src/generate-code/index.ts +1 -3
  204. package/src/generate-code/typescript.ts +7 -29
  205. package/src/index.ts +0 -1
  206. package/src/info/index.ts +2 -2
  207. package/src/init/index.ts +2 -2
  208. package/src/linter/attributeSchema.ts +18 -2
  209. package/src/linter/checkCircularDependency.ts +1 -1
  210. package/src/linter/checkPercentageExceedingSlot.ts +28 -8
  211. package/src/linter/conditionSchema.ts +66 -10
  212. package/src/linter/featureSchema.ts +312 -116
  213. package/src/linter/lintProject.ts +9 -4
  214. package/src/linter/testSchema.ts +42 -3
  215. package/src/list/index.ts +18 -30
  216. package/src/{tester → list}/matrix.ts +33 -11
  217. package/src/site/exportSite.ts +2 -4
  218. package/src/site/generateHistory.ts +1 -1
  219. package/src/site/generateSiteSearchIndex.ts +58 -50
  220. package/src/site/getLastModifiedFromHistory.ts +1 -1
  221. package/src/tester/helpers.spec.ts +149 -0
  222. package/src/tester/helpers.ts +76 -0
  223. package/src/tester/index.ts +0 -1
  224. package/src/tester/printTestResult.ts +25 -3
  225. package/src/tester/testFeature.ts +270 -124
  226. package/src/tester/testProject.ts +28 -49
  227. package/src/tester/testSegment.ts +48 -40
  228. package/src/utils/extractKeys.ts +58 -1
  229. package/src/utils/git.ts +1 -1
  230. package/tsconfig.cjs.json +1 -0
  231. package/coverage/lcov-report/lib/tester/checkIfObjectsAreEqual.js.html +0 -151
  232. package/coverage/lcov-report/src/tester/checkIfObjectsAreEqual.ts.html +0 -157
  233. package/lib/restore/index.d.ts +0 -4
  234. package/lib/restore/index.js +0 -91
  235. package/lib/restore/index.js.map +0 -1
  236. package/lib/tester/checkIfArraysAreEqual.d.ts +0 -1
  237. package/lib/tester/checkIfArraysAreEqual.js +0 -18
  238. package/lib/tester/checkIfArraysAreEqual.js.map +0 -1
  239. package/lib/tester/checkIfObjectsAreEqual.d.ts +0 -1
  240. package/lib/tester/checkIfObjectsAreEqual.js +0 -23
  241. package/lib/tester/checkIfObjectsAreEqual.js.map +0 -1
  242. package/lib/tester/checkIfObjectsAreEqual.spec.js +0 -26
  243. package/lib/tester/checkIfObjectsAreEqual.spec.js.map +0 -1
  244. package/lib/tester/matrix.js.map +0 -1
  245. package/lib/tester/matrix.spec.js.map +0 -1
  246. package/src/restore/index.ts +0 -42
  247. package/src/tester/checkIfArraysAreEqual.ts +0 -16
  248. package/src/tester/checkIfObjectsAreEqual.spec.ts +0 -31
  249. package/src/tester/checkIfObjectsAreEqual.ts +0 -24
  250. /package/lib/{tester → list}/matrix.spec.d.ts +0 -0
  251. /package/lib/tester/{checkIfObjectsAreEqual.spec.d.ts → helpers.spec.d.ts} +0 -0
  252. /package/src/{tester → list}/matrix.spec.ts +0 -0
@@ -22,147 +22,164 @@ export declare function getFeatureZodSchema(projectConfig: ProjectConfig, condit
22
22
  }, {
23
23
  or?: string[];
24
24
  }>]>;
25
- variablesSchema: z.ZodOptional<z.ZodEffects<z.ZodArray<z.ZodObject<{
25
+ variablesSchema: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
26
26
  deprecated: z.ZodOptional<z.ZodBoolean>;
27
- key: z.ZodEffects<z.ZodString, string, string>;
28
27
  type: z.ZodEnum<["string", "integer", "boolean", "double", "array", "object", "json"]>;
29
28
  description: z.ZodOptional<z.ZodString>;
30
29
  defaultValue: z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodString, "many">, z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodUnknown>, Record<string, unknown>, Record<string, unknown>>]>;
30
+ useDefaultWhenDisabled: z.ZodOptional<z.ZodBoolean>;
31
+ disabledValue: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodString, "many">, z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodUnknown>, Record<string, unknown>, Record<string, unknown>>]>>;
31
32
  }, "strict", z.ZodTypeAny, {
32
33
  deprecated?: boolean;
33
- key?: string;
34
34
  type?: "string" | "boolean" | "object" | "json" | "integer" | "double" | "array";
35
35
  description?: string;
36
36
  defaultValue?: string | number | boolean | string[] | Record<string, unknown>;
37
+ useDefaultWhenDisabled?: boolean;
38
+ disabledValue?: string | number | boolean | string[] | Record<string, unknown>;
37
39
  }, {
38
40
  deprecated?: boolean;
39
- key?: string;
40
- type?: "string" | "boolean" | "object" | "json" | "integer" | "double" | "array";
41
- description?: string;
42
- defaultValue?: string | number | boolean | string[] | Record<string, unknown>;
43
- }>, "many">, {
44
- deprecated?: boolean;
45
- key?: string;
46
- type?: "string" | "boolean" | "object" | "json" | "integer" | "double" | "array";
47
- description?: string;
48
- defaultValue?: string | number | boolean | string[] | Record<string, unknown>;
49
- }[], {
50
- deprecated?: boolean;
51
- key?: string;
52
41
  type?: "string" | "boolean" | "object" | "json" | "integer" | "double" | "array";
53
42
  description?: string;
54
43
  defaultValue?: string | number | boolean | string[] | Record<string, unknown>;
55
- }[]>>;
44
+ useDefaultWhenDisabled?: boolean;
45
+ disabledValue?: string | number | boolean | string[] | Record<string, unknown>;
46
+ }>>>;
47
+ disabledVariationValue: z.ZodOptional<z.ZodString>;
56
48
  variations: z.ZodOptional<z.ZodEffects<z.ZodArray<z.ZodObject<{
57
49
  description: z.ZodOptional<z.ZodString>;
58
50
  value: z.ZodString;
59
51
  weight: z.ZodNumber;
60
- variables: z.ZodOptional<z.ZodArray<z.ZodObject<{
61
- key: z.ZodString;
52
+ variables: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodString, "many">, z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodUnknown>, Record<string, unknown>, Record<string, unknown>>]>>>;
53
+ variableOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodUnion<[z.ZodObject<{
54
+ conditions: any;
62
55
  value: z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodString, "many">, z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodUnknown>, Record<string, unknown>, Record<string, unknown>>]>;
63
- overrides: z.ZodOptional<z.ZodArray<z.ZodUnion<[z.ZodObject<{
64
- conditions: any;
65
- value: z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodString, "many">, z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodUnknown>, Record<string, unknown>, Record<string, unknown>>]>;
66
- }, "strict", z.ZodTypeAny, {
67
- conditions?: any;
68
- value?: string | number | boolean | string[] | Record<string, unknown>;
69
- }, {
70
- conditions?: any;
71
- value?: string | number | boolean | string[] | Record<string, unknown>;
72
- }>, z.ZodObject<{
73
- segments: z.ZodUnion<[z.ZodArray<any, "many">, any]>;
74
- value: z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodString, "many">, z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodUnknown>, Record<string, unknown>, Record<string, unknown>>]>;
75
- }, "strict", z.ZodTypeAny, {
76
- segments?: any;
77
- value?: string | number | boolean | string[] | Record<string, unknown>;
78
- }, {
79
- segments?: any;
80
- value?: string | number | boolean | string[] | Record<string, unknown>;
81
- }>]>, "many">>;
82
56
  }, "strict", z.ZodTypeAny, {
83
- key?: string;
57
+ conditions?: any;
84
58
  value?: string | number | boolean | string[] | Record<string, unknown>;
85
- overrides?: ({
86
- conditions?: any;
87
- value?: string | number | boolean | string[] | Record<string, unknown>;
88
- } | {
89
- segments?: any;
90
- value?: string | number | boolean | string[] | Record<string, unknown>;
91
- })[];
92
59
  }, {
93
- key?: string;
60
+ conditions?: any;
94
61
  value?: string | number | boolean | string[] | Record<string, unknown>;
95
- overrides?: ({
96
- conditions?: any;
97
- value?: string | number | boolean | string[] | Record<string, unknown>;
98
- } | {
99
- segments?: any;
100
- value?: string | number | boolean | string[] | Record<string, unknown>;
101
- })[];
102
- }>, "many">>;
62
+ }>, z.ZodObject<{
63
+ segments: z.ZodUnion<[z.ZodArray<any, "many">, any]>;
64
+ value: z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodString, "many">, z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodUnknown>, Record<string, unknown>, Record<string, unknown>>]>;
65
+ }, "strict", z.ZodTypeAny, {
66
+ segments?: any;
67
+ value?: string | number | boolean | string[] | Record<string, unknown>;
68
+ }, {
69
+ segments?: any;
70
+ value?: string | number | boolean | string[] | Record<string, unknown>;
71
+ }>]>, "many">>>;
103
72
  }, "strict", z.ZodTypeAny, {
104
73
  description?: string;
105
74
  value?: string;
106
75
  weight?: number;
107
- variables?: {
108
- key?: string;
76
+ variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
77
+ variableOverrides?: Record<string, ({
78
+ conditions?: any;
109
79
  value?: string | number | boolean | string[] | Record<string, unknown>;
110
- overrides?: ({
111
- conditions?: any;
112
- value?: string | number | boolean | string[] | Record<string, unknown>;
113
- } | {
114
- segments?: any;
115
- value?: string | number | boolean | string[] | Record<string, unknown>;
116
- })[];
117
- }[];
80
+ } | {
81
+ segments?: any;
82
+ value?: string | number | boolean | string[] | Record<string, unknown>;
83
+ })[]>;
118
84
  }, {
119
85
  description?: string;
120
86
  value?: string;
121
87
  weight?: number;
122
- variables?: {
123
- key?: string;
88
+ variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
89
+ variableOverrides?: Record<string, ({
90
+ conditions?: any;
124
91
  value?: string | number | boolean | string[] | Record<string, unknown>;
125
- overrides?: ({
126
- conditions?: any;
127
- value?: string | number | boolean | string[] | Record<string, unknown>;
128
- } | {
129
- segments?: any;
130
- value?: string | number | boolean | string[] | Record<string, unknown>;
131
- })[];
132
- }[];
92
+ } | {
93
+ segments?: any;
94
+ value?: string | number | boolean | string[] | Record<string, unknown>;
95
+ })[]>;
133
96
  }>, "many">, {
134
97
  description?: string;
135
98
  value?: string;
136
99
  weight?: number;
137
- variables?: {
138
- key?: string;
100
+ variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
101
+ variableOverrides?: Record<string, ({
102
+ conditions?: any;
139
103
  value?: string | number | boolean | string[] | Record<string, unknown>;
140
- overrides?: ({
141
- conditions?: any;
142
- value?: string | number | boolean | string[] | Record<string, unknown>;
143
- } | {
144
- segments?: any;
145
- value?: string | number | boolean | string[] | Record<string, unknown>;
146
- })[];
147
- }[];
104
+ } | {
105
+ segments?: any;
106
+ value?: string | number | boolean | string[] | Record<string, unknown>;
107
+ })[]>;
148
108
  }[], {
149
109
  description?: string;
150
110
  value?: string;
151
111
  weight?: number;
152
- variables?: {
153
- key?: string;
112
+ variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
113
+ variableOverrides?: Record<string, ({
114
+ conditions?: any;
154
115
  value?: string | number | boolean | string[] | Record<string, unknown>;
155
- overrides?: ({
156
- conditions?: any;
157
- value?: string | number | boolean | string[] | Record<string, unknown>;
158
- } | {
159
- segments?: any;
160
- value?: string | number | boolean | string[] | Record<string, unknown>;
161
- })[];
162
- }[];
116
+ } | {
117
+ segments?: any;
118
+ value?: string | number | boolean | string[] | Record<string, unknown>;
119
+ })[]>;
163
120
  }[]>>;
164
- environments: z.ZodTypeAny;
165
- expose: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodArray<z.ZodEffects<z.ZodString, string, string>, "many">]>> | z.ZodOptional<z.ZodNever>;
121
+ expose: z.ZodOptional<z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodArray<z.ZodEffects<z.ZodString, string, string>, "many">]>>> | z.ZodOptional<z.ZodRecord<z.ZodEnum<[string, ...string[]]>, z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodArray<z.ZodEffects<z.ZodString, string, string>, "many">]>>>>;
122
+ force: z.ZodOptional<z.ZodArray<z.ZodUnion<[z.ZodObject<{
123
+ segments: z.ZodUnion<[z.ZodArray<any, "many">, any]>;
124
+ enabled: z.ZodOptional<z.ZodBoolean>;
125
+ variation: z.ZodOptional<z.ZodString>;
126
+ variables: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodString, "many">, z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodUnknown>, Record<string, unknown>, Record<string, unknown>>]>>>;
127
+ }, "strict", z.ZodTypeAny, {
128
+ segments?: any;
129
+ enabled?: boolean;
130
+ variation?: string;
131
+ variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
132
+ }, {
133
+ segments?: any;
134
+ enabled?: boolean;
135
+ variation?: string;
136
+ variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
137
+ }>, z.ZodObject<{
138
+ conditions: any;
139
+ enabled: z.ZodOptional<z.ZodBoolean>;
140
+ variation: z.ZodOptional<z.ZodString>;
141
+ variables: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodString, "many">, z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodUnknown>, Record<string, unknown>, Record<string, unknown>>]>>>;
142
+ }, "strict", z.ZodTypeAny, {
143
+ conditions?: any;
144
+ enabled?: boolean;
145
+ variation?: string;
146
+ variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
147
+ }, {
148
+ conditions?: any;
149
+ enabled?: boolean;
150
+ variation?: string;
151
+ variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
152
+ }>]>, "many">> | z.ZodOptional<z.ZodRecord<z.ZodEnum<[string, ...string[]]>, z.ZodOptional<z.ZodArray<z.ZodUnion<[z.ZodObject<{
153
+ segments: z.ZodUnion<[z.ZodArray<any, "many">, any]>;
154
+ enabled: z.ZodOptional<z.ZodBoolean>;
155
+ variation: z.ZodOptional<z.ZodString>;
156
+ variables: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodString, "many">, z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodUnknown>, Record<string, unknown>, Record<string, unknown>>]>>>;
157
+ }, "strict", z.ZodTypeAny, {
158
+ segments?: any;
159
+ enabled?: boolean;
160
+ variation?: string;
161
+ variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
162
+ }, {
163
+ segments?: any;
164
+ enabled?: boolean;
165
+ variation?: string;
166
+ variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
167
+ }>, z.ZodObject<{
168
+ conditions: any;
169
+ enabled: z.ZodOptional<z.ZodBoolean>;
170
+ variation: z.ZodOptional<z.ZodString>;
171
+ variables: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodString, "many">, z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodUnknown>, Record<string, unknown>, Record<string, unknown>>]>>>;
172
+ }, "strict", z.ZodTypeAny, {
173
+ conditions?: any;
174
+ enabled?: boolean;
175
+ variation?: string;
176
+ variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
177
+ }, {
178
+ conditions?: any;
179
+ enabled?: boolean;
180
+ variation?: string;
181
+ variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
182
+ }>]>, "many">>>>;
166
183
  rules: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodArray<z.ZodObject<{
167
184
  key: z.ZodString;
168
185
  description: z.ZodOptional<z.ZodString>;
@@ -171,6 +188,7 @@ export declare function getFeatureZodSchema(projectConfig: ProjectConfig, condit
171
188
  enabled: z.ZodOptional<z.ZodBoolean>;
172
189
  variation: z.ZodOptional<z.ZodString>;
173
190
  variables: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodString, "many">, z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodUnknown>, Record<string, unknown>, Record<string, unknown>>]>>>;
191
+ variationWeights: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
174
192
  }, "strict", z.ZodTypeAny, {
175
193
  key?: string;
176
194
  description?: string;
@@ -179,6 +197,7 @@ export declare function getFeatureZodSchema(projectConfig: ProjectConfig, condit
179
197
  enabled?: boolean;
180
198
  variation?: string;
181
199
  variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
200
+ variationWeights?: Record<string, number>;
182
201
  }, {
183
202
  key?: string;
184
203
  description?: string;
@@ -187,6 +206,7 @@ export declare function getFeatureZodSchema(projectConfig: ProjectConfig, condit
187
206
  enabled?: boolean;
188
207
  variation?: string;
189
208
  variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
209
+ variationWeights?: Record<string, number>;
190
210
  }>, "many">, {
191
211
  key?: string;
192
212
  description?: string;
@@ -195,6 +215,7 @@ export declare function getFeatureZodSchema(projectConfig: ProjectConfig, condit
195
215
  enabled?: boolean;
196
216
  variation?: string;
197
217
  variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
218
+ variationWeights?: Record<string, number>;
198
219
  }[], {
199
220
  key?: string;
200
221
  description?: string;
@@ -203,6 +224,7 @@ export declare function getFeatureZodSchema(projectConfig: ProjectConfig, condit
203
224
  enabled?: boolean;
204
225
  variation?: string;
205
226
  variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
227
+ variationWeights?: Record<string, number>;
206
228
  }[]>, {
207
229
  key?: string;
208
230
  description?: string;
@@ -211,6 +233,7 @@ export declare function getFeatureZodSchema(projectConfig: ProjectConfig, condit
211
233
  enabled?: boolean;
212
234
  variation?: string;
213
235
  variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
236
+ variationWeights?: Record<string, number>;
214
237
  }[], {
215
238
  key?: string;
216
239
  description?: string;
@@ -219,6 +242,7 @@ export declare function getFeatureZodSchema(projectConfig: ProjectConfig, condit
219
242
  enabled?: boolean;
220
243
  variation?: string;
221
244
  variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
245
+ variationWeights?: Record<string, number>;
222
246
  }[]>, {
223
247
  key?: string;
224
248
  description?: string;
@@ -227,6 +251,7 @@ export declare function getFeatureZodSchema(projectConfig: ProjectConfig, condit
227
251
  enabled?: boolean;
228
252
  variation?: string;
229
253
  variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
254
+ variationWeights?: Record<string, number>;
230
255
  }[], {
231
256
  key?: string;
232
257
  description?: string;
@@ -235,38 +260,89 @@ export declare function getFeatureZodSchema(projectConfig: ProjectConfig, condit
235
260
  enabled?: boolean;
236
261
  variation?: string;
237
262
  variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
238
- }[]> | z.ZodOptional<z.ZodNever>;
239
- force: z.ZodOptional<z.ZodArray<z.ZodUnion<[z.ZodObject<{
263
+ variationWeights?: Record<string, number>;
264
+ }[]> | z.ZodRecord<z.ZodEnum<[string, ...string[]]>, z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodArray<z.ZodObject<{
265
+ key: z.ZodString;
266
+ description: z.ZodOptional<z.ZodString>;
240
267
  segments: z.ZodUnion<[z.ZodArray<any, "many">, any]>;
268
+ percentage: z.ZodNumber;
241
269
  enabled: z.ZodOptional<z.ZodBoolean>;
242
270
  variation: z.ZodOptional<z.ZodString>;
243
271
  variables: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodString, "many">, z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodUnknown>, Record<string, unknown>, Record<string, unknown>>]>>>;
272
+ variationWeights: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
244
273
  }, "strict", z.ZodTypeAny, {
274
+ key?: string;
275
+ description?: string;
245
276
  segments?: any;
277
+ percentage?: number;
246
278
  enabled?: boolean;
247
279
  variation?: string;
248
280
  variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
281
+ variationWeights?: Record<string, number>;
249
282
  }, {
283
+ key?: string;
284
+ description?: string;
250
285
  segments?: any;
286
+ percentage?: number;
251
287
  enabled?: boolean;
252
288
  variation?: string;
253
289
  variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
254
- }>, z.ZodObject<{
255
- conditions: any;
256
- enabled: z.ZodOptional<z.ZodBoolean>;
257
- variation: z.ZodOptional<z.ZodString>;
258
- variables: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodString, "many">, z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodUnknown>, Record<string, unknown>, Record<string, unknown>>]>>>;
259
- }, "strict", z.ZodTypeAny, {
260
- conditions?: any;
290
+ variationWeights?: Record<string, number>;
291
+ }>, "many">, {
292
+ key?: string;
293
+ description?: string;
294
+ segments?: any;
295
+ percentage?: number;
261
296
  enabled?: boolean;
262
297
  variation?: string;
263
298
  variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
264
- }, {
265
- conditions?: any;
299
+ variationWeights?: Record<string, number>;
300
+ }[], {
301
+ key?: string;
302
+ description?: string;
303
+ segments?: any;
304
+ percentage?: number;
266
305
  enabled?: boolean;
267
306
  variation?: string;
268
307
  variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
269
- }>]>, "many">> | z.ZodOptional<z.ZodNever>;
308
+ variationWeights?: Record<string, number>;
309
+ }[]>, {
310
+ key?: string;
311
+ description?: string;
312
+ segments?: any;
313
+ percentage?: number;
314
+ enabled?: boolean;
315
+ variation?: string;
316
+ variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
317
+ variationWeights?: Record<string, number>;
318
+ }[], {
319
+ key?: string;
320
+ description?: string;
321
+ segments?: any;
322
+ percentage?: number;
323
+ enabled?: boolean;
324
+ variation?: string;
325
+ variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
326
+ variationWeights?: Record<string, number>;
327
+ }[]>, {
328
+ key?: string;
329
+ description?: string;
330
+ segments?: any;
331
+ percentage?: number;
332
+ enabled?: boolean;
333
+ variation?: string;
334
+ variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
335
+ variationWeights?: Record<string, number>;
336
+ }[], {
337
+ key?: string;
338
+ description?: string;
339
+ segments?: any;
340
+ percentage?: number;
341
+ enabled?: boolean;
342
+ variation?: string;
343
+ variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
344
+ variationWeights?: Record<string, number>;
345
+ }[]>>;
270
346
  }, "strict", z.ZodTypeAny, {
271
347
  archived?: boolean;
272
348
  deprecated?: boolean;
@@ -279,41 +355,40 @@ export declare function getFeatureZodSchema(projectConfig: ProjectConfig, condit
279
355
  bucketBy?: string | string[] | {
280
356
  or?: string[];
281
357
  };
282
- variablesSchema?: {
358
+ variablesSchema?: Record<string, {
283
359
  deprecated?: boolean;
284
- key?: string;
285
360
  type?: "string" | "boolean" | "object" | "json" | "integer" | "double" | "array";
286
361
  description?: string;
287
362
  defaultValue?: string | number | boolean | string[] | Record<string, unknown>;
288
- }[];
363
+ useDefaultWhenDisabled?: boolean;
364
+ disabledValue?: string | number | boolean | string[] | Record<string, unknown>;
365
+ }>;
366
+ disabledVariationValue?: string;
289
367
  variations?: {
290
368
  description?: string;
291
369
  value?: string;
292
370
  weight?: number;
293
- variables?: {
294
- key?: string;
371
+ variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
372
+ variableOverrides?: Record<string, ({
373
+ conditions?: any;
295
374
  value?: string | number | boolean | string[] | Record<string, unknown>;
296
- overrides?: ({
297
- conditions?: any;
298
- value?: string | number | boolean | string[] | Record<string, unknown>;
299
- } | {
300
- segments?: any;
301
- value?: string | number | boolean | string[] | Record<string, unknown>;
302
- })[];
303
- }[];
375
+ } | {
376
+ segments?: any;
377
+ value?: string | number | boolean | string[] | Record<string, unknown>;
378
+ })[]>;
304
379
  }[];
305
- environments?: any;
306
- expose?: boolean | string[];
307
- rules?: {
308
- key?: string;
309
- description?: string;
380
+ expose?: boolean | string[] | Record<string, boolean | string[]>;
381
+ force?: ({
310
382
  segments?: any;
311
- percentage?: number;
312
383
  enabled?: boolean;
313
384
  variation?: string;
314
385
  variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
315
- }[];
316
- force?: ({
386
+ } | {
387
+ conditions?: any;
388
+ enabled?: boolean;
389
+ variation?: string;
390
+ variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
391
+ })[] | Record<string, ({
317
392
  segments?: any;
318
393
  enabled?: boolean;
319
394
  variation?: string;
@@ -323,7 +398,26 @@ export declare function getFeatureZodSchema(projectConfig: ProjectConfig, condit
323
398
  enabled?: boolean;
324
399
  variation?: string;
325
400
  variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
326
- })[];
401
+ })[]>;
402
+ rules?: {
403
+ key?: string;
404
+ description?: string;
405
+ segments?: any;
406
+ percentage?: number;
407
+ enabled?: boolean;
408
+ variation?: string;
409
+ variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
410
+ variationWeights?: Record<string, number>;
411
+ }[] | Record<string, {
412
+ key?: string;
413
+ description?: string;
414
+ segments?: any;
415
+ percentage?: number;
416
+ enabled?: boolean;
417
+ variation?: string;
418
+ variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
419
+ variationWeights?: Record<string, number>;
420
+ }[]>;
327
421
  }, {
328
422
  archived?: boolean;
329
423
  deprecated?: boolean;
@@ -336,41 +430,40 @@ export declare function getFeatureZodSchema(projectConfig: ProjectConfig, condit
336
430
  bucketBy?: string | string[] | {
337
431
  or?: string[];
338
432
  };
339
- variablesSchema?: {
433
+ variablesSchema?: Record<string, {
340
434
  deprecated?: boolean;
341
- key?: string;
342
435
  type?: "string" | "boolean" | "object" | "json" | "integer" | "double" | "array";
343
436
  description?: string;
344
437
  defaultValue?: string | number | boolean | string[] | Record<string, unknown>;
345
- }[];
438
+ useDefaultWhenDisabled?: boolean;
439
+ disabledValue?: string | number | boolean | string[] | Record<string, unknown>;
440
+ }>;
441
+ disabledVariationValue?: string;
346
442
  variations?: {
347
443
  description?: string;
348
444
  value?: string;
349
445
  weight?: number;
350
- variables?: {
351
- key?: string;
446
+ variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
447
+ variableOverrides?: Record<string, ({
448
+ conditions?: any;
449
+ value?: string | number | boolean | string[] | Record<string, unknown>;
450
+ } | {
451
+ segments?: any;
352
452
  value?: string | number | boolean | string[] | Record<string, unknown>;
353
- overrides?: ({
354
- conditions?: any;
355
- value?: string | number | boolean | string[] | Record<string, unknown>;
356
- } | {
357
- segments?: any;
358
- value?: string | number | boolean | string[] | Record<string, unknown>;
359
- })[];
360
- }[];
453
+ })[]>;
361
454
  }[];
362
- environments?: any;
363
- expose?: boolean | string[];
364
- rules?: {
365
- key?: string;
366
- description?: string;
455
+ expose?: boolean | string[] | Record<string, boolean | string[]>;
456
+ force?: ({
367
457
  segments?: any;
368
- percentage?: number;
369
458
  enabled?: boolean;
370
459
  variation?: string;
371
460
  variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
372
- }[];
373
- force?: ({
461
+ } | {
462
+ conditions?: any;
463
+ enabled?: boolean;
464
+ variation?: string;
465
+ variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
466
+ })[] | Record<string, ({
374
467
  segments?: any;
375
468
  enabled?: boolean;
376
469
  variation?: string;
@@ -380,7 +473,26 @@ export declare function getFeatureZodSchema(projectConfig: ProjectConfig, condit
380
473
  enabled?: boolean;
381
474
  variation?: string;
382
475
  variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
383
- })[];
476
+ })[]>;
477
+ rules?: {
478
+ key?: string;
479
+ description?: string;
480
+ segments?: any;
481
+ percentage?: number;
482
+ enabled?: boolean;
483
+ variation?: string;
484
+ variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
485
+ variationWeights?: Record<string, number>;
486
+ }[] | Record<string, {
487
+ key?: string;
488
+ description?: string;
489
+ segments?: any;
490
+ percentage?: number;
491
+ enabled?: boolean;
492
+ variation?: string;
493
+ variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
494
+ variationWeights?: Record<string, number>;
495
+ }[]>;
384
496
  }>, {
385
497
  archived?: boolean;
386
498
  deprecated?: boolean;
@@ -393,41 +505,40 @@ export declare function getFeatureZodSchema(projectConfig: ProjectConfig, condit
393
505
  bucketBy?: string | string[] | {
394
506
  or?: string[];
395
507
  };
396
- variablesSchema?: {
508
+ variablesSchema?: Record<string, {
397
509
  deprecated?: boolean;
398
- key?: string;
399
510
  type?: "string" | "boolean" | "object" | "json" | "integer" | "double" | "array";
400
511
  description?: string;
401
512
  defaultValue?: string | number | boolean | string[] | Record<string, unknown>;
402
- }[];
513
+ useDefaultWhenDisabled?: boolean;
514
+ disabledValue?: string | number | boolean | string[] | Record<string, unknown>;
515
+ }>;
516
+ disabledVariationValue?: string;
403
517
  variations?: {
404
518
  description?: string;
405
519
  value?: string;
406
520
  weight?: number;
407
- variables?: {
408
- key?: string;
521
+ variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
522
+ variableOverrides?: Record<string, ({
523
+ conditions?: any;
524
+ value?: string | number | boolean | string[] | Record<string, unknown>;
525
+ } | {
526
+ segments?: any;
409
527
  value?: string | number | boolean | string[] | Record<string, unknown>;
410
- overrides?: ({
411
- conditions?: any;
412
- value?: string | number | boolean | string[] | Record<string, unknown>;
413
- } | {
414
- segments?: any;
415
- value?: string | number | boolean | string[] | Record<string, unknown>;
416
- })[];
417
- }[];
528
+ })[]>;
418
529
  }[];
419
- environments?: any;
420
- expose?: boolean | string[];
421
- rules?: {
422
- key?: string;
423
- description?: string;
530
+ expose?: boolean | string[] | Record<string, boolean | string[]>;
531
+ force?: ({
424
532
  segments?: any;
425
- percentage?: number;
426
533
  enabled?: boolean;
427
534
  variation?: string;
428
535
  variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
429
- }[];
430
- force?: ({
536
+ } | {
537
+ conditions?: any;
538
+ enabled?: boolean;
539
+ variation?: string;
540
+ variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
541
+ })[] | Record<string, ({
431
542
  segments?: any;
432
543
  enabled?: boolean;
433
544
  variation?: string;
@@ -437,7 +548,26 @@ export declare function getFeatureZodSchema(projectConfig: ProjectConfig, condit
437
548
  enabled?: boolean;
438
549
  variation?: string;
439
550
  variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
440
- })[];
551
+ })[]>;
552
+ rules?: {
553
+ key?: string;
554
+ description?: string;
555
+ segments?: any;
556
+ percentage?: number;
557
+ enabled?: boolean;
558
+ variation?: string;
559
+ variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
560
+ variationWeights?: Record<string, number>;
561
+ }[] | Record<string, {
562
+ key?: string;
563
+ description?: string;
564
+ segments?: any;
565
+ percentage?: number;
566
+ enabled?: boolean;
567
+ variation?: string;
568
+ variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
569
+ variationWeights?: Record<string, number>;
570
+ }[]>;
441
571
  }, {
442
572
  archived?: boolean;
443
573
  deprecated?: boolean;
@@ -450,41 +580,40 @@ export declare function getFeatureZodSchema(projectConfig: ProjectConfig, condit
450
580
  bucketBy?: string | string[] | {
451
581
  or?: string[];
452
582
  };
453
- variablesSchema?: {
583
+ variablesSchema?: Record<string, {
454
584
  deprecated?: boolean;
455
- key?: string;
456
585
  type?: "string" | "boolean" | "object" | "json" | "integer" | "double" | "array";
457
586
  description?: string;
458
587
  defaultValue?: string | number | boolean | string[] | Record<string, unknown>;
459
- }[];
588
+ useDefaultWhenDisabled?: boolean;
589
+ disabledValue?: string | number | boolean | string[] | Record<string, unknown>;
590
+ }>;
591
+ disabledVariationValue?: string;
460
592
  variations?: {
461
593
  description?: string;
462
594
  value?: string;
463
595
  weight?: number;
464
- variables?: {
465
- key?: string;
596
+ variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
597
+ variableOverrides?: Record<string, ({
598
+ conditions?: any;
466
599
  value?: string | number | boolean | string[] | Record<string, unknown>;
467
- overrides?: ({
468
- conditions?: any;
469
- value?: string | number | boolean | string[] | Record<string, unknown>;
470
- } | {
471
- segments?: any;
472
- value?: string | number | boolean | string[] | Record<string, unknown>;
473
- })[];
474
- }[];
600
+ } | {
601
+ segments?: any;
602
+ value?: string | number | boolean | string[] | Record<string, unknown>;
603
+ })[]>;
475
604
  }[];
476
- environments?: any;
477
- expose?: boolean | string[];
478
- rules?: {
479
- key?: string;
480
- description?: string;
605
+ expose?: boolean | string[] | Record<string, boolean | string[]>;
606
+ force?: ({
481
607
  segments?: any;
482
- percentage?: number;
483
608
  enabled?: boolean;
484
609
  variation?: string;
485
610
  variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
486
- }[];
487
- force?: ({
611
+ } | {
612
+ conditions?: any;
613
+ enabled?: boolean;
614
+ variation?: string;
615
+ variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
616
+ })[] | Record<string, ({
488
617
  segments?: any;
489
618
  enabled?: boolean;
490
619
  variation?: string;
@@ -494,5 +623,24 @@ export declare function getFeatureZodSchema(projectConfig: ProjectConfig, condit
494
623
  enabled?: boolean;
495
624
  variation?: string;
496
625
  variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
497
- })[];
626
+ })[]>;
627
+ rules?: {
628
+ key?: string;
629
+ description?: string;
630
+ segments?: any;
631
+ percentage?: number;
632
+ enabled?: boolean;
633
+ variation?: string;
634
+ variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
635
+ variationWeights?: Record<string, number>;
636
+ }[] | Record<string, {
637
+ key?: string;
638
+ description?: string;
639
+ segments?: any;
640
+ percentage?: number;
641
+ enabled?: boolean;
642
+ variation?: string;
643
+ variables?: Record<string, string | number | boolean | string[] | Record<string, unknown>>;
644
+ variationWeights?: Record<string, number>;
645
+ }[]>;
498
646
  }>;