@maildeno/editor 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +426 -0
  3. package/dist/RowPreviewLegacyComponent-CXsY4P-R.js +439 -0
  4. package/dist/RowPreviewLegacyComponent-osWbuByc.js +439 -0
  5. package/dist/RowPreviewRow-D-U1mV4v.js +107 -0
  6. package/dist/RowPreviewRow-MSc_unf3.js +107 -0
  7. package/dist/adapters/index.d.ts +7 -0
  8. package/dist/adapters/localStorageAdapter.d.ts +6 -0
  9. package/dist/adapters/types.d.ts +83 -0
  10. package/dist/baseStyles.d.ts +13 -0
  11. package/dist/blocks/canvasStyleHelpers.d.ts +17 -0
  12. package/dist/blocks/definitions/anchor.d.ts +2 -0
  13. package/dist/blocks/definitions/button.d.ts +2 -0
  14. package/dist/blocks/definitions/divider.d.ts +2 -0
  15. package/dist/blocks/definitions/heading.d.ts +2 -0
  16. package/dist/blocks/definitions/image.d.ts +2 -0
  17. package/dist/blocks/definitions/list.d.ts +2 -0
  18. package/dist/blocks/definitions/menu.d.ts +2 -0
  19. package/dist/blocks/definitions/paragraph.d.ts +2 -0
  20. package/dist/blocks/definitions/socials.d.ts +2 -0
  21. package/dist/blocks/definitions/spacer.d.ts +2 -0
  22. package/dist/blocks/definitions/video.d.ts +2 -0
  23. package/dist/blocks/index.d.ts +8 -0
  24. package/dist/blocks/registry.d.ts +23 -0
  25. package/dist/blocks/types.d.ts +73 -0
  26. package/dist/composables/emailBuilder/components/useComponentStyleEditor.d.ts +72 -0
  27. package/dist/composables/emailBuilder/components/useProductRowActions.d.ts +3 -0
  28. package/dist/composables/emailBuilder/components/useProductRows.d.ts +59 -0
  29. package/dist/composables/emailBuilder/core/config/componentConfig.d.ts +29 -0
  30. package/dist/composables/emailBuilder/core/link-tags/useLinkTagInsert.d.ts +13 -0
  31. package/dist/composables/emailBuilder/core/merge-tags/mergeTagDefinitions.d.ts +64 -0
  32. package/dist/composables/emailBuilder/core/merge-tags/resolveMergeTags.d.ts +27 -0
  33. package/dist/composables/emailBuilder/core/ui/useLayerHoverScroll.d.ts +20 -0
  34. package/dist/composables/emailBuilder/core/ui/useLayoutDrag.d.ts +85 -0
  35. package/dist/composables/emailBuilder/core/ui/useRichTextEditors.d.ts +6 -0
  36. package/dist/composables/emailBuilder/core/ui/visibilityBadgeHelpers.d.ts +22 -0
  37. package/dist/composables/emailBuilder/core/useEmailBuilder.d.ts +274 -0
  38. package/dist/composables/emailBuilder/core/useEmailBuilderDefault.d.ts +507 -0
  39. package/dist/composables/emailBuilder/core/useEmailBuilderOperations.d.ts +31 -0
  40. package/dist/composables/emailBuilder/core/useEmailBuilderVisibility.d.ts +31 -0
  41. package/dist/composables/emailBuilder/export/actions/download.d.ts +24 -0
  42. package/dist/composables/emailBuilder/export/generators/html.d.ts +3 -0
  43. package/dist/composables/emailBuilder/export/generators/mjml.d.ts +6 -0
  44. package/dist/composables/emailBuilder/export/generators/react-email.d.ts +61 -0
  45. package/dist/composables/emailBuilder/export/helpers/generatorHelpers.d.ts +53 -0
  46. package/dist/composables/emailBuilder/export/logic/espLogicWrapper.d.ts +76 -0
  47. package/dist/composables/emailBuilder/export/logic/reactLogicWrapper.d.ts +31 -0
  48. package/dist/composables/emailBuilder/export/merge-tags/mergeTagMapper.d.ts +42 -0
  49. package/dist/composables/emailBuilder/export/merge-tags/reactMergeTagMapper.d.ts +26 -0
  50. package/dist/composables/emailBuilder/export/shared/containers.d.ts +18 -0
  51. package/dist/composables/emailBuilder/export/shared/styles.d.ts +12 -0
  52. package/dist/composables/emailBuilder/export/shared/tagIdentifier.d.ts +1 -0
  53. package/dist/composables/emailBuilder/export/targets/htmlExport.d.ts +20 -0
  54. package/dist/composables/emailBuilder/export/targets/jsonExport.d.ts +28 -0
  55. package/dist/composables/emailBuilder/export/targets/mjmlExport.d.ts +19 -0
  56. package/dist/composables/emailBuilder/export/targets/reactEmailExport.d.ts +20 -0
  57. package/dist/composables/emailBuilder/export/transformers/espWrapper.d.ts +2 -0
  58. package/dist/composables/emailBuilder/export/transformers/formatting.d.ts +3 -0
  59. package/dist/composables/emailBuilder/export/transformers/minify.d.ts +33 -0
  60. package/dist/composables/emailBuilder/export/transformers/tagMapper.d.ts +29 -0
  61. package/dist/composables/emailBuilder/export/types/export.d.ts +24 -0
  62. package/dist/composables/emailBuilder/export/useEmailExportEngine.d.ts +63 -0
  63. package/dist/composables/emailBuilder/export/useEmailExportMobileStyles.d.ts +3 -0
  64. package/dist/composables/emailBuilder/export/useExportSettings.d.ts +5 -0
  65. package/dist/composables/emailBuilder/health/accessibilityChecker.d.ts +64 -0
  66. package/dist/composables/emailBuilder/health/healthIndicator.d.ts +19 -0
  67. package/dist/composables/emailBuilder/history/useEmailBuilderHistory.d.ts +26 -0
  68. package/dist/composables/emailBuilder/history/useHistory.d.ts +16 -0
  69. package/dist/composables/emailBuilder/persistence/useEmailBuilderPersistence.d.ts +38 -0
  70. package/dist/composables/emailBuilder/preview/useClientPreview.d.ts +127 -0
  71. package/dist/composables/emailBuilder/transform/pipeline/hydrate.d.ts +54 -0
  72. package/dist/composables/emailBuilder/transform/pipeline/optimize.d.ts +101 -0
  73. package/dist/composables/emailBuilder/transform/pipeline/optimizeAI.d.ts +125 -0
  74. package/dist/composables/emailBuilder/types/emailBuilder.d.ts +79 -0
  75. package/dist/composables/system/useColor.d.ts +26 -0
  76. package/dist/composables/system/useDeviceDetection.d.ts +5 -0
  77. package/dist/composables/system/useGoogleFonts.d.ts +11 -0
  78. package/dist/composables/system/useImageUpload.d.ts +23 -0
  79. package/dist/composables/system/useSavedRowsPanel.d.ts +35 -0
  80. package/dist/composables/ui/useConfirm.d.ts +33 -0
  81. package/dist/composables/ui/useInfoDialog.d.ts +22 -0
  82. package/dist/composables/ui/useTeleportTarget.d.ts +49 -0
  83. package/dist/composables/ui/useToast.d.ts +32 -0
  84. package/dist/devStyleMirror.d.ts +20 -0
  85. package/dist/documentScopedStyles.d.ts +39 -0
  86. package/dist/editor.css +2411 -0
  87. package/dist/element-DN22fZmQ.js +72000 -0
  88. package/dist/element-scoped-styles.css +2411 -0
  89. package/dist/element.d.ts +6 -0
  90. package/dist/element.js +2 -0
  91. package/dist/esp/registry.d.ts +33 -0
  92. package/dist/estree-C12ASyI-.js +7993 -0
  93. package/dist/html-DGrfikay.js +7353 -0
  94. package/dist/index.d.ts +12 -0
  95. package/dist/index.js +71955 -0
  96. package/dist/init.d.ts +85 -0
  97. package/dist/init.js +130 -0
  98. package/dist/lightDom.d.ts +30 -0
  99. package/dist/merge-tags/registry.d.ts +33 -0
  100. package/dist/shadowStyles.d.ts +8 -0
  101. package/dist/standalone-Bd2oQFm3.js +3639 -0
  102. package/dist/theme.d.ts +132 -0
  103. package/dist/typescript-D-z2dDu9.js +23190 -0
  104. package/dist/utils/generateId.d.ts +1 -0
  105. package/dist/utils/shadowDom.d.ts +30 -0
  106. package/dist/vue.runtime.esm-bundler-DwQEK7WO.js +9028 -0
  107. package/package.json +99 -0
