@useinsider/guido 1.4.4 → 2.0.0-beta.143201d

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 (86) hide show
  1. package/README.md +295 -664
  2. package/dist/@types/config/defaults.js +44 -0
  3. package/dist/@types/config/schemas.js +231 -0
  4. package/dist/@types/config/validator.js +56 -0
  5. package/dist/components/Guido.vue.js +1 -1
  6. package/dist/components/Guido.vue2.js +64 -86
  7. package/dist/components/organisms/email-preview/desktop-preview/EmailHeaderInfo.vue2.js +13 -13
  8. package/dist/components/organisms/email-preview/mobile-preview/InboxView.vue.js +5 -5
  9. package/dist/components/organisms/email-preview/mobile-preview/InboxView.vue2.js +13 -13
  10. package/dist/components/organisms/header/LeftSlot.vue.js +1 -1
  11. package/dist/components/organisms/header/LeftSlot.vue2.js +18 -15
  12. package/dist/components/organisms/header/RightSlot.vue.js +10 -10
  13. package/dist/components/organisms/onboarding/NewVersionPopup.vue2.js +22 -19
  14. package/dist/components/organisms/unsubscribe/UnsubscribeBreadcrumb.vue.js +4 -4
  15. package/dist/components/organisms/unsubscribe/UnsubscribeBreadcrumb.vue2.js +8 -8
  16. package/dist/components/organisms/unsubscribe/UnsubscribeTypeSelection.vue.js +3 -3
  17. package/dist/components/organisms/unsubscribe/UnsubscribeTypeSelection.vue2.js +17 -17
  18. package/dist/components/organisms/unsubscribe/UnsubscribeWrapper.vue.js +10 -10
  19. package/dist/composables/useActionsApi.js +42 -25
  20. package/dist/composables/useBlocksConfig.js +23 -20
  21. package/dist/composables/useConfig.js +51 -5
  22. package/dist/composables/useHtmlCompiler.js +20 -19
  23. package/dist/composables/useHtmlValidator.js +41 -41
  24. package/dist/composables/usePartner.js +19 -9
  25. package/dist/composables/useStripo.js +51 -50
  26. package/dist/composables/useTimerClone.js +53 -0
  27. package/dist/composables/useTranslations.js +3 -2
  28. package/dist/config/compiler/unsubscribeCompilerRules.js +1 -1
  29. package/dist/enums/defaults.js +4 -67
  30. package/dist/enums/unsubscribe.js +23 -20
  31. package/dist/extensions/Blocks/Recommendation/store/recommendation.js +12 -11
  32. package/dist/guido.css +1 -1
  33. package/dist/library.js +12 -2
  34. package/dist/node_modules/lodash-es/_arrayLikeKeys.js +10 -10
  35. package/dist/node_modules/valibot/dist/index.js +476 -103
  36. package/dist/services/stripoApi.js +13 -14
  37. package/dist/services/templateLibraryApi.js +18 -18
  38. package/dist/src/@types/config/defaults.d.ts +68 -0
  39. package/dist/src/@types/config/index.d.ts +14 -0
  40. package/dist/src/@types/config/schemas.d.ts +509 -0
  41. package/dist/src/@types/config/types.d.ts +142 -0
  42. package/dist/src/@types/config/validator.d.ts +119 -0
  43. package/dist/src/@types/generic.d.ts +4 -45
  44. package/dist/src/components/Guido.vue.d.ts +13 -12
  45. package/dist/src/components/wrappers/WpModal.vue.d.ts +1 -1
  46. package/dist/src/composables/useActionsApi.d.ts +2 -0
  47. package/dist/src/composables/useConfig.d.ts +186 -2
  48. package/dist/src/composables/usePartner.d.ts +8 -0
  49. package/dist/src/composables/useTimerClone.d.ts +6 -0
  50. package/dist/src/enums/defaults.d.ts +5 -6
  51. package/dist/src/enums/unsubscribe.d.ts +5 -1
  52. package/dist/src/library.d.ts +3 -1
  53. package/dist/src/stores/config.d.ts +1564 -102
  54. package/dist/static/styles/components/narrow-panel.css.js +0 -10
  55. package/dist/stores/config.js +141 -9
  56. package/package.json +1 -1
  57. package/dist/node_modules/lodash-es/_apply.js +0 -16
  58. package/dist/node_modules/lodash-es/_assignMergeValue.js +0 -8
  59. package/dist/node_modules/lodash-es/_assignValue.js +0 -10
  60. package/dist/node_modules/lodash-es/_baseAssignValue.js +0 -12
  61. package/dist/node_modules/lodash-es/_baseCreate.js +0 -17
  62. package/dist/node_modules/lodash-es/_baseKeysIn.js +0 -15
  63. package/dist/node_modules/lodash-es/_baseMerge.js +0 -20
  64. package/dist/node_modules/lodash-es/_baseMergeDeep.js +0 -31
  65. package/dist/node_modules/lodash-es/_baseRest.js +0 -9
  66. package/dist/node_modules/lodash-es/_baseSetToString.js +0 -14
  67. package/dist/node_modules/lodash-es/_cloneArrayBuffer.js +0 -8
  68. package/dist/node_modules/lodash-es/_cloneBuffer.js +0 -9
  69. package/dist/node_modules/lodash-es/_cloneTypedArray.js +0 -8
  70. package/dist/node_modules/lodash-es/_copyArray.js +0 -9
  71. package/dist/node_modules/lodash-es/_copyObject.js +0 -14
  72. package/dist/node_modules/lodash-es/_createAssigner.js +0 -15
  73. package/dist/node_modules/lodash-es/_defineProperty.js +0 -11
  74. package/dist/node_modules/lodash-es/_getPrototype.js +0 -5
  75. package/dist/node_modules/lodash-es/_initCloneObject.js +0 -9
  76. package/dist/node_modules/lodash-es/_nativeKeysIn.js +0 -10
  77. package/dist/node_modules/lodash-es/_overRest.js +0 -15
  78. package/dist/node_modules/lodash-es/_safeGet.js +0 -7
  79. package/dist/node_modules/lodash-es/_setToString.js +0 -6
  80. package/dist/node_modules/lodash-es/_shortOut.js +0 -16
  81. package/dist/node_modules/lodash-es/constant.js +0 -8
  82. package/dist/node_modules/lodash-es/isArrayLikeObject.js +0 -8
  83. package/dist/node_modules/lodash-es/isPlainObject.js +0 -16
  84. package/dist/node_modules/lodash-es/keysIn.js +0 -9
  85. package/dist/node_modules/lodash-es/merge.js +0 -8
  86. package/dist/node_modules/lodash-es/toPlainObject.js +0 -8
