@useinsider/guido 1.4.3 → 1.4.4-beta.b4adc85

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