@@ -0,0 +1,22 @@
1
+ export interface VisibilityLike {
2
+ enabled?: boolean;
3
+ rules?: {
4
+ tag: string;
5
+ operator: string;
6
+ value: string;
7
+ }[];
8
+ groups?: {
9
+ match: "all" | "any";
10
+ rules: any[];
11
+ }[];
12
+ }
13
+ /**
14
+ * Returns true when the visibility config should show a badge.
15
+ * A badge is shown when enabled AND has at least one flat rule OR one group.
16
+ */
17
+ export declare const isVisibilityActive: (vis: VisibilityLike | undefined | null) => boolean;
18
+ /**
19
+ * Returns the total number of rules across flat rules + all group rules.
20
+ * Used as the count shown on the badge pill.
21
+ */
22
+ export declare const visibilityRuleCount: (vis: VisibilityLike | undefined | null) => number;
@@ -0,0 +1,274 @@
1
+ import { useInfoDialog } from '../../ui/useInfoDialog';
2
+ import { EditorStorageAdapter } from '../../../adapters/types';
3
+ type EmailBuilderInstance = ReturnType<typeof createEmailBuilderInstance>;
4
+ /** Called once, at the EmailEditor root. Do not call from any other file.
5
+ * storageAdapterInstance/infoDialogInstance are the already-created
6
+ * return values of provideStorageAdapter()/provideInfoDialog() — see the
7
+ * comment on useEmailExportEngine's matching parameter for why these are
8
+ * passed directly rather than re-injected internally. */
9
+ export declare function provideEmailBuilder(storageAdapterInstance?: EditorStorageAdapter, infoDialogInstance?: ReturnType<typeof useInfoDialog>): {
10
+ rows: import('vue').Ref<any[], any[]>;
11
+ canvasStyles: import('vue').Ref<Record<string, any>, Record<string, any>>;
12
+ templateTags: import('vue').Ref<any[], any[]>;
13
+ savedTemplateName: import('vue').Ref<string | null, string | null>;
14
+ previewMode: import('vue').Ref<string, string>;
15
+ sidebarTab: import('vue').Ref<string, string>;
16
+ selectedId: import('vue').Ref<string | null, string | null>;
17
+ selectedRowId: import('vue').Ref<string | null, string | null>;
18
+ selectedColumn: import('vue').Ref<{
19
+ rowId: string;
20
+ columnId: string;
21
+ } | null, {
22
+ rowId: string;
23
+ columnId: string;
24
+ } | {
25
+ rowId: string;
26
+ columnId: string;
27
+ } | null>;
28
+ visibilityPreviewContext: import('vue').Ref<Record<string, string>, Record<string, string>>;
29
+ mergeTagInsertQueue: import('vue').Ref<{
30
+ componentId: string;
31
+ tagName: string;
32
+ default: string;
33
+ } | null, {
34
+ componentId: string;
35
+ tagName: string;
36
+ default: string;
37
+ } | {
38
+ componentId: string;
39
+ tagName: string;
40
+ default: string;
41
+ } | null>;
42
+ triggerMergeTagInsert: (componentId: string, tagName: string, defaultValue?: string) => void;
43
+ mergeTagPreviewContext: import('vue').Ref<Record<string, string>, Record<string, string>>;
44
+ mergeTagPreviewActive: import('vue').Ref<boolean, boolean>;
45
+ linkTagPreviewContext: import('vue').Ref<Record<string, string>, Record<string, string>>;
46
+ linkTagPreviewActive: import('vue').Ref<boolean, boolean>;
47
+ isBuilderReady: import('vue').Ref<boolean, boolean>;
48
+ linksActive: import('vue').Ref<boolean, boolean>;
49
+ espConfig: import('vue').Ref<{
50
+ syntax: import('../export/transformers/espWrapper').ESPSyntax;
51
+ }, {
52
+ syntax: import('../export/transformers/espWrapper').ESPSyntax;
53
+ } | {
54
+ syntax: import('../export/transformers/espWrapper').ESPSyntax;
55
+ }>;
56
+ canvasHoveredId: import('vue').Ref<string | null, string | null>;
57
+ nestedRowDragId: import('vue').Ref<string | null, string | null>;
58
+ isRowDragActive: import('vue').Ref<boolean, boolean>;
59
+ isTopLevelRowDragActive: import('vue').Ref<boolean, boolean>;
60
+ layerHoveredId: import('vue').Ref<string | null, string | null>;
61
+ addRow: (layout: number | number[], silent?: boolean) => void;
62
+ addNestedRow: (parentRowId: any, columnId: string, layout: number | number[], insertIndex?: number) => void;
63
+ findRow: (id: any) => any;
64
+ deleteRow: (id: any) => void;
65
+ moveRow: (rowId: any, direction: "up" | "down") => void;
66
+ moveNestedRow: (rowId: any, targetRowId: any, targetColumnId: string | null, targetIndex: number) => void;
67
+ reorderRows: (fromIndex: any, toIndex: any, silent?: boolean) => void;
68
+ addSpacer: (silent?: boolean) => void;
69
+ duplicateRow: (rowId: any) => void;
70
+ duplicateRowSpacer: (spacerId: any) => void;
71
+ addRowSilent: (layout: number | number[]) => void;
72
+ addSpacerSilent: () => void;
73
+ reorderRowsSilent: (from: number, to: number) => void;
74
+ addComponent: (rowId: any, columnId: string, type: string) => void;
75
+ addComponentAtIndex: (rowId: any, columnId: string, type: string, index: any) => void;
76
+ deleteComponent: (id: any) => void;
77
+ moveComponent: (componentId: any, direction: "up" | "down") => void;
78
+ moveComponentBetweenColumns: (componentId: any, targetRowId: any, targetColumnId: string, targetIndex: any) => void;
79
+ findComponent: (id: any) => any;
80
+ updateComponent: (id: any, props: any) => void;
81
+ duplicateComponent: (componentId: any) => void;
82
+ exportHTML: (mode?: import('../export/useEmailExportEngine').ExportMode, templateNameParam?: string) => Promise<void>;
83
+ getExportedHTML: (mode?: import('../export/useEmailExportEngine').ExportMode, templateNameParam?: string) => string | null;
84
+ exportReactEmail: (mode?: import('../export/useEmailExportEngine').ExportMode, templateNameParam?: string) => Promise<void>;
85
+ getExportedReactEmail: (mode?: import('../export/useEmailExportEngine').ExportMode, templateNameParam?: string) => string | null;
86
+ exportMJML: (mode?: import('../export/useEmailExportEngine').ExportMode, templateNameParam?: string) => Promise<void>;
87
+ getExportedMJML: (mode?: import('../export/useEmailExportEngine').ExportMode, templateNameParam?: string) => string | null;
88
+ exportJSON: (templateNameParam?: string) => void;
89
+ getExportedJSON: (templateNameParam?: string) => {
90
+ template_id: string;
91
+ template_name: string;
92
+ canvas: Partial<import('../transform/pipeline/optimize').Canvas>;
93
+ rows: Partial<import('../transform/pipeline/optimize').NestedRow | import('../transform/pipeline/optimize').RowSpacer>[];
94
+ schema_version: string;
95
+ } | null;
96
+ importJSON: (file: File) => void;
97
+ clearTemplate: () => void;
98
+ undo: () => void;
99
+ redo: () => void;
100
+ canUndo: import('vue').ComputedRef<boolean>;
101
+ canRedo: import('vue').ComputedRef<boolean>;
102
+ historyStatus: import('vue').ComputedRef<string>;
103
+ saveToHistory: (action?: string, immediate?: boolean) => void;
104
+ saveToHistoryImmediate: (action: string) => void;
105
+ initFromStorage: () => string | null;
106
+ clearLocal: () => void;
107
+ loadFromLocal: () => import('../persistence/useEmailBuilderPersistence').RestoredDraft | null;
108
+ hasDraft: (templateId?: string) => boolean;
109
+ saveStatus: import('vue').Ref<import('../persistence/useEmailBuilderPersistence').AutoSaveStatus, import('../persistence/useEmailBuilderPersistence').AutoSaveStatus>;
110
+ lastSaved: import('vue').Ref<Date | null, Date | null>;
111
+ initForCreate: () => void;
112
+ startNewTemplate: () => void;
113
+ loadTemplate: (template: {
114
+ canvas: any;
115
+ content: {
116
+ rows: any[];
117
+ };
118
+ name?: string;
119
+ tags?: any[];
120
+ }, templateId: string, onReady?: () => void) => void;
121
+ loadTemplateById: (id: string) => Promise<boolean>;
122
+ saveTemplate: (payload: {
123
+ rows: any[];
124
+ canvasStyles: Record<string, any>;
125
+ name?: string;
126
+ tags?: string[];
127
+ }) => Promise<string>;
128
+ templateId: import('vue').Ref<string | null, string | null>;
129
+ builderMode: import('vue').Ref<"view" | "create" | "edit", "view" | "create" | "edit">;
130
+ loadVersionSnapshot: (snapshot: {
131
+ canvas: any;
132
+ content: {
133
+ rows: any[];
134
+ };
135
+ }) => void;
136
+ };
137
+ /**
138
+ * Every file that isn't the root calls this exactly as before —
139
+ * destructuring rows/selectedId/exportHTML/etc. Same signature, same
140
+ * return shape. Throws a clear error instead of silently returning
141
+ * undefined if something tries to use it outside an EmailEditor tree,
142
+ * which is a much easier bug to find than "canvasStyles is undefined"
143
+ * three files away.
144
+ */
145
+ export declare const useEmailBuilder: () => EmailBuilderInstance;
146
+ declare function createEmailBuilderInstance(storageAdapterInstance?: EditorStorageAdapter, infoDialogInstance?: ReturnType<typeof useInfoDialog>): {
147
+ rows: import('vue').Ref<any[], any[]>;
148
+ canvasStyles: import('vue').Ref<Record<string, any>, Record<string, any>>;
149
+ templateTags: import('vue').Ref<any[], any[]>;
150
+ savedTemplateName: import('vue').Ref<string | null, string | null>;
151
+ previewMode: import('vue').Ref<string, string>;
152
+ sidebarTab: import('vue').Ref<string, string>;
153
+ selectedId: import('vue').Ref<string | null, string | null>;
154
+ selectedRowId: import('vue').Ref<string | null, string | null>;
155
+ selectedColumn: import('vue').Ref<{
156
+ rowId: string;
157
+ columnId: string;
158
+ } | null, {
159
+ rowId: string;
160
+ columnId: string;
161
+ } | {
162
+ rowId: string;
163
+ columnId: string;
164
+ } | null>;
165
+ visibilityPreviewContext: import('vue').Ref<Record<string, string>, Record<string, string>>;
166
+ mergeTagInsertQueue: import('vue').Ref<{
167
+ componentId: string;
168
+ tagName: string;
169
+ default: string;
170
+ } | null, {
171
+ componentId: string;
172
+ tagName: string;
173
+ default: string;
174
+ } | {
175
+ componentId: string;
176
+ tagName: string;
177
+ default: string;
178
+ } | null>;
179
+ triggerMergeTagInsert: (componentId: string, tagName: string, defaultValue?: string) => void;
180
+ mergeTagPreviewContext: import('vue').Ref<Record<string, string>, Record<string, string>>;
181
+ mergeTagPreviewActive: import('vue').Ref<boolean, boolean>;
182
+ linkTagPreviewContext: import('vue').Ref<Record<string, string>, Record<string, string>>;
183
+ linkTagPreviewActive: import('vue').Ref<boolean, boolean>;
184
+ isBuilderReady: import('vue').Ref<boolean, boolean>;
185
+ linksActive: import('vue').Ref<boolean, boolean>;
186
+ espConfig: import('vue').Ref<{
187
+ syntax: import('../export/transformers/espWrapper').ESPSyntax;
188
+ }, {
189
+ syntax: import('../export/transformers/espWrapper').ESPSyntax;
190
+ } | {
191
+ syntax: import('../export/transformers/espWrapper').ESPSyntax;
192
+ }>;
193
+ canvasHoveredId: import('vue').Ref<string | null, string | null>;
194
+ nestedRowDragId: import('vue').Ref<string | null, string | null>;
195
+ isRowDragActive: import('vue').Ref<boolean, boolean>;
196
+ isTopLevelRowDragActive: import('vue').Ref<boolean, boolean>;
197
+ layerHoveredId: import('vue').Ref<string | null, string | null>;
198
+ addRow: (layout: number | number[], silent?: boolean) => void;
199
+ addNestedRow: (parentRowId: any, columnId: string, layout: number | number[], insertIndex?: number) => void;
200
+ findRow: (id: any) => any;
201
+ deleteRow: (id: any) => void;
202
+ moveRow: (rowId: any, direction: "up" | "down") => void;
203
+ moveNestedRow: (rowId: any, targetRowId: any, targetColumnId: string | null, targetIndex: number) => void;
204
+ reorderRows: (fromIndex: any, toIndex: any, silent?: boolean) => void;
205
+ addSpacer: (silent?: boolean) => void;
206
+ duplicateRow: (rowId: any) => void;
207
+ duplicateRowSpacer: (spacerId: any) => void;
208
+ addRowSilent: (layout: number | number[]) => void;
209
+ addSpacerSilent: () => void;
210
+ reorderRowsSilent: (from: number, to: number) => void;
211
+ addComponent: (rowId: any, columnId: string, type: string) => void;
212
+ addComponentAtIndex: (rowId: any, columnId: string, type: string, index: any) => void;
213
+ deleteComponent: (id: any) => void;
214
+ moveComponent: (componentId: any, direction: "up" | "down") => void;
215
+ moveComponentBetweenColumns: (componentId: any, targetRowId: any, targetColumnId: string, targetIndex: any) => void;
216
+ findComponent: (id: any) => any;
217
+ updateComponent: (id: any, props: any) => void;
218
+ duplicateComponent: (componentId: any) => void;
219
+ exportHTML: (mode?: import('../export/useEmailExportEngine').ExportMode, templateNameParam?: string) => Promise<void>;
220
+ getExportedHTML: (mode?: import('../export/useEmailExportEngine').ExportMode, templateNameParam?: string) => string | null;
221
+ exportReactEmail: (mode?: import('../export/useEmailExportEngine').ExportMode, templateNameParam?: string) => Promise<void>;
222
+ getExportedReactEmail: (mode?: import('../export/useEmailExportEngine').ExportMode, templateNameParam?: string) => string | null;
223
+ exportMJML: (mode?: import('../export/useEmailExportEngine').ExportMode, templateNameParam?: string) => Promise<void>;
224
+ getExportedMJML: (mode?: import('../export/useEmailExportEngine').ExportMode, templateNameParam?: string) => string | null;
225
+ exportJSON: (templateNameParam?: string) => void;
226
+ getExportedJSON: (templateNameParam?: string) => {
227
+ template_id: string;
228
+ template_name: string;
229
+ canvas: Partial<import('../transform/pipeline/optimize').Canvas>;
230
+ rows: Partial<import('../transform/pipeline/optimize').NestedRow | import('../transform/pipeline/optimize').RowSpacer>[];
231
+ schema_version: string;
232
+ } | null;
233
+ importJSON: (file: File) => void;
234
+ clearTemplate: () => void;
235
+ undo: () => void;
236
+ redo: () => void;
237
+ canUndo: import('vue').ComputedRef<boolean>;
238
+ canRedo: import('vue').ComputedRef<boolean>;
239
+ historyStatus: import('vue').ComputedRef<string>;
240
+ saveToHistory: (action?: string, immediate?: boolean) => void;
241
+ saveToHistoryImmediate: (action: string) => void;
242
+ initFromStorage: () => string | null;
243
+ clearLocal: () => void;
244
+ loadFromLocal: () => import('../persistence/useEmailBuilderPersistence').RestoredDraft | null;
245
+ hasDraft: (templateId?: string) => boolean;
246
+ saveStatus: import('vue').Ref<import('../persistence/useEmailBuilderPersistence').AutoSaveStatus, import('../persistence/useEmailBuilderPersistence').AutoSaveStatus>;
247
+ lastSaved: import('vue').Ref<Date | null, Date | null>;
248
+ initForCreate: () => void;
249
+ startNewTemplate: () => void;
250
+ loadTemplate: (template: {
251
+ canvas: any;
252
+ content: {
253
+ rows: any[];
254
+ };
255
+ name?: string;
256
+ tags?: any[];
257
+ }, templateId: string, onReady?: () => void) => void;
258
+ loadTemplateById: (id: string) => Promise<boolean>;
259
+ saveTemplate: (payload: {
260
+ rows: any[];
261
+ canvasStyles: Record<string, any>;
262
+ name?: string;
263
+ tags?: string[];
264
+ }) => Promise<string>;
265
+ templateId: import('vue').Ref<string | null, string | null>;
266
+ builderMode: import('vue').Ref<"view" | "create" | "edit", "view" | "create" | "edit">;
267
+ loadVersionSnapshot: (snapshot: {
268
+ canvas: any;
269
+ content: {
270
+ rows: any[];
271
+ };
272
+ }) => void;
273
+ };
274
+ export {};