import { A11yOptions } from '../../quality/src/index.ts'; import { A11yOptions as A11yOptions_2 } from '../../../quality/src/index.ts'; import { AiConfig } from '../../../types/src/index.ts'; import { BlockDefaults } from '../../types/src/index.ts'; import { BlockDefaults as BlockDefaults_2 } from '../../../types/src/index.ts'; import { CollaborationConfig } from '../../../types/src/index.ts'; import { CommentEvent } from '../../../types/src/index.ts'; import { ComputedRef } from 'vue'; import { CustomBlock } from '../../types/src/index.ts'; import { CustomBlockDefinition } from '../../types/src/index.ts'; import { CustomBlockDefinition as CustomBlockDefinition_2 } from '../../../types/src/index.ts'; import { CustomFont } from '../../types/src/index.ts'; import { CustomFont as CustomFont_2 } from '../../../types/src/index.ts'; import { DisplayConditionsConfig } from '../../types/src/index.ts'; import { DisplayConditionsConfig as DisplayConditionsConfig_2 } from '../../../types/src/index.ts'; import { FontsConfig } from '../../types/src/index.ts'; import { FontsConfig as FontsConfig_2 } from '../../../types/src/index.ts'; import { McpConfig } from '../../../types/src/index.ts'; import { MediaItem } from '../../../media-library/src/index.ts'; import { MediaRequestContext } from '../../media-library/src/index.ts'; import { MediaRequestContext as MediaRequestContext_2 } from '../../../media-library/src/index.ts'; import { MediaResult } from '../../types/src/index.ts'; import { MergeTagsConfig } from '../../types/src/index.ts'; import { MergeTagsConfig as MergeTagsConfig_2 } from '../../../types/src/index.ts'; import { Ref } from 'vue'; import { SaveResult } from '../../types/src/index.ts'; import { SaveResult as SaveResult_2 } from '../../../types/src/index.ts'; import { Template } from '../../types/src/index.ts'; import { Template as Template_2 } from '../../../types/src/index.ts'; import { TemplateContent } from '../../types/src/index.ts'; import { TemplateContent as TemplateContent_2 } from '../../../types/src/index.ts'; import { TemplateDefaults } from '../../types/src/index.ts'; import { TemplateDefaults as TemplateDefaults_2 } from '../../../types/src/index.ts'; import { ThemeOverrides } from '../../types/src/index.ts'; import { ThemeOverrides as ThemeOverrides_2 } from '../../../types/src/index.ts'; import { UiTheme } from '../../types/src/index.ts'; import { UiTheme as UiTheme_2 } from '../../../types/src/index.ts'; import { ViewportSize } from '../../types/src/index.ts'; export { BlockDefaults } export { CustomBlockDefinition } export { CustomFont } export declare const DEFAULT_EDITOR_TOUR_STORAGE_KEY = "templatical-editor-tour-dismissed"; export { DisplayConditionsConfig } export declare interface EditorCapabilities { plan?: { hasFeature(feature: string): boolean; }; ai?: { isFeatureEnabled(feature: string): boolean; }; comments?: { getBlockCount(blockId: string): number; openForBlock(blockId: string): void; }; savedModules?: { openSaveDialog(blockId: string): void; openBrowser(): void; moduleCount: ComputedRef; }; } export declare interface EditorTourConfig { /** * Steps to show in order. Omit to use built-in defaults (canvas, block rail, right sidebar). */ steps?: EditorTourStep[]; /** Start automatically after mount when the tour has not been dismissed. Default `false`. */ autoStart?: boolean; /** * `localStorage` key for dismissal persistence. * Set to `false` to disable persistence (tour can restart every load). * Default key is `DEFAULT_EDITOR_TOUR_STORAGE_KEY` when omitted. */ storageKey?: string | false; } export declare interface EditorTourStartOptions { /** Zero-based index into the active (filtered) step list */ stepIndex?: number; } export declare interface EditorTourStep { /** Any valid `document.querySelector` selector (editor internals or host DOM). */ target: string; title: string; text: string; placement?: EditorTourStepPlacement; /** * When the target is absent, skip this step. Default `true`. * Set `false` to keep the step even if the node is missing (rect will be null — avoided). */ skipIfMissing?: boolean; } /** * Guided tour types for Templatical Editor `init()` / `initCloud()`. */ /** Reserved tooltip placement hints for layout inside the viewport. */ export declare type EditorTourStepPlacement = "canvas" | "sidebar" | "rightSidebar" | "below"; /** Email vs popup builder chrome (sidebar layout). */ export declare type EditorType = "email" | "popup"; export declare interface FontOption { value: string; label: string; isCustom?: boolean; } export { FontsConfig } export declare function init(config: TemplaticalEditorConfig): Promise; export declare function initCloud(config: TemplaticalCloudEditorConfig): Promise; export { MergeTagsConfig } /** Function type for media browser requests, used by both OSS and Cloud editors. */ export declare type OnRequestMedia = (context?: MediaRequestContext) => Promise; export { SaveResult } export { Template } export { TemplateContent } export { TemplateDefaults } /** * Cloud editor does not expose `toMjml` or `renderCustomBlock`: the cloud * backend performs MJML conversion server-side with additional processing * (e.g., signed image URLs, attachment handling) that isn't available client * side. Use the cloud `save()` flow to persist content; the backend handles * MJML/HTML export from there. */ export declare interface TemplaticalCloudEditor extends TemplaticalEditorBase { create(content?: TemplateContent): Promise