@@ -1,104 +1,1566 @@
1
- import type { GuidoConfig, TemplateConfig } from '@@/Types/generic';
2
- interface StoreState {
3
- guidoConfig: GuidoConfig;
4
- templateConfig?: TemplateConfig;
1
+ import type { GuidoConfig, GuidoConfigInput, IdentityConfig, PartnerConfig, TemplateConfig, EditorConfig, UIConfig, FeaturesConfig, BlocksConfig, CompilerConfig } from '@@/Types/config';
2
+ interface ConfigStoreState {
3
+ /** Whether the config has been initialized */
4
+ initialized: boolean;
5
+ /** The validated and parsed configuration */
6
+ config: GuidoConfig | null;
5
7
  }
6
- export declare const useConfigStore: import("pinia").StoreDefinition<"guidoConfig", StoreState, {
7
- getVariationId: (state: {
8
- guidoConfig: {
9
- translationsPath: string;
10
- htmlCompilerRules?: ({
11
- type: "replace";
12
- search: string;
13
- replacement: string;
14
- replaceAll?: boolean | undefined;
15
- id: string;
16
- description?: string | undefined;
17
- priority: number;
18
- } | {
19
- type: "regex";
20
- pattern: string;
21
- replacement: string;
22
- flags?: string | undefined;
23
- id: string;
24
- description?: string | undefined;
25
- priority: number;
26
- } | {
27
- type: "remove";
28
- targets: string[] | {
29
- exec: (string: string) => RegExpExecArray | null;
30
- test: (string: string) => boolean;
31
- readonly source: string;
32
- readonly global: boolean;
33
- readonly ignoreCase: boolean;
34
- readonly multiline: boolean;
35
- lastIndex: number;
36
- compile: (pattern: string, flags?: string) => RegExp;
37
- readonly flags: string;
38
- readonly sticky: boolean;
39
- readonly unicode: boolean;
40
- readonly dotAll: boolean;
41
- readonly hasIndices: boolean;
42
- [Symbol.match]: (string: string) => RegExpMatchArray | null;
43
- [Symbol.replace]: {
44
- (string: string, replaceValue: string): string;
45
- (string: string, replacer: (substring: string, ...args: any[]) => string): string;
46
- };
47
- [Symbol.search]: (string: string) => number;
48
- [Symbol.split]: (string: string, limit?: number) => string[];
49
- [Symbol.matchAll]: (str: string) => IterableIterator<RegExpMatchArray>;
50
- }[];
51
- id: string;
52
- description?: string | undefined;
53
- priority: number;
54
- } | {
55
- type: "custom";
56
- processor: (html: string) => string;
57
- id: string;
58
- description?: string | undefined;
59
- priority: number;
60
- })[] | undefined;
61
- ignoreDefaultHtmlCompilerRules?: boolean | undefined;
62
- useHeader?: boolean | undefined;
63
- emailHeader: {
64
- senderName: string;
65
- subject: string;
66
- };
67
- migrationDate: number;
68
- partner?: {
69
- partnerName: string;
70
- productType: number;
71
- messageType: number;
72
- } | undefined;
73
- extensions?: {
74
- unsubscribe?: boolean | undefined;
75
- } | undefined;
76
- features?: {
77
- dynamicContent?: boolean | undefined;
78
- saveAsTemplate?: boolean | undefined;
79
- versionHistory?: boolean | undefined;
80
- testMessage?: boolean | undefined;
81
- displayConditions?: boolean | undefined;
82
- } | undefined;
83
- blocks?: {
84
- excludeDefaults?: import("@@/Types/generic").GuidoBlockType[] | undefined;
85
- includeCustoms?: import("@@/Types/generic").GuidoCustomBlockType[] | undefined;
86
- } | undefined;
87
- backButtonLabel?: string | undefined;
88
- };
89
- templateConfig?: {
90
- preselectedDynamicContentList?: {
91
- value: string;
92
- fallback?: string | undefined;
93
- format?: {
94
- key: string;
95
- value: string;
96
- } | undefined;
97
- text: string;
98
- }[] | undefined;
99
- selectedUnsubscribePages?: number[] | undefined;
100
- variationId?: string | undefined;
101
- } | undefined;
102
- } & import("pinia").PiniaCustomStateProperties<StoreState>) => string;
103
- }, {}>;
8
+ export declare const useConfigStore: import("pinia").StoreDefinition<"guido-config", ConfigStoreState, {
9
+ /**
10
+ * Get the identity configuration
11
+ */
12
+ identity: (state: {
13
+ initialized: boolean;
14
+ config: {
15
+ identity: {
16
+ templateId: string;
17
+ userId: string;
18
+ variationId?: string | undefined;
19
+ };
20
+ partner: {
21
+ name: string;
22
+ productType: 60 | 49 | 97;
23
+ messageType: 1 | 2;
24
+ username: string;
25
+ };
26
+ template: {
27
+ html: string;
28
+ css: string;
29
+ preselectedDynamicContent: {
30
+ text: string;
31
+ value: string;
32
+ fallback?: string | undefined;
33
+ format?: {
34
+ key: string;
35
+ value: string;
36
+ } | undefined;
37
+ }[];
38
+ selectedUnsubscribePages: number[];
39
+ };
40
+ editor: {
41
+ locale: string;
42
+ translationsPath: string;
43
+ migrationDate: number;
44
+ emailHeader: {
45
+ senderName: string;
46
+ subject: string;
47
+ };
48
+ };
49
+ ui: {
50
+ showHeader: boolean;
51
+ backButtonLabel?: string | undefined;
52
+ };
53
+ features: {
54
+ dynamicContent: boolean;
55
+ saveAsTemplate: boolean;
56
+ versionHistory: boolean;
57
+ testMessage: boolean;
58
+ displayConditions: boolean;
59
+ unsubscribe: boolean;
60
+ modulesDisabled: boolean;
61
+ };
62
+ blocks: {
63
+ excludeDefaults: ("amp-accordion" | "amp-carousel" | "amp-form-controls" | "banner-block" | "button-block" | "html-block" | "image-block" | "menu-block" | "social-block" | "spacer-block" | "text-block" | "timer-block" | "video-block")[];
64
+ includeCustoms: ("dynamic-content" | "checkbox-block" | "radio-button-block" | "recommendation-block" | "unsubscribe-block" | "coupon-block" | "items-block")[];
65
+ };
66
+ compiler: {
67
+ customRules: ({
68
+ type: "replace";
69
+ search: string;
70
+ replacement: string;
71
+ replaceAll?: boolean | undefined;
72
+ id: string;
73
+ description?: string | undefined;
74
+ priority: number;
75
+ } | {
76
+ type: "regex";
77
+ pattern: string;
78
+ replacement: string;
79
+ flags?: string | undefined;
80
+ id: string;
81
+ description?: string | undefined;
82
+ priority: number;
83
+ } | {
84
+ type: "remove";
85
+ targets: string[];
86
+ id: string;
87
+ description?: string | undefined;
88
+ priority: number;
89
+ } | {
90
+ type: "custom";
91
+ processor: (html: string) => string;
92
+ id: string;
93
+ description?: string | undefined;
94
+ priority: number;
95
+ })[];
96
+ ignoreDefaultRules: boolean;
97
+ };
98
+ } | null;
99
+ } & import("pinia").PiniaCustomStateProperties<ConfigStoreState>) => IdentityConfig | null;
100
+ /**
101
+ * Get the partner configuration
102
+ */
103
+ partner: (state: {
104
+ initialized: boolean;
105
+ config: {
106
+ identity: {
107
+ templateId: string;
108
+ userId: string;
109
+ variationId?: string | undefined;
110
+ };
111
+ partner: {
112
+ name: string;
113
+ productType: 60 | 49 | 97;
114
+ messageType: 1 | 2;
115
+ username: string;
116
+ };
117
+ template: {
118
+ html: string;
119
+ css: string;
120
+ preselectedDynamicContent: {
121
+ text: string;
122
+ value: string;
123
+ fallback?: string | undefined;
124
+ format?: {
125
+ key: string;
126
+ value: string;
127
+ } | undefined;
128
+ }[];
129
+ selectedUnsubscribePages: number[];
130
+ };
131
+ editor: {
132
+ locale: string;
133
+ translationsPath: string;
134
+ migrationDate: number;
135
+ emailHeader: {
136
+ senderName: string;
137
+ subject: string;
138
+ };
139
+ };
140
+ ui: {
141
+ showHeader: boolean;
142
+ backButtonLabel?: string | undefined;
143
+ };
144
+ features: {
145
+ dynamicContent: boolean;
146
+ saveAsTemplate: boolean;
147
+ versionHistory: boolean;
148
+ testMessage: boolean;
149
+ displayConditions: boolean;
150
+ unsubscribe: boolean;
151
+ modulesDisabled: boolean;
152
+ };
153
+ blocks: {
154
+ excludeDefaults: ("amp-accordion" | "amp-carousel" | "amp-form-controls" | "banner-block" | "button-block" | "html-block" | "image-block" | "menu-block" | "social-block" | "spacer-block" | "text-block" | "timer-block" | "video-block")[];
155
+ includeCustoms: ("dynamic-content" | "checkbox-block" | "radio-button-block" | "recommendation-block" | "unsubscribe-block" | "coupon-block" | "items-block")[];
156
+ };
157
+ compiler: {
158
+ customRules: ({
159
+ type: "replace";
160
+ search: string;
161
+ replacement: string;
162
+ replaceAll?: boolean | undefined;
163
+ id: string;
164
+ description?: string | undefined;
165
+ priority: number;
166
+ } | {
167
+ type: "regex";
168
+ pattern: string;
169
+ replacement: string;
170
+ flags?: string | undefined;
171
+ id: string;
172
+ description?: string | undefined;
173
+ priority: number;
174
+ } | {
175
+ type: "remove";
176
+ targets: string[];
177
+ id: string;
178
+ description?: string | undefined;
179
+ priority: number;
180
+ } | {
181
+ type: "custom";
182
+ processor: (html: string) => string;
183
+ id: string;
184
+ description?: string | undefined;
185
+ priority: number;
186
+ })[];
187
+ ignoreDefaultRules: boolean;
188
+ };
189
+ } | null;
190
+ } & import("pinia").PiniaCustomStateProperties<ConfigStoreState>) => PartnerConfig | null;
191
+ /**
192
+ * Get the template configuration
193
+ */
194
+ template: (state: {
195
+ initialized: boolean;
196
+ config: {
197
+ identity: {
198
+ templateId: string;
199
+ userId: string;
200
+ variationId?: string | undefined;
201
+ };
202
+ partner: {
203
+ name: string;
204
+ productType: 60 | 49 | 97;
205
+ messageType: 1 | 2;
206
+ username: string;
207
+ };
208
+ template: {
209
+ html: string;
210
+ css: string;
211
+ preselectedDynamicContent: {
212
+ text: string;
213
+ value: string;
214
+ fallback?: string | undefined;
215
+ format?: {
216
+ key: string;
217
+ value: string;
218
+ } | undefined;
219
+ }[];
220
+ selectedUnsubscribePages: number[];
221
+ };
222
+ editor: {
223
+ locale: string;
224
+ translationsPath: string;
225
+ migrationDate: number;
226
+ emailHeader: {
227
+ senderName: string;
228
+ subject: string;
229
+ };
230
+ };
231
+ ui: {
232
+ showHeader: boolean;
233
+ backButtonLabel?: string | undefined;
234
+ };
235
+ features: {
236
+ dynamicContent: boolean;
237
+ saveAsTemplate: boolean;
238
+ versionHistory: boolean;
239
+ testMessage: boolean;
240
+ displayConditions: boolean;
241
+ unsubscribe: boolean;
242
+ modulesDisabled: boolean;
243
+ };
244
+ blocks: {
245
+ excludeDefaults: ("amp-accordion" | "amp-carousel" | "amp-form-controls" | "banner-block" | "button-block" | "html-block" | "image-block" | "menu-block" | "social-block" | "spacer-block" | "text-block" | "timer-block" | "video-block")[];
246
+ includeCustoms: ("dynamic-content" | "checkbox-block" | "radio-button-block" | "recommendation-block" | "unsubscribe-block" | "coupon-block" | "items-block")[];
247
+ };
248
+ compiler: {
249
+ customRules: ({
250
+ type: "replace";
251
+ search: string;
252
+ replacement: string;
253
+ replaceAll?: boolean | undefined;
254
+ id: string;
255
+ description?: string | undefined;
256
+ priority: number;
257
+ } | {
258
+ type: "regex";
259
+ pattern: string;
260
+ replacement: string;
261
+ flags?: string | undefined;
262
+ id: string;
263
+ description?: string | undefined;
264
+ priority: number;
265
+ } | {
266
+ type: "remove";
267
+ targets: string[];
268
+ id: string;
269
+ description?: string | undefined;
270
+ priority: number;
271
+ } | {
272
+ type: "custom";
273
+ processor: (html: string) => string;
274
+ id: string;
275
+ description?: string | undefined;
276
+ priority: number;
277
+ })[];
278
+ ignoreDefaultRules: boolean;
279
+ };
280
+ } | null;
281
+ } & import("pinia").PiniaCustomStateProperties<ConfigStoreState>) => TemplateConfig | null;
282
+ /**
283
+ * Get the editor configuration
284
+ */
285
+ editor: (state: {
286
+ initialized: boolean;
287
+ config: {
288
+ identity: {
289
+ templateId: string;
290
+ userId: string;
291
+ variationId?: string | undefined;
292
+ };
293
+ partner: {
294
+ name: string;
295
+ productType: 60 | 49 | 97;
296
+ messageType: 1 | 2;
297
+ username: string;
298
+ };
299
+ template: {
300
+ html: string;
301
+ css: string;
302
+ preselectedDynamicContent: {
303
+ text: string;
304
+ value: string;
305
+ fallback?: string | undefined;
306
+ format?: {
307
+ key: string;
308
+ value: string;
309
+ } | undefined;
310
+ }[];
311
+ selectedUnsubscribePages: number[];
312
+ };
313
+ editor: {
314
+ locale: string;
315
+ translationsPath: string;
316
+ migrationDate: number;
317
+ emailHeader: {
318
+ senderName: string;
319
+ subject: string;
320
+ };
321
+ };
322
+ ui: {
323
+ showHeader: boolean;
324
+ backButtonLabel?: string | undefined;
325
+ };
326
+ features: {
327
+ dynamicContent: boolean;
328
+ saveAsTemplate: boolean;
329
+ versionHistory: boolean;
330
+ testMessage: boolean;
331
+ displayConditions: boolean;
332
+ unsubscribe: boolean;
333
+ modulesDisabled: boolean;
334
+ };
335
+ blocks: {
336
+ excludeDefaults: ("amp-accordion" | "amp-carousel" | "amp-form-controls" | "banner-block" | "button-block" | "html-block" | "image-block" | "menu-block" | "social-block" | "spacer-block" | "text-block" | "timer-block" | "video-block")[];
337
+ includeCustoms: ("dynamic-content" | "checkbox-block" | "radio-button-block" | "recommendation-block" | "unsubscribe-block" | "coupon-block" | "items-block")[];
338
+ };
339
+ compiler: {
340
+ customRules: ({
341
+ type: "replace";
342
+ search: string;
343
+ replacement: string;
344
+ replaceAll?: boolean | undefined;
345
+ id: string;
346
+ description?: string | undefined;
347
+ priority: number;
348
+ } | {
349
+ type: "regex";
350
+ pattern: string;
351
+ replacement: string;
352
+ flags?: string | undefined;
353
+ id: string;
354
+ description?: string | undefined;
355
+ priority: number;
356
+ } | {
357
+ type: "remove";
358
+ targets: string[];
359
+ id: string;
360
+ description?: string | undefined;
361
+ priority: number;
362
+ } | {
363
+ type: "custom";
364
+ processor: (html: string) => string;
365
+ id: string;
366
+ description?: string | undefined;
367
+ priority: number;
368
+ })[];
369
+ ignoreDefaultRules: boolean;
370
+ };
371
+ } | null;
372
+ } & import("pinia").PiniaCustomStateProperties<ConfigStoreState>) => EditorConfig | null;
373
+ /**
374
+ * Get the UI configuration
375
+ */
376
+ ui: (state: {
377
+ initialized: boolean;
378
+ config: {
379
+ identity: {
380
+ templateId: string;
381
+ userId: string;
382
+ variationId?: string | undefined;
383
+ };
384
+ partner: {
385
+ name: string;
386
+ productType: 60 | 49 | 97;
387
+ messageType: 1 | 2;
388
+ username: string;
389
+ };
390
+ template: {
391
+ html: string;
392
+ css: string;
393
+ preselectedDynamicContent: {
394
+ text: string;
395
+ value: string;
396
+ fallback?: string | undefined;
397
+ format?: {
398
+ key: string;
399
+ value: string;
400
+ } | undefined;
401
+ }[];
402
+ selectedUnsubscribePages: number[];
403
+ };
404
+ editor: {
405
+ locale: string;
406
+ translationsPath: string;
407
+ migrationDate: number;
408
+ emailHeader: {
409
+ senderName: string;
410
+ subject: string;
411
+ };
412
+ };
413
+ ui: {
414
+ showHeader: boolean;
415
+ backButtonLabel?: string | undefined;
416
+ };
417
+ features: {
418
+ dynamicContent: boolean;
419
+ saveAsTemplate: boolean;
420
+ versionHistory: boolean;
421
+ testMessage: boolean;
422
+ displayConditions: boolean;
423
+ unsubscribe: boolean;
424
+ modulesDisabled: boolean;
425
+ };
426
+ blocks: {
427
+ excludeDefaults: ("amp-accordion" | "amp-carousel" | "amp-form-controls" | "banner-block" | "button-block" | "html-block" | "image-block" | "menu-block" | "social-block" | "spacer-block" | "text-block" | "timer-block" | "video-block")[];
428
+ includeCustoms: ("dynamic-content" | "checkbox-block" | "radio-button-block" | "recommendation-block" | "unsubscribe-block" | "coupon-block" | "items-block")[];
429
+ };
430
+ compiler: {
431
+ customRules: ({
432
+ type: "replace";
433
+ search: string;
434
+ replacement: string;
435
+ replaceAll?: boolean | undefined;
436
+ id: string;
437
+ description?: string | undefined;
438
+ priority: number;
439
+ } | {
440
+ type: "regex";
441
+ pattern: string;
442
+ replacement: string;
443
+ flags?: string | undefined;
444
+ id: string;
445
+ description?: string | undefined;
446
+ priority: number;
447
+ } | {
448
+ type: "remove";
449
+ targets: string[];
450
+ id: string;
451
+ description?: string | undefined;
452
+ priority: number;
453
+ } | {
454
+ type: "custom";
455
+ processor: (html: string) => string;
456
+ id: string;
457
+ description?: string | undefined;
458
+ priority: number;
459
+ })[];
460
+ ignoreDefaultRules: boolean;
461
+ };
462
+ } | null;
463
+ } & import("pinia").PiniaCustomStateProperties<ConfigStoreState>) => UIConfig | null;
464
+ /**
465
+ * Get the features configuration
466
+ */
467
+ features: (state: {
468
+ initialized: boolean;
469
+ config: {
470
+ identity: {
471
+ templateId: string;
472
+ userId: string;
473
+ variationId?: string | undefined;
474
+ };
475
+ partner: {
476
+ name: string;
477
+ productType: 60 | 49 | 97;
478
+ messageType: 1 | 2;
479
+ username: string;
480
+ };
481
+ template: {
482
+ html: string;
483
+ css: string;
484
+ preselectedDynamicContent: {
485
+ text: string;
486
+ value: string;
487
+ fallback?: string | undefined;
488
+ format?: {
489
+ key: string;
490
+ value: string;
491
+ } | undefined;
492
+ }[];
493
+ selectedUnsubscribePages: number[];
494
+ };
495
+ editor: {
496
+ locale: string;
497
+ translationsPath: string;
498
+ migrationDate: number;
499
+ emailHeader: {
500
+ senderName: string;
501
+ subject: string;
502
+ };
503
+ };
504
+ ui: {
505
+ showHeader: boolean;
506
+ backButtonLabel?: string | undefined;
507
+ };
508
+ features: {
509
+ dynamicContent: boolean;
510
+ saveAsTemplate: boolean;
511
+ versionHistory: boolean;
512
+ testMessage: boolean;
513
+ displayConditions: boolean;
514
+ unsubscribe: boolean;
515
+ modulesDisabled: boolean;
516
+ };
517
+ blocks: {
518
+ excludeDefaults: ("amp-accordion" | "amp-carousel" | "amp-form-controls" | "banner-block" | "button-block" | "html-block" | "image-block" | "menu-block" | "social-block" | "spacer-block" | "text-block" | "timer-block" | "video-block")[];
519
+ includeCustoms: ("dynamic-content" | "checkbox-block" | "radio-button-block" | "recommendation-block" | "unsubscribe-block" | "coupon-block" | "items-block")[];
520
+ };
521
+ compiler: {
522
+ customRules: ({
523
+ type: "replace";
524
+ search: string;
525
+ replacement: string;
526
+ replaceAll?: boolean | undefined;
527
+ id: string;
528
+ description?: string | undefined;
529
+ priority: number;
530
+ } | {
531
+ type: "regex";
532
+ pattern: string;
533
+ replacement: string;
534
+ flags?: string | undefined;
535
+ id: string;
536
+ description?: string | undefined;
537
+ priority: number;
538
+ } | {
539
+ type: "remove";
540
+ targets: string[];
541
+ id: string;
542
+ description?: string | undefined;
543
+ priority: number;
544
+ } | {
545
+ type: "custom";
546
+ processor: (html: string) => string;
547
+ id: string;
548
+ description?: string | undefined;
549
+ priority: number;
550
+ })[];
551
+ ignoreDefaultRules: boolean;
552
+ };
553
+ } | null;
554
+ } & import("pinia").PiniaCustomStateProperties<ConfigStoreState>) => FeaturesConfig | null;
555
+ /**
556
+ * Get the blocks configuration
557
+ */
558
+ blocks: (state: {
559
+ initialized: boolean;
560
+ config: {
561
+ identity: {
562
+ templateId: string;
563
+ userId: string;
564
+ variationId?: string | undefined;
565
+ };
566
+ partner: {
567
+ name: string;
568
+ productType: 60 | 49 | 97;
569
+ messageType: 1 | 2;
570
+ username: string;
571
+ };
572
+ template: {
573
+ html: string;
574
+ css: string;
575
+ preselectedDynamicContent: {
576
+ text: string;
577
+ value: string;
578
+ fallback?: string | undefined;
579
+ format?: {
580
+ key: string;
581
+ value: string;
582
+ } | undefined;
583
+ }[];
584
+ selectedUnsubscribePages: number[];
585
+ };
586
+ editor: {
587
+ locale: string;
588
+ translationsPath: string;
589
+ migrationDate: number;
590
+ emailHeader: {
591
+ senderName: string;
592
+ subject: string;
593
+ };
594
+ };
595
+ ui: {
596
+ showHeader: boolean;
597
+ backButtonLabel?: string | undefined;
598
+ };
599
+ features: {
600
+ dynamicContent: boolean;
601
+ saveAsTemplate: boolean;
602
+ versionHistory: boolean;
603
+ testMessage: boolean;
604
+ displayConditions: boolean;
605
+ unsubscribe: boolean;
606
+ modulesDisabled: boolean;
607
+ };
608
+ blocks: {
609
+ excludeDefaults: ("amp-accordion" | "amp-carousel" | "amp-form-controls" | "banner-block" | "button-block" | "html-block" | "image-block" | "menu-block" | "social-block" | "spacer-block" | "text-block" | "timer-block" | "video-block")[];
610
+ includeCustoms: ("dynamic-content" | "checkbox-block" | "radio-button-block" | "recommendation-block" | "unsubscribe-block" | "coupon-block" | "items-block")[];
611
+ };
612
+ compiler: {
613
+ customRules: ({
614
+ type: "replace";
615
+ search: string;
616
+ replacement: string;
617
+ replaceAll?: boolean | undefined;
618
+ id: string;
619
+ description?: string | undefined;
620
+ priority: number;
621
+ } | {
622
+ type: "regex";
623
+ pattern: string;
624
+ replacement: string;
625
+ flags?: string | undefined;
626
+ id: string;
627
+ description?: string | undefined;
628
+ priority: number;
629
+ } | {
630
+ type: "remove";
631
+ targets: string[];
632
+ id: string;
633
+ description?: string | undefined;
634
+ priority: number;
635
+ } | {
636
+ type: "custom";
637
+ processor: (html: string) => string;
638
+ id: string;
639
+ description?: string | undefined;
640
+ priority: number;
641
+ })[];
642
+ ignoreDefaultRules: boolean;
643
+ };
644
+ } | null;
645
+ } & import("pinia").PiniaCustomStateProperties<ConfigStoreState>) => BlocksConfig | null;
646
+ /**
647
+ * Get the compiler configuration
648
+ */
649
+ compiler: (state: {
650
+ initialized: boolean;
651
+ config: {
652
+ identity: {
653
+ templateId: string;
654
+ userId: string;
655
+ variationId?: string | undefined;
656
+ };
657
+ partner: {
658
+ name: string;
659
+ productType: 60 | 49 | 97;
660
+ messageType: 1 | 2;
661
+ username: string;
662
+ };
663
+ template: {
664
+ html: string;
665
+ css: string;
666
+ preselectedDynamicContent: {
667
+ text: string;
668
+ value: string;
669
+ fallback?: string | undefined;
670
+ format?: {
671
+ key: string;
672
+ value: string;
673
+ } | undefined;
674
+ }[];
675
+ selectedUnsubscribePages: number[];
676
+ };
677
+ editor: {
678
+ locale: string;
679
+ translationsPath: string;
680
+ migrationDate: number;
681
+ emailHeader: {
682
+ senderName: string;
683
+ subject: string;
684
+ };
685
+ };
686
+ ui: {
687
+ showHeader: boolean;
688
+ backButtonLabel?: string | undefined;
689
+ };
690
+ features: {
691
+ dynamicContent: boolean;
692
+ saveAsTemplate: boolean;
693
+ versionHistory: boolean;
694
+ testMessage: boolean;
695
+ displayConditions: boolean;
696
+ unsubscribe: boolean;
697
+ modulesDisabled: boolean;
698
+ };
699
+ blocks: {
700
+ excludeDefaults: ("amp-accordion" | "amp-carousel" | "amp-form-controls" | "banner-block" | "button-block" | "html-block" | "image-block" | "menu-block" | "social-block" | "spacer-block" | "text-block" | "timer-block" | "video-block")[];
701
+ includeCustoms: ("dynamic-content" | "checkbox-block" | "radio-button-block" | "recommendation-block" | "unsubscribe-block" | "coupon-block" | "items-block")[];
702
+ };
703
+ compiler: {
704
+ customRules: ({
705
+ type: "replace";
706
+ search: string;
707
+ replacement: string;
708
+ replaceAll?: boolean | undefined;
709
+ id: string;
710
+ description?: string | undefined;
711
+ priority: number;
712
+ } | {
713
+ type: "regex";
714
+ pattern: string;
715
+ replacement: string;
716
+ flags?: string | undefined;
717
+ id: string;
718
+ description?: string | undefined;
719
+ priority: number;
720
+ } | {
721
+ type: "remove";
722
+ targets: string[];
723
+ id: string;
724
+ description?: string | undefined;
725
+ priority: number;
726
+ } | {
727
+ type: "custom";
728
+ processor: (html: string) => string;
729
+ id: string;
730
+ description?: string | undefined;
731
+ priority: number;
732
+ })[];
733
+ ignoreDefaultRules: boolean;
734
+ };
735
+ } | null;
736
+ } & import("pinia").PiniaCustomStateProperties<ConfigStoreState>) => CompilerConfig | null;
737
+ /**
738
+ * Get the template ID
739
+ */
740
+ templateId: (state: {
741
+ initialized: boolean;
742
+ config: {
743
+ identity: {
744
+ templateId: string;
745
+ userId: string;
746
+ variationId?: string | undefined;
747
+ };
748
+ partner: {
749
+ name: string;
750
+ productType: 60 | 49 | 97;
751
+ messageType: 1 | 2;
752
+ username: string;
753
+ };
754
+ template: {
755
+ html: string;
756
+ css: string;
757
+ preselectedDynamicContent: {
758
+ text: string;
759
+ value: string;
760
+ fallback?: string | undefined;
761
+ format?: {
762
+ key: string;
763
+ value: string;
764
+ } | undefined;
765
+ }[];
766
+ selectedUnsubscribePages: number[];
767
+ };
768
+ editor: {
769
+ locale: string;
770
+ translationsPath: string;
771
+ migrationDate: number;
772
+ emailHeader: {
773
+ senderName: string;
774
+ subject: string;
775
+ };
776
+ };
777
+ ui: {
778
+ showHeader: boolean;
779
+ backButtonLabel?: string | undefined;
780
+ };
781
+ features: {
782
+ dynamicContent: boolean;
783
+ saveAsTemplate: boolean;
784
+ versionHistory: boolean;
785
+ testMessage: boolean;
786
+ displayConditions: boolean;
787
+ unsubscribe: boolean;
788
+ modulesDisabled: boolean;
789
+ };
790
+ blocks: {
791
+ excludeDefaults: ("amp-accordion" | "amp-carousel" | "amp-form-controls" | "banner-block" | "button-block" | "html-block" | "image-block" | "menu-block" | "social-block" | "spacer-block" | "text-block" | "timer-block" | "video-block")[];
792
+ includeCustoms: ("dynamic-content" | "checkbox-block" | "radio-button-block" | "recommendation-block" | "unsubscribe-block" | "coupon-block" | "items-block")[];
793
+ };
794
+ compiler: {
795
+ customRules: ({
796
+ type: "replace";
797
+ search: string;
798
+ replacement: string;
799
+ replaceAll?: boolean | undefined;
800
+ id: string;
801
+ description?: string | undefined;
802
+ priority: number;
803
+ } | {
804
+ type: "regex";
805
+ pattern: string;
806
+ replacement: string;
807
+ flags?: string | undefined;
808
+ id: string;
809
+ description?: string | undefined;
810
+ priority: number;
811
+ } | {
812
+ type: "remove";
813
+ targets: string[];
814
+ id: string;
815
+ description?: string | undefined;
816
+ priority: number;
817
+ } | {
818
+ type: "custom";
819
+ processor: (html: string) => string;
820
+ id: string;
821
+ description?: string | undefined;
822
+ priority: number;
823
+ })[];
824
+ ignoreDefaultRules: boolean;
825
+ };
826
+ } | null;
827
+ } & import("pinia").PiniaCustomStateProperties<ConfigStoreState>) => string;
828
+ /**
829
+ * Get the user ID
830
+ */
831
+ userId: (state: {
832
+ initialized: boolean;
833
+ config: {
834
+ identity: {
835
+ templateId: string;
836
+ userId: string;
837
+ variationId?: string | undefined;
838
+ };
839
+ partner: {
840
+ name: string;
841
+ productType: 60 | 49 | 97;
842
+ messageType: 1 | 2;
843
+ username: string;
844
+ };
845
+ template: {
846
+ html: string;
847
+ css: string;
848
+ preselectedDynamicContent: {
849
+ text: string;
850
+ value: string;
851
+ fallback?: string | undefined;
852
+ format?: {
853
+ key: string;
854
+ value: string;
855
+ } | undefined;
856
+ }[];
857
+ selectedUnsubscribePages: number[];
858
+ };
859
+ editor: {
860
+ locale: string;
861
+ translationsPath: string;
862
+ migrationDate: number;
863
+ emailHeader: {
864
+ senderName: string;
865
+ subject: string;
866
+ };
867
+ };
868
+ ui: {
869
+ showHeader: boolean;
870
+ backButtonLabel?: string | undefined;
871
+ };
872
+ features: {
873
+ dynamicContent: boolean;
874
+ saveAsTemplate: boolean;
875
+ versionHistory: boolean;
876
+ testMessage: boolean;
877
+ displayConditions: boolean;
878
+ unsubscribe: boolean;
879
+ modulesDisabled: boolean;
880
+ };
881
+ blocks: {
882
+ excludeDefaults: ("amp-accordion" | "amp-carousel" | "amp-form-controls" | "banner-block" | "button-block" | "html-block" | "image-block" | "menu-block" | "social-block" | "spacer-block" | "text-block" | "timer-block" | "video-block")[];
883
+ includeCustoms: ("dynamic-content" | "checkbox-block" | "radio-button-block" | "recommendation-block" | "unsubscribe-block" | "coupon-block" | "items-block")[];
884
+ };
885
+ compiler: {
886
+ customRules: ({
887
+ type: "replace";
888
+ search: string;
889
+ replacement: string;
890
+ replaceAll?: boolean | undefined;
891
+ id: string;
892
+ description?: string | undefined;
893
+ priority: number;
894
+ } | {
895
+ type: "regex";
896
+ pattern: string;
897
+ replacement: string;
898
+ flags?: string | undefined;
899
+ id: string;
900
+ description?: string | undefined;
901
+ priority: number;
902
+ } | {
903
+ type: "remove";
904
+ targets: string[];
905
+ id: string;
906
+ description?: string | undefined;
907
+ priority: number;
908
+ } | {
909
+ type: "custom";
910
+ processor: (html: string) => string;
911
+ id: string;
912
+ description?: string | undefined;
913
+ priority: number;
914
+ })[];
915
+ ignoreDefaultRules: boolean;
916
+ };
917
+ } | null;
918
+ } & import("pinia").PiniaCustomStateProperties<ConfigStoreState>) => string;
919
+ /**
920
+ * Get the variation ID
921
+ */
922
+ variationId: (state: {
923
+ initialized: boolean;
924
+ config: {
925
+ identity: {
926
+ templateId: string;
927
+ userId: string;
928
+ variationId?: string | undefined;
929
+ };
930
+ partner: {
931
+ name: string;
932
+ productType: 60 | 49 | 97;
933
+ messageType: 1 | 2;
934
+ username: string;
935
+ };
936
+ template: {
937
+ html: string;
938
+ css: string;
939
+ preselectedDynamicContent: {
940
+ text: string;
941
+ value: string;
942
+ fallback?: string | undefined;
943
+ format?: {
944
+ key: string;
945
+ value: string;
946
+ } | undefined;
947
+ }[];
948
+ selectedUnsubscribePages: number[];
949
+ };
950
+ editor: {
951
+ locale: string;
952
+ translationsPath: string;
953
+ migrationDate: number;
954
+ emailHeader: {
955
+ senderName: string;
956
+ subject: string;
957
+ };
958
+ };
959
+ ui: {
960
+ showHeader: boolean;
961
+ backButtonLabel?: string | undefined;
962
+ };
963
+ features: {
964
+ dynamicContent: boolean;
965
+ saveAsTemplate: boolean;
966
+ versionHistory: boolean;
967
+ testMessage: boolean;
968
+ displayConditions: boolean;
969
+ unsubscribe: boolean;
970
+ modulesDisabled: boolean;
971
+ };
972
+ blocks: {
973
+ excludeDefaults: ("amp-accordion" | "amp-carousel" | "amp-form-controls" | "banner-block" | "button-block" | "html-block" | "image-block" | "menu-block" | "social-block" | "spacer-block" | "text-block" | "timer-block" | "video-block")[];
974
+ includeCustoms: ("dynamic-content" | "checkbox-block" | "radio-button-block" | "recommendation-block" | "unsubscribe-block" | "coupon-block" | "items-block")[];
975
+ };
976
+ compiler: {
977
+ customRules: ({
978
+ type: "replace";
979
+ search: string;
980
+ replacement: string;
981
+ replaceAll?: boolean | undefined;
982
+ id: string;
983
+ description?: string | undefined;
984
+ priority: number;
985
+ } | {
986
+ type: "regex";
987
+ pattern: string;
988
+ replacement: string;
989
+ flags?: string | undefined;
990
+ id: string;
991
+ description?: string | undefined;
992
+ priority: number;
993
+ } | {
994
+ type: "remove";
995
+ targets: string[];
996
+ id: string;
997
+ description?: string | undefined;
998
+ priority: number;
999
+ } | {
1000
+ type: "custom";
1001
+ processor: (html: string) => string;
1002
+ id: string;
1003
+ description?: string | undefined;
1004
+ priority: number;
1005
+ })[];
1006
+ ignoreDefaultRules: boolean;
1007
+ };
1008
+ } | null;
1009
+ } & import("pinia").PiniaCustomStateProperties<ConfigStoreState>) => string;
1010
+ /**
1011
+ * Get the partner name
1012
+ */
1013
+ partnerName: (state: {
1014
+ initialized: boolean;
1015
+ config: {
1016
+ identity: {
1017
+ templateId: string;
1018
+ userId: string;
1019
+ variationId?: string | undefined;
1020
+ };
1021
+ partner: {
1022
+ name: string;
1023
+ productType: 60 | 49 | 97;
1024
+ messageType: 1 | 2;
1025
+ username: string;
1026
+ };
1027
+ template: {
1028
+ html: string;
1029
+ css: string;
1030
+ preselectedDynamicContent: {
1031
+ text: string;
1032
+ value: string;
1033
+ fallback?: string | undefined;
1034
+ format?: {
1035
+ key: string;
1036
+ value: string;
1037
+ } | undefined;
1038
+ }[];
1039
+ selectedUnsubscribePages: number[];
1040
+ };
1041
+ editor: {
1042
+ locale: string;
1043
+ translationsPath: string;
1044
+ migrationDate: number;
1045
+ emailHeader: {
1046
+ senderName: string;
1047
+ subject: string;
1048
+ };
1049
+ };
1050
+ ui: {
1051
+ showHeader: boolean;
1052
+ backButtonLabel?: string | undefined;
1053
+ };
1054
+ features: {
1055
+ dynamicContent: boolean;
1056
+ saveAsTemplate: boolean;
1057
+ versionHistory: boolean;
1058
+ testMessage: boolean;
1059
+ displayConditions: boolean;
1060
+ unsubscribe: boolean;
1061
+ modulesDisabled: boolean;
1062
+ };
1063
+ blocks: {
1064
+ excludeDefaults: ("amp-accordion" | "amp-carousel" | "amp-form-controls" | "banner-block" | "button-block" | "html-block" | "image-block" | "menu-block" | "social-block" | "spacer-block" | "text-block" | "timer-block" | "video-block")[];
1065
+ includeCustoms: ("dynamic-content" | "checkbox-block" | "radio-button-block" | "recommendation-block" | "unsubscribe-block" | "coupon-block" | "items-block")[];
1066
+ };
1067
+ compiler: {
1068
+ customRules: ({
1069
+ type: "replace";
1070
+ search: string;
1071
+ replacement: string;
1072
+ replaceAll?: boolean | undefined;
1073
+ id: string;
1074
+ description?: string | undefined;
1075
+ priority: number;
1076
+ } | {
1077
+ type: "regex";
1078
+ pattern: string;
1079
+ replacement: string;
1080
+ flags?: string | undefined;
1081
+ id: string;
1082
+ description?: string | undefined;
1083
+ priority: number;
1084
+ } | {
1085
+ type: "remove";
1086
+ targets: string[];
1087
+ id: string;
1088
+ description?: string | undefined;
1089
+ priority: number;
1090
+ } | {
1091
+ type: "custom";
1092
+ processor: (html: string) => string;
1093
+ id: string;
1094
+ description?: string | undefined;
1095
+ priority: number;
1096
+ })[];
1097
+ ignoreDefaultRules: boolean;
1098
+ };
1099
+ } | null;
1100
+ } & import("pinia").PiniaCustomStateProperties<ConfigStoreState>) => string;
1101
+ /**
1102
+ * Get the product type
1103
+ */
1104
+ productType: (state: {
1105
+ initialized: boolean;
1106
+ config: {
1107
+ identity: {
1108
+ templateId: string;
1109
+ userId: string;
1110
+ variationId?: string | undefined;
1111
+ };
1112
+ partner: {
1113
+ name: string;
1114
+ productType: 60 | 49 | 97;
1115
+ messageType: 1 | 2;
1116
+ username: string;
1117
+ };
1118
+ template: {
1119
+ html: string;
1120
+ css: string;
1121
+ preselectedDynamicContent: {
1122
+ text: string;
1123
+ value: string;
1124
+ fallback?: string | undefined;
1125
+ format?: {
1126
+ key: string;
1127
+ value: string;
1128
+ } | undefined;
1129
+ }[];
1130
+ selectedUnsubscribePages: number[];
1131
+ };
1132
+ editor: {
1133
+ locale: string;
1134
+ translationsPath: string;
1135
+ migrationDate: number;
1136
+ emailHeader: {
1137
+ senderName: string;
1138
+ subject: string;
1139
+ };
1140
+ };
1141
+ ui: {
1142
+ showHeader: boolean;
1143
+ backButtonLabel?: string | undefined;
1144
+ };
1145
+ features: {
1146
+ dynamicContent: boolean;
1147
+ saveAsTemplate: boolean;
1148
+ versionHistory: boolean;
1149
+ testMessage: boolean;
1150
+ displayConditions: boolean;
1151
+ unsubscribe: boolean;
1152
+ modulesDisabled: boolean;
1153
+ };
1154
+ blocks: {
1155
+ excludeDefaults: ("amp-accordion" | "amp-carousel" | "amp-form-controls" | "banner-block" | "button-block" | "html-block" | "image-block" | "menu-block" | "social-block" | "spacer-block" | "text-block" | "timer-block" | "video-block")[];
1156
+ includeCustoms: ("dynamic-content" | "checkbox-block" | "radio-button-block" | "recommendation-block" | "unsubscribe-block" | "coupon-block" | "items-block")[];
1157
+ };
1158
+ compiler: {
1159
+ customRules: ({
1160
+ type: "replace";
1161
+ search: string;
1162
+ replacement: string;
1163
+ replaceAll?: boolean | undefined;
1164
+ id: string;
1165
+ description?: string | undefined;
1166
+ priority: number;
1167
+ } | {
1168
+ type: "regex";
1169
+ pattern: string;
1170
+ replacement: string;
1171
+ flags?: string | undefined;
1172
+ id: string;
1173
+ description?: string | undefined;
1174
+ priority: number;
1175
+ } | {
1176
+ type: "remove";
1177
+ targets: string[];
1178
+ id: string;
1179
+ description?: string | undefined;
1180
+ priority: number;
1181
+ } | {
1182
+ type: "custom";
1183
+ processor: (html: string) => string;
1184
+ id: string;
1185
+ description?: string | undefined;
1186
+ priority: number;
1187
+ })[];
1188
+ ignoreDefaultRules: boolean;
1189
+ };
1190
+ } | null;
1191
+ } & import("pinia").PiniaCustomStateProperties<ConfigStoreState>) => number;
1192
+ /**
1193
+ * Get the message type
1194
+ */
1195
+ messageType: (state: {
1196
+ initialized: boolean;
1197
+ config: {
1198
+ identity: {
1199
+ templateId: string;
1200
+ userId: string;
1201
+ variationId?: string | undefined;
1202
+ };
1203
+ partner: {
1204
+ name: string;
1205
+ productType: 60 | 49 | 97;
1206
+ messageType: 1 | 2;
1207
+ username: string;
1208
+ };
1209
+ template: {
1210
+ html: string;
1211
+ css: string;
1212
+ preselectedDynamicContent: {
1213
+ text: string;
1214
+ value: string;
1215
+ fallback?: string | undefined;
1216
+ format?: {
1217
+ key: string;
1218
+ value: string;
1219
+ } | undefined;
1220
+ }[];
1221
+ selectedUnsubscribePages: number[];
1222
+ };
1223
+ editor: {
1224
+ locale: string;
1225
+ translationsPath: string;
1226
+ migrationDate: number;
1227
+ emailHeader: {
1228
+ senderName: string;
1229
+ subject: string;
1230
+ };
1231
+ };
1232
+ ui: {
1233
+ showHeader: boolean;
1234
+ backButtonLabel?: string | undefined;
1235
+ };
1236
+ features: {
1237
+ dynamicContent: boolean;
1238
+ saveAsTemplate: boolean;
1239
+ versionHistory: boolean;
1240
+ testMessage: boolean;
1241
+ displayConditions: boolean;
1242
+ unsubscribe: boolean;
1243
+ modulesDisabled: boolean;
1244
+ };
1245
+ blocks: {
1246
+ excludeDefaults: ("amp-accordion" | "amp-carousel" | "amp-form-controls" | "banner-block" | "button-block" | "html-block" | "image-block" | "menu-block" | "social-block" | "spacer-block" | "text-block" | "timer-block" | "video-block")[];
1247
+ includeCustoms: ("dynamic-content" | "checkbox-block" | "radio-button-block" | "recommendation-block" | "unsubscribe-block" | "coupon-block" | "items-block")[];
1248
+ };
1249
+ compiler: {
1250
+ customRules: ({
1251
+ type: "replace";
1252
+ search: string;
1253
+ replacement: string;
1254
+ replaceAll?: boolean | undefined;
1255
+ id: string;
1256
+ description?: string | undefined;
1257
+ priority: number;
1258
+ } | {
1259
+ type: "regex";
1260
+ pattern: string;
1261
+ replacement: string;
1262
+ flags?: string | undefined;
1263
+ id: string;
1264
+ description?: string | undefined;
1265
+ priority: number;
1266
+ } | {
1267
+ type: "remove";
1268
+ targets: string[];
1269
+ id: string;
1270
+ description?: string | undefined;
1271
+ priority: number;
1272
+ } | {
1273
+ type: "custom";
1274
+ processor: (html: string) => string;
1275
+ id: string;
1276
+ description?: string | undefined;
1277
+ priority: number;
1278
+ })[];
1279
+ ignoreDefaultRules: boolean;
1280
+ };
1281
+ } | null;
1282
+ } & import("pinia").PiniaCustomStateProperties<ConfigStoreState>) => number;
1283
+ /**
1284
+ * Get the username
1285
+ */
1286
+ username: (state: {
1287
+ initialized: boolean;
1288
+ config: {
1289
+ identity: {
1290
+ templateId: string;
1291
+ userId: string;
1292
+ variationId?: string | undefined;
1293
+ };
1294
+ partner: {
1295
+ name: string;
1296
+ productType: 60 | 49 | 97;
1297
+ messageType: 1 | 2;
1298
+ username: string;
1299
+ };
1300
+ template: {
1301
+ html: string;
1302
+ css: string;
1303
+ preselectedDynamicContent: {
1304
+ text: string;
1305
+ value: string;
1306
+ fallback?: string | undefined;
1307
+ format?: {
1308
+ key: string;
1309
+ value: string;
1310
+ } | undefined;
1311
+ }[];
1312
+ selectedUnsubscribePages: number[];
1313
+ };
1314
+ editor: {
1315
+ locale: string;
1316
+ translationsPath: string;
1317
+ migrationDate: number;
1318
+ emailHeader: {
1319
+ senderName: string;
1320
+ subject: string;
1321
+ };
1322
+ };
1323
+ ui: {
1324
+ showHeader: boolean;
1325
+ backButtonLabel?: string | undefined;
1326
+ };
1327
+ features: {
1328
+ dynamicContent: boolean;
1329
+ saveAsTemplate: boolean;
1330
+ versionHistory: boolean;
1331
+ testMessage: boolean;
1332
+ displayConditions: boolean;
1333
+ unsubscribe: boolean;
1334
+ modulesDisabled: boolean;
1335
+ };
1336
+ blocks: {
1337
+ excludeDefaults: ("amp-accordion" | "amp-carousel" | "amp-form-controls" | "banner-block" | "button-block" | "html-block" | "image-block" | "menu-block" | "social-block" | "spacer-block" | "text-block" | "timer-block" | "video-block")[];
1338
+ includeCustoms: ("dynamic-content" | "checkbox-block" | "radio-button-block" | "recommendation-block" | "unsubscribe-block" | "coupon-block" | "items-block")[];
1339
+ };
1340
+ compiler: {
1341
+ customRules: ({
1342
+ type: "replace";
1343
+ search: string;
1344
+ replacement: string;
1345
+ replaceAll?: boolean | undefined;
1346
+ id: string;
1347
+ description?: string | undefined;
1348
+ priority: number;
1349
+ } | {
1350
+ type: "regex";
1351
+ pattern: string;
1352
+ replacement: string;
1353
+ flags?: string | undefined;
1354
+ id: string;
1355
+ description?: string | undefined;
1356
+ priority: number;
1357
+ } | {
1358
+ type: "remove";
1359
+ targets: string[];
1360
+ id: string;
1361
+ description?: string | undefined;
1362
+ priority: number;
1363
+ } | {
1364
+ type: "custom";
1365
+ processor: (html: string) => string;
1366
+ id: string;
1367
+ description?: string | undefined;
1368
+ priority: number;
1369
+ })[];
1370
+ ignoreDefaultRules: boolean;
1371
+ };
1372
+ } | null;
1373
+ } & import("pinia").PiniaCustomStateProperties<ConfigStoreState>) => string;
1374
+ /**
1375
+ * Check if header should be shown
1376
+ */
1377
+ showHeader: (state: {
1378
+ initialized: boolean;
1379
+ config: {
1380
+ identity: {
1381
+ templateId: string;
1382
+ userId: string;
1383
+ variationId?: string | undefined;
1384
+ };
1385
+ partner: {
1386
+ name: string;
1387
+ productType: 60 | 49 | 97;
1388
+ messageType: 1 | 2;
1389
+ username: string;
1390
+ };
1391
+ template: {
1392
+ html: string;
1393
+ css: string;
1394
+ preselectedDynamicContent: {
1395
+ text: string;
1396
+ value: string;
1397
+ fallback?: string | undefined;
1398
+ format?: {
1399
+ key: string;
1400
+ value: string;
1401
+ } | undefined;
1402
+ }[];
1403
+ selectedUnsubscribePages: number[];
1404
+ };
1405
+ editor: {
1406
+ locale: string;
1407
+ translationsPath: string;
1408
+ migrationDate: number;
1409
+ emailHeader: {
1410
+ senderName: string;
1411
+ subject: string;
1412
+ };
1413
+ };
1414
+ ui: {
1415
+ showHeader: boolean;
1416
+ backButtonLabel?: string | undefined;
1417
+ };
1418
+ features: {
1419
+ dynamicContent: boolean;
1420
+ saveAsTemplate: boolean;
1421
+ versionHistory: boolean;
1422
+ testMessage: boolean;
1423
+ displayConditions: boolean;
1424
+ unsubscribe: boolean;
1425
+ modulesDisabled: boolean;
1426
+ };
1427
+ blocks: {
1428
+ excludeDefaults: ("amp-accordion" | "amp-carousel" | "amp-form-controls" | "banner-block" | "button-block" | "html-block" | "image-block" | "menu-block" | "social-block" | "spacer-block" | "text-block" | "timer-block" | "video-block")[];
1429
+ includeCustoms: ("dynamic-content" | "checkbox-block" | "radio-button-block" | "recommendation-block" | "unsubscribe-block" | "coupon-block" | "items-block")[];
1430
+ };
1431
+ compiler: {
1432
+ customRules: ({
1433
+ type: "replace";
1434
+ search: string;
1435
+ replacement: string;
1436
+ replaceAll?: boolean | undefined;
1437
+ id: string;
1438
+ description?: string | undefined;
1439
+ priority: number;
1440
+ } | {
1441
+ type: "regex";
1442
+ pattern: string;
1443
+ replacement: string;
1444
+ flags?: string | undefined;
1445
+ id: string;
1446
+ description?: string | undefined;
1447
+ priority: number;
1448
+ } | {
1449
+ type: "remove";
1450
+ targets: string[];
1451
+ id: string;
1452
+ description?: string | undefined;
1453
+ priority: number;
1454
+ } | {
1455
+ type: "custom";
1456
+ processor: (html: string) => string;
1457
+ id: string;
1458
+ description?: string | undefined;
1459
+ priority: number;
1460
+ })[];
1461
+ ignoreDefaultRules: boolean;
1462
+ };
1463
+ } | null;
1464
+ } & import("pinia").PiniaCustomStateProperties<ConfigStoreState>) => boolean;
1465
+ /**
1466
+ * Check if a specific feature is enabled
1467
+ */
1468
+ isFeatureEnabled: (state: {
1469
+ initialized: boolean;
1470
+ config: {
1471
+ identity: {
1472
+ templateId: string;
1473
+ userId: string;
1474
+ variationId?: string | undefined;
1475
+ };
1476
+ partner: {
1477
+ name: string;
1478
+ productType: 60 | 49 | 97;
1479
+ messageType: 1 | 2;
1480
+ username: string;
1481
+ };
1482
+ template: {
1483
+ html: string;
1484
+ css: string;
1485
+ preselectedDynamicContent: {
1486
+ text: string;
1487
+ value: string;
1488
+ fallback?: string | undefined;
1489
+ format?: {
1490
+ key: string;
1491
+ value: string;
1492
+ } | undefined;
1493
+ }[];
1494
+ selectedUnsubscribePages: number[];
1495
+ };
1496
+ editor: {
1497
+ locale: string;
1498
+ translationsPath: string;
1499
+ migrationDate: number;
1500
+ emailHeader: {
1501
+ senderName: string;
1502
+ subject: string;
1503
+ };
1504
+ };
1505
+ ui: {
1506
+ showHeader: boolean;
1507
+ backButtonLabel?: string | undefined;
1508
+ };
1509
+ features: {
1510
+ dynamicContent: boolean;
1511
+ saveAsTemplate: boolean;
1512
+ versionHistory: boolean;
1513
+ testMessage: boolean;
1514
+ displayConditions: boolean;
1515
+ unsubscribe: boolean;
1516
+ modulesDisabled: boolean;
1517
+ };
1518
+ blocks: {
1519
+ excludeDefaults: ("amp-accordion" | "amp-carousel" | "amp-form-controls" | "banner-block" | "button-block" | "html-block" | "image-block" | "menu-block" | "social-block" | "spacer-block" | "text-block" | "timer-block" | "video-block")[];
1520
+ includeCustoms: ("dynamic-content" | "checkbox-block" | "radio-button-block" | "recommendation-block" | "unsubscribe-block" | "coupon-block" | "items-block")[];
1521
+ };
1522
+ compiler: {
1523
+ customRules: ({
1524
+ type: "replace";
1525
+ search: string;
1526
+ replacement: string;
1527
+ replaceAll?: boolean | undefined;
1528
+ id: string;
1529
+ description?: string | undefined;
1530
+ priority: number;
1531
+ } | {
1532
+ type: "regex";
1533
+ pattern: string;
1534
+ replacement: string;
1535
+ flags?: string | undefined;
1536
+ id: string;
1537
+ description?: string | undefined;
1538
+ priority: number;
1539
+ } | {
1540
+ type: "remove";
1541
+ targets: string[];
1542
+ id: string;
1543
+ description?: string | undefined;
1544
+ priority: number;
1545
+ } | {
1546
+ type: "custom";
1547
+ processor: (html: string) => string;
1548
+ id: string;
1549
+ description?: string | undefined;
1550
+ priority: number;
1551
+ })[];
1552
+ ignoreDefaultRules: boolean;
1553
+ };
1554
+ } | null;
1555
+ } & import("pinia").PiniaCustomStateProperties<ConfigStoreState>) => (feature: keyof FeaturesConfig) => boolean;
1556
+ }, {
1557
+ /**
1558
+ * Initialize the config store with validated configuration
1559
+ */
1560
+ init(input: GuidoConfigInput): void;
1561
+ /**
1562
+ * Reset the config store
1563
+ */
1564
+ reset(): void;
1565
+ }>;
104
1566
  export